diff --git a/app/src/main/java/io/legado/app/lib/permission/PermissionActivity.kt b/app/src/main/java/io/legado/app/lib/permission/PermissionActivity.kt index 224ed97f1..803e7ac96 100644 --- a/app/src/main/java/io/legado/app/lib/permission/PermissionActivity.kt +++ b/app/src/main/java/io/legado/app/lib/permission/PermissionActivity.kt @@ -31,7 +31,7 @@ class PermissionActivity : AppCompatActivity() { val permissions = intent.getStringArrayExtra(KEY_INPUT_PERMISSIONS)!! when (intent.getIntExtra(KEY_INPUT_REQUEST_TYPE, Request.TYPE_REQUEST_PERMISSION)) { //权限请求 - Request.TYPE_REQUEST_PERMISSION -> showSettingDialog(permissions, rationale){ + Request.TYPE_REQUEST_PERMISSION -> showSettingDialog(permissions, rationale) { ActivityCompat.requestPermissions(this, permissions, requestCode) } //跳转到设置界面 @@ -119,7 +119,7 @@ class PermissionActivity : AppCompatActivity() { ) { rationaleDialog?.dismiss() if (rationale.isNullOrEmpty()) { - + finish() return } rationaleDialog = AlertDialog.Builder(this) @@ -133,6 +133,9 @@ class PermissionActivity : AppCompatActivity() { permissions, IntArray(0) ) + finish() + }.setOnCancelListener { + finish() } .show() } diff --git a/app/src/main/java/io/legado/app/lib/permission/Request.kt b/app/src/main/java/io/legado/app/lib/permission/Request.kt index 32bf2f400..6bbe8c999 100644 --- a/app/src/main/java/io/legado/app/lib/permission/Request.kt +++ b/app/src/main/java/io/legado/app/lib/permission/Request.kt @@ -73,6 +73,7 @@ internal class Request : OnRequestPermissionsResultCallback { toNotificationSetting() } else if (deniedPermissions.size > 1) { appCtx.startActivity { + putExtra(PermissionActivity.KEY_RATIONALE, rationale) putExtra(PermissionActivity.KEY_INPUT_REQUEST_TYPE, TYPE_REQUEST_PERMISSION) putExtra(PermissionActivity.KEY_INPUT_PERMISSIONS_CODE, requestCode) putExtra(PermissionActivity.KEY_INPUT_PERMISSIONS, deniedPermissions) @@ -139,10 +140,8 @@ internal class Request : OnRequestPermissionsResultCallback { private fun toSetting() { appCtx.startActivity { - putExtra( - PermissionActivity.KEY_INPUT_REQUEST_TYPE, - TYPE_REQUEST_SETTING - ) + putExtra(PermissionActivity.KEY_RATIONALE, rationale) + putExtra(PermissionActivity.KEY_INPUT_REQUEST_TYPE, TYPE_REQUEST_SETTING) } }