소스 검색

Merge pull request #10478 from nextcloud/permissionDialog

recreate StoragePermissionDialogFragment when rotating
Tobias Kaminsky 3 년 전
부모
커밋
c4540e7310
1개의 변경된 파일20개의 추가작업 그리고 0개의 파일을 삭제
  1. 20 0
      app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

+ 20 - 0
app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -28,6 +28,7 @@ package com.owncloud.android.ui.activity;
 import android.accounts.AuthenticatorException;
 import android.annotation.SuppressLint;
 import android.app.Activity;
+import android.app.Dialog;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -36,6 +37,7 @@ import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.ServiceConnection;
 import android.content.pm.PackageManager;
+import android.content.res.Configuration;
 import android.content.res.Resources.NotFoundException;
 import android.net.Uri;
 import android.os.Bundle;
@@ -93,6 +95,7 @@ import com.owncloud.android.ui.asynctasks.CheckAvailableSpaceTask;
 import com.owncloud.android.ui.asynctasks.FetchRemoteFileTask;
 import com.owncloud.android.ui.dialog.SendShareDialog;
 import com.owncloud.android.ui.dialog.SortingOrderDialogFragment;
+import com.owncloud.android.ui.dialog.StoragePermissionDialogFragment;
 import com.owncloud.android.ui.events.SearchEvent;
 import com.owncloud.android.ui.events.SyncEventFinished;
 import com.owncloud.android.ui.events.TokenPushEvent;
@@ -146,6 +149,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 import static com.owncloud.android.datamodel.OCFile.PATH_SEPARATOR;
+import static com.owncloud.android.utils.PermissionUtil.PERMISSION_CHOICE_DIALOG_TAG;
 
 /**
  * Displays, what files the user has available in his ownCloud. This is the main view.
@@ -314,6 +318,22 @@ public class FileDisplayActivity extends FileActivity
         }
     }
 
+    @Override
+    public void onConfigurationChanged(@NonNull Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+
+        StoragePermissionDialogFragment fragment = (StoragePermissionDialogFragment) getSupportFragmentManager().findFragmentByTag(PERMISSION_CHOICE_DIALOG_TAG);
+        if (fragment != null) {
+            Dialog dialog = fragment.getDialog();
+
+            if (dialog != null && dialog.isShowing()) {
+                dialog.dismiss();
+                getSupportFragmentManager().beginTransaction().remove(fragment).commitNowAllowingStateLoss();
+                PermissionUtil.requestExternalStoragePermission(this, themeSnackbarUtils);
+            }
+        }
+    }
+
     @Override
     protected void onPostCreate(Bundle savedInstanceState) {
         super.onPostCreate(savedInstanceState);