diff --git a/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt index ad2d9f4b4a7e..662b879f0bce 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt +++ b/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt @@ -198,12 +198,12 @@ class SyncedFoldersActivity : mDrawerToggle.isDrawerIndicatorEnabled = false } + PermissionUtil.requestStoragePermissionIfNeeded(this) setupContent() if (themeUtils.themingEnabled(this)) { setTheme(R.style.FallbackThemingTheme) } binding.emptyList.emptyListViewAction.setOnClickListener { showHiddenItems() } - setupStoragePermissionWarningBanner() } override fun getMenuItemId(): Int = R.id.nav_settings @@ -211,6 +211,12 @@ class SyncedFoldersActivity : override fun onResume() { super.onResume() highlightNavigationViewItem(menuItemId) + + setupStoragePermissionWarningBanner() + PermissionUtil.dismissStoragePermissionDialogFragment(this) + if (PermissionUtil.checkStoragePermission(this)) { + load(getItemsDisplayedPerFolder(), false) + } uploadWarningCard?.bind(binding.autoUploadBatterySaverWarningCard) } @@ -271,7 +277,6 @@ class SyncedFoldersActivity : binding.list.addItemDecoration(MediaGridItemDecoration(spacing)) binding.list.layoutManager = lm binding.list.adapter = adapter - load(getItemsDisplayedPerFolder(), false) } private fun showHiddenItems() { @@ -860,7 +865,6 @@ class SyncedFoldersActivity : PermissionUtil.PERMISSIONS_EXTERNAL_STORAGE -> { // If request is cancelled, result arrays are empty. if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - // permission was granted load(getItemsDisplayedPerFolder(), true) } } diff --git a/app/src/main/java/com/owncloud/android/utils/PermissionUtil.kt b/app/src/main/java/com/owncloud/android/utils/PermissionUtil.kt index a6e35ee36019..7234995b2ab3 100644 --- a/app/src/main/java/com/owncloud/android/utils/PermissionUtil.kt +++ b/app/src/main/java/com/owncloud/android/utils/PermissionUtil.kt @@ -121,6 +121,19 @@ object PermissionUtil { } } + fun dismissStoragePermissionDialogFragment(activity: AppCompatActivity) { + if (!checkStoragePermission(activity)) { + Log_OC.d(TAG, "Storage permissions are not granted, cannot dismiss") + return + } + + ( + activity.supportFragmentManager + .findFragmentByTag(PERMISSION_CHOICE_DIALOG_TAG) as? StoragePermissionDialogFragment + ) + ?.dismissAllowingStateLoss() + } + @RequiresApi(Build.VERSION_CODES.R) fun getManageAllFilesIntent(context: Context) = Intent().apply { action = Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION