diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt index 96688e463..3f0e35bba 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt @@ -245,7 +245,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View R.id.menu_unhide -> toggleFileVisibility(false) R.id.menu_share -> shareMediumPath(getCurrentPath()) R.id.menu_delete -> checkDeleteConfirmation() - R.id.menu_rename -> renameFile() + R.id.menu_rename -> checkMediaManagementAndRename() R.id.menu_print -> printFile() R.id.menu_edit -> openEditor(getCurrentPath()) R.id.menu_properties -> showProperties() @@ -900,7 +900,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View bottom_rename.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_RENAME != 0 && currentMedium?.getIsInRecycleBin() == false) bottom_rename.setOnLongClickListener { toast(R.string.rename); true } bottom_rename.setOnClickListener { - renameFile() + checkMediaManagementAndRename() } bottom_set_as.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_SET_AS != 0) @@ -1122,9 +1122,9 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View val fileDirItem = FileDirItem(path, path.getFilenameFromPath()) if (config.useRecycleBin && !getCurrentMedium()!!.getIsInRecycleBin()) { - handleSAFDialogSdk30(fileDirItem.path) { + checkManageMediaOrHandleSAFDialogSdk30(fileDirItem.path) { if (!it) { - return@handleSAFDialogSdk30 + return@checkManageMediaOrHandleSAFDialogSdk30 } mIgnoredPaths.add(fileDirItem.path) @@ -1150,9 +1150,9 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View } private fun handleDeletion(fileDirItem: FileDirItem) { - handleSAFDialogSdk30(fileDirItem.path) { + checkManageMediaOrHandleSAFDialogSdk30(fileDirItem.path) { if (!it) { - return@handleSAFDialogSdk30 + return@checkManageMediaOrHandleSAFDialogSdk30 } mIgnoredPaths.add(fileDirItem.path) @@ -1178,6 +1178,12 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View } } + private fun checkMediaManagementAndRename() { + handleMediaManagementPrompt { + renameFile() + } + } + private fun renameFile() { val oldPath = getCurrentPath() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt index 47227f7ab..eebb97e76 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt @@ -161,7 +161,7 @@ class MediaAdapter( when (id) { R.id.cab_confirm_selection -> confirmSelection() R.id.cab_properties -> showProperties() - R.id.cab_rename -> renameFile() + R.id.cab_rename -> checkMediaManagementAndRename() R.id.cab_edit -> editFile() R.id.cab_hide -> toggleFileVisibility(true) R.id.cab_unhide -> toggleFileVisibility(false) @@ -234,6 +234,12 @@ class MediaAdapter( } } + private fun checkMediaManagementAndRename() { + activity.handleMediaManagementPrompt { + renameFile() + } + } + private fun renameFile() { val firstPath = getFirstSelectedItemPath() ?: return @@ -485,9 +491,9 @@ class MediaAdapter( } val sdk30SafPath = selectedPaths.firstOrNull { activity.isAccessibleWithSAFSdk30(it) } ?: getFirstSelectedItemPath() ?: return@handleSAFDialog - activity.handleSAFDialogSdk30(sdk30SafPath) { + activity.checkManageMediaOrHandleSAFDialogSdk30(sdk30SafPath) { if (!it) { - return@handleSAFDialogSdk30 + return@checkManageMediaOrHandleSAFDialogSdk30 } val fileDirItems = ArrayList(selectedKeys.size) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt index bf9eda2b9..565c300de 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt @@ -125,18 +125,11 @@ fun SimpleActivity.launchAbout() { startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true) } -@RequiresApi(Build.VERSION_CODES.S) -fun AppCompatActivity.launchMediaManagementIntent() { - Intent(Settings.ACTION_REQUEST_MANAGE_MEDIA).apply { - data = Uri.parse("package:$packageName") - startActivity(this) - } -} -fun AppCompatActivity.handleMediaManagementPrompt(callback: () -> Unit) { +fun BaseSimpleActivity.handleMediaManagementPrompt(callback: () -> Unit) { if (isSPlus() && !MediaStore.canManageMedia(this)) { ConfirmationDialog(this, "", R.string.media_management_prompt, R.string.ok, 0) { - launchMediaManagementIntent() + launchMediaManagementIntent(callback) } } else { callback()