4141import com .nextcloud .receiver .NetworkChangeListener ;
4242import com .nextcloud .receiver .NetworkChangeReceiver ;
4343import com .nextcloud .utils .EditorUtils ;
44+ import com .nextcloud .utils .extensions .ActivityExtensionsKt ;
4445import com .nextcloud .utils .extensions .BundleExtensionsKt ;
4546import com .nextcloud .utils .extensions .FileExtensionsKt ;
4647import com .nextcloud .utils .extensions .IntentExtensionsKt ;
@@ -562,13 +563,23 @@ protected void updateFileFromDB(){
562563 */
563564 public void showLoadingDialog (String message ) {
564565 runOnUiThread (() -> {
566+ if (!ActivityExtensionsKt .isActive (this )) {
567+ Log_OC .w (TAG , "cannot show loading dialog, activity is finishing" );
568+ return ;
569+ }
570+
565571 FragmentManager fragmentManager = getSupportFragmentManager ();
566572 fragmentManager .executePendingTransactions ();
567573 Fragment existingDialog = fragmentManager .findFragmentByTag (DIALOG_WAIT_TAG );
568574
569575 if (existingDialog instanceof LoadingDialog loadingDialog ) {
570576 Log_OC .d (TAG , "dismiss previous loading dialog" );
571- loadingDialog .dismiss ();
577+
578+ if (!fragmentManager .isStateSaved ()) {
579+ loadingDialog .dismiss ();
580+ } else {
581+ loadingDialog .dismissAllowingStateLoss ();
582+ }
572583 }
573584
574585 // Show new dialog
@@ -585,6 +596,11 @@ public void showLoadingDialog(String message) {
585596 */
586597 public void dismissLoadingDialog () {
587598 runOnUiThread (() -> {
599+ if (!ActivityExtensionsKt .isActive (this )) {
600+ Log_OC .w (TAG , "cannot dismiss loading dialog, activity is finishing" );
601+ return ;
602+ }
603+
588604 FragmentManager fragmentManager = getSupportFragmentManager ();
589605 fragmentManager .executePendingTransactions ();
590606 Fragment fragment = fragmentManager .findFragmentByTag (DIALOG_WAIT_TAG );
0 commit comments