summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/PermissionsActivity.java
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-05-20 17:44:17 -0700
committerJay Wang <jaywang@codeaurora.org>2016-06-02 16:51:28 -0700
commit6d944a1e422d70abc98ea20e708a4c9a72fab2ea (patch)
treedaf5a5c007514e3e210f11b0c89925c5908210fe /src/com/android/camera/PermissionsActivity.java
parent7c97b9156018f544361c2d1685072f1a3d47251a (diff)
downloadandroid_packages_apps_Snap-6d944a1e422d70abc98ea20e708a4c9a72fab2ea.tar.gz
android_packages_apps_Snap-6d944a1e422d70abc98ea20e708a4c9a72fab2ea.tar.bz2
android_packages_apps_Snap-6d944a1e422d70abc98ea20e708a4c9a72fab2ea.zip
SnapdragonCamera: Fixed M permission issue
- Resolved NPE while sending permission request - Made change to request non-critical permissions once only, but the critical permssions all th time. - Removed unused contant defines CRs-Fixed: 1019847 Change-Id: Ib997244cbcc041d86c094c7ee7a902bff56e92ad
Diffstat (limited to 'src/com/android/camera/PermissionsActivity.java')
-rw-r--r--src/com/android/camera/PermissionsActivity.java21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java
index a55bdb258..1d6219195 100644
--- a/src/com/android/camera/PermissionsActivity.java
+++ b/src/com/android/camera/PermissionsActivity.java
@@ -8,6 +8,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
+import android.util.Log;
import android.view.KeyEvent;
import org.codeaurora.snapcam.R;
@@ -18,8 +19,6 @@ public class PermissionsActivity extends Activity {
private static final String TAG = "PermissionsActivity";
private static int PERMISSION_REQUEST_CODE = 1;
- private static int RESULT_CODE_OK = 0;
- private static int RESULT_CODE_FAILED = 1;
private int mIndexPermissionRequestCamera;
private int mIndexPermissionRequestMicrophone;
@@ -33,6 +32,7 @@ public class PermissionsActivity extends Activity {
private boolean mFlagHasCameraPermission;
private boolean mFlagHasMicrophonePermission;
private boolean mFlagHasStoragePermission;
+ private boolean mCriticalPermissionDenied;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -42,8 +42,12 @@ public class PermissionsActivity extends Activity {
@Override
protected void onResume() {
super.onResume();
- mNumPermissionsToRequest = 0;
- checkPermissions();
+ if (!mCriticalPermissionDenied) {
+ mNumPermissionsToRequest = 0;
+ checkPermissions();
+ } else {
+ mCriticalPermissionDenied = false;
+ }
}
private void checkPermissions() {
@@ -107,7 +111,6 @@ public class PermissionsActivity extends Activity {
permissionsToRequest[permissionsRequestIndex] = Manifest.permission.ACCESS_COARSE_LOCATION;
mIndexPermissionRequestLocation = permissionsRequestIndex;
}
-
requestPermissions(permissionsToRequest, PERMISSION_REQUEST_CODE);
}
@@ -119,21 +122,21 @@ public class PermissionsActivity extends Activity {
if (grantResults[mIndexPermissionRequestCamera] == PackageManager.PERMISSION_GRANTED) {
mFlagHasCameraPermission = true;
} else {
- handlePermissionsFailure();
+ mCriticalPermissionDenied = true;
}
}
if (mShouldRequestMicrophonePermission) {
if (grantResults[mIndexPermissionRequestMicrophone] == PackageManager.PERMISSION_GRANTED) {
mFlagHasMicrophonePermission = true;
} else {
- handlePermissionsFailure();
+ mCriticalPermissionDenied = true;
}
}
if (mShouldRequestStoragePermission) {
if (grantResults[mIndexPermissionRequestStorage] == PackageManager.PERMISSION_GRANTED) {
mFlagHasStoragePermission = true;
} else {
- handlePermissionsFailure();
+ mCriticalPermissionDenied = true;
}
}
@@ -147,6 +150,8 @@ public class PermissionsActivity extends Activity {
if (mFlagHasCameraPermission && mFlagHasMicrophonePermission && mFlagHasStoragePermission) {
handlePermissionsSuccess();
+ } else if (mCriticalPermissionDenied) {
+ handlePermissionsFailure();
}
}