Я работаю над приложением, которое делает несколько веб-звонков, и я хочу добавить DialogFragment (с ProgressBar в центре), который показывает, когда я жду завершения вызова.
Веб-вызовы расширены из AsyncTask частной библиотекой, которая предоставляет интерфейс (DialogInterface), чтобы указать, что делать, когда диалоговое окно отображается и скрывается. Для DialogFragment я нашел здесь хороший код:
https://code.luasoftware.com/tutorials/android/android-show-loading-and-prevent-touch/
Он работает без проблем из класса Activity, но DialogInterface должен быть установлен для построителя WebService, который инициализируется в классе Application.
Это последовательность инициализации в классе Application
WebService.init(
WebServiceBuilder(this)
.setBaseUrlTest("http://google.it/")
.setUrlType(UrlType.TEST)
.setDialogInterface(object : DialogInterface {
override fun showDialog(context: Context?) {
if (context != null)
val busyDialog = BusyDialogFragment.show(supportFragmentManager)
}
override fun hideDialog() {
//code that hide the DialogFragment
}
})
Очевидно, что в классе Application я не могу получить FragmentManager, поэтому этот код не работает.