Эх сурвалжийг харах

Fix crash for loading dialog fragment

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 11 сар өмнө
parent
commit
cd48601249

+ 12 - 7
app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java

@@ -37,6 +37,7 @@ import com.nextcloud.client.jobs.download.FileDownloadWorker;
 import com.nextcloud.client.jobs.upload.FileUploadHelper;
 import com.nextcloud.client.network.ConnectivityService;
 import com.nextcloud.utils.EditorUtils;
+import com.nextcloud.utils.extensions.ActivityExtensionsKt;
 import com.nextcloud.utils.extensions.BundleExtensionsKt;
 import com.nextcloud.utils.extensions.IntentExtensionsKt;
 import com.owncloud.android.MainApp;
@@ -525,11 +526,12 @@ public abstract class FileActivity extends DrawerActivity
         Fragment frag = getSupportFragmentManager().findFragmentByTag(DIALOG_WAIT_TAG);
         if (frag == null) {
             Log_OC.d(TAG, "show loading dialog");
-            LoadingDialog loading = LoadingDialog.newInstance(message);
-            FragmentManager fm = getSupportFragmentManager();
-            FragmentTransaction ft = fm.beginTransaction();
-            ft.add(loading, DIALOG_WAIT_TAG);
-            ft.commitAllowingStateLoss();
+            LoadingDialog loadingDialogFragment = LoadingDialog.newInstance(message);
+            FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
+            boolean isFragmentReady = ActivityExtensionsKt.isDialogFragmentReady(this, loadingDialogFragment);
+            if (isFragmentReady) {
+                loadingDialogFragment.show(fragmentTransaction, DIALOG_WAIT_TAG);
+            }
         }
     }
 
@@ -540,8 +542,11 @@ public abstract class FileActivity extends DrawerActivity
         Fragment frag = getSupportFragmentManager().findFragmentByTag(DIALOG_WAIT_TAG);
         if (frag != null) {
             Log_OC.d(TAG, "dismiss loading dialog");
-            LoadingDialog loading = (LoadingDialog) frag;
-            loading.dismissAllowingStateLoss();
+            LoadingDialog loadingDialogFragment = (LoadingDialog) frag;
+            boolean isFragmentReady = ActivityExtensionsKt.isDialogFragmentReady(this, loadingDialogFragment);
+            if (isFragmentReady) {
+                loadingDialogFragment.dismiss();
+            }
         }
     }