Mercurial > cgi-bin > hgweb.cgi > SimpleResizer
diff app/src/main/java/com/bartsent/simpleresizer/EditImage.kt @ 37:0dbd924cb5e8
Explain why permission needed, per guidelines.
author | David Barts <n5jrn@me.com> |
---|---|
date | Tue, 23 Mar 2021 22:30:34 -0700 |
parents | 70f1d11d53ad |
children | cfb19d4ccf78 |
line wrap: on
line diff
--- a/app/src/main/java/com/bartsent/simpleresizer/EditImage.kt Fri Mar 19 12:49:13 2021 -0700 +++ b/app/src/main/java/com/bartsent/simpleresizer/EditImage.kt Tue Mar 23 22:30:34 2021 -0700 @@ -325,12 +325,26 @@ } } + fun requestWritePermission(): Unit { + requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), REQUEST_WRITE_EXTERNAL) + } + fun doneClicked(view: View?): Unit { - // If we need a permission, request it and bail. We will be called again + // If we need WRITE_EXTERNAL_STORAGE, request it and bail. We will be called again // (with the permission) if it is granted. if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.Q) { if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) { - requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), REQUEST_WRITE_EXTERNAL) + if (shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) + AlertDialog.Builder(this).also { + it.setMessage(getString(R.string.permission_needed, getString(R.string.app_name))) + it.setNeutralButton(R.string.ok_text) { dialog, _ -> + dialog.dismiss() + requestWritePermission() + } + it.create() + }.show() + else + requestWritePermission() return } }