diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt index 04eb4db1c..8ca0bfd79 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt @@ -145,7 +145,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { } // just request the permission, tryLoadGallery will then trigger in onResume - handlePermission(PERMISSION_WRITE_STORAGE) { + handleMediaPermissions { if (!it) { toast(R.string.no_storage_permissions) finish() @@ -153,6 +153,15 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { } } + private fun handleMediaPermissions(callback: (granted: Boolean) -> Unit) { + handlePermission(PERMISSION_WRITE_STORAGE) { granted -> + callback(granted) + if (granted && isSPlus()) { + handlePermission(PERMISSION_MEDIA_LOCATION) {} + } + } + } + override fun onStart() { super.onStart() mTempShowHiddenHandler.removeCallbacksAndMessages(null) @@ -435,9 +444,9 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { private fun tryLoadGallery() { // avoid calling anything right after granting the permission, it will be called from onResume() val wasMissingPermission = config.appRunCount == 1 && !hasPermission(PERMISSION_WRITE_STORAGE) - handlePermission(PERMISSION_WRITE_STORAGE) { + handleMediaPermissions { if (wasMissingPermission) { - return@handlePermission + return@handleMediaPermissions } if (it) {