From 27c0bf8c6f1858693cd4d1466605c5c67aa5ce1d Mon Sep 17 00:00:00 2001 From: SachinVin Date: Sat, 27 Jun 2020 00:24:39 +0530 Subject: [PATCH] android : EmulationActivity: Don't show rationale if the permission was denied indefinitely --- .../org/citra/citra_emu/activities/EmulationActivity.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.java b/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.java index f5355b91c..28cbd286a 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.java @@ -45,6 +45,8 @@ import java.lang.annotation.Retention; import java.util.Collections; import java.util.List; +import static android.Manifest.permission.CAMERA; +import static android.Manifest.permission.RECORD_AUDIO; import static java.lang.annotation.RetentionPolicy.SOURCE; public final class EmulationActivity extends AppCompatActivity { @@ -232,7 +234,8 @@ public final class EmulationActivity extends AppCompatActivity { public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case NativeLibrary.REQUEST_CODE_NATIVE_CAMERA: - if (grantResults[0] != PackageManager.PERMISSION_GRANTED) { + if (grantResults[0] != PackageManager.PERMISSION_GRANTED && + shouldShowRequestPermissionRationale(CAMERA)) { new AlertDialog.Builder(this) .setTitle(R.string.camera) .setMessage(R.string.camera_permission_needed) @@ -242,7 +245,8 @@ public final class EmulationActivity extends AppCompatActivity { NativeLibrary.CameraPermissionResult(grantResults[0] == PackageManager.PERMISSION_GRANTED); break; case NativeLibrary.REQUEST_CODE_NATIVE_MIC: - if (grantResults[0] != PackageManager.PERMISSION_GRANTED) { + if (grantResults[0] != PackageManager.PERMISSION_GRANTED && + shouldShowRequestPermissionRationale(RECORD_AUDIO)) { new AlertDialog.Builder(this) .setTitle(R.string.microphone) .setMessage(R.string.microphone_permission_needed)