From bc8c0e580d62b1f383a4764cfecffdedf7abb4fb Mon Sep 17 00:00:00 2001 From: Christophe Beyls Date: Tue, 23 Apr 2024 13:51:52 +0200 Subject: [PATCH] update permission request code in ViewMediaActivity --- .../keylesspalace/tusky/ViewMediaActivity.kt | 32 +++++++++---------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt b/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt index 18654ec5c..7e9340580 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt @@ -23,7 +23,6 @@ import android.content.ClipData import android.content.ClipboardManager import android.content.Context import android.content.Intent -import android.content.pm.PackageManager import android.graphics.Bitmap import android.graphics.Color import android.net.Uri @@ -38,6 +37,7 @@ import android.view.View import android.view.WindowManager import android.webkit.MimeTypeMap import android.widget.Toast +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.app.ShareCompat import androidx.core.content.FileProvider import androidx.core.content.IntentCompat @@ -92,6 +92,19 @@ class ViewMediaActivity : private val toolbarVisibilityListeners = mutableListOf() private var imageUrl: String? = null + private val requestDownloadMediaPermissionLauncher = + registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted -> + if (isGranted) { + downloadMedia() + } else { + showErrorDialog( + binding.toolbar, + R.string.error_media_download_permission, + R.string.action_retry + ) { requestDownloadMedia() } + } + } + fun addToolbarVisibilityListener(listener: ToolbarVisibilityListener): Function0 { this.toolbarVisibilityListeners.add(listener) listener(isToolbarVisible) @@ -235,22 +248,7 @@ class ViewMediaActivity : private fun requestDownloadMedia() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { - requestPermissions( - arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE) - ) { _, grantResults -> - if ( - grantResults.isNotEmpty() && - grantResults[0] == PackageManager.PERMISSION_GRANTED - ) { - downloadMedia() - } else { - showErrorDialog( - binding.toolbar, - R.string.error_media_download_permission, - R.string.action_retry - ) { requestDownloadMedia() } - } - } + requestDownloadMediaPermissionLauncher.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE) } else { downloadMedia() }