Horis 3 лет назад
Родитель
Сommit
ecab8b76f7

+ 5 - 2
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()
     }

+ 3 - 4
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<PermissionActivity> {
+                    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<PermissionActivity> {
-            putExtra(
-                PermissionActivity.KEY_INPUT_REQUEST_TYPE,
-                TYPE_REQUEST_SETTING
-            )
+            putExtra(PermissionActivity.KEY_RATIONALE, rationale)
+            putExtra(PermissionActivity.KEY_INPUT_REQUEST_TYPE, TYPE_REQUEST_SETTING)
         }
     }