Skip to content

Commit e38f72f

Browse files
committed
Prevent camera permission from being requested twice
1 parent dabbf80 commit e38f72f

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

debug/apps/arscene/src/main/java/arscene/MainActivity.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
public class MainActivity extends AppCompatActivity {
2222
private static final int CAMERA_PERMISSION_CODE = 0;
23+
private static boolean CAMERA_PERMISSION_REQUESTED = false;
2324
private static final String CAMERA_PERMISSION = Manifest.permission.CAMERA;
2425
private static final String CAMERA_PERMISSION_MESSAGE = "Camera permission is needed to use AR";
2526

@@ -58,6 +59,8 @@ public void onRequestPermissionsResult(int requestCode, String permissions[], in
5859
if (sketch != null) {
5960
sketch.onRequestPermissionsResult(requestCode, permissions, grantResults);
6061
}
62+
63+
CAMERA_PERMISSION_REQUESTED = false;
6164
}
6265

6366
@Override
@@ -89,7 +92,10 @@ private boolean hasCameraPermission() {
8992
}
9093

9194
private void requestCameraPermission() {
92-
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_CODE);
95+
if (!CAMERA_PERMISSION_REQUESTED) {
96+
CAMERA_PERMISSION_REQUESTED = true;
97+
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_CODE);
98+
}
9399
}
94100

95101
private boolean shouldShowRequestPermissionRationale() {

mode/templates/ARActivity.java.tmpl

+6-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import processing.core.PApplet;
2020

2121
public class MainActivity extends AppCompatActivity {
2222
private static final int CAMERA_PERMISSION_CODE = 0;
23+
private static boolean CAMERA_PERMISSION_REQUESTED = false;
2324
private static final String CAMERA_PERMISSION = Manifest.permission.CAMERA;
2425
private static final String CAMERA_PERMISSION_MESSAGE = "Camera permission is needed to use AR";
2526

@@ -57,6 +58,7 @@ public class MainActivity extends AppCompatActivity {
5758
if (sketch != null) {
5859
sketch.onRequestPermissionsResult(requestCode, permissions, grantResults);
5960
}
61+
CAMERA_PERMISSION_REQUESTED = false;
6062
}
6163

6264
@Override
@@ -86,7 +88,10 @@ public class MainActivity extends AppCompatActivity {
8688
}
8789

8890
private void requestCameraPermission() {
89-
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_CODE);
91+
if (!CAMERA_PERMISSION_REQUESTED) {
92+
CAMERA_PERMISSION_REQUESTED = true;
93+
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_CODE);
94+
}
9095
}
9196

9297
private boolean shouldShowRequestPermissionRationale() {

0 commit comments

Comments
 (0)