diff options
author | Jay Wang <jaywang@codeaurora.org> | 2016-05-20 17:44:17 -0700 |
---|---|---|
committer | Jay Wang <jaywang@codeaurora.org> | 2016-06-02 16:51:28 -0700 |
commit | 6d944a1e422d70abc98ea20e708a4c9a72fab2ea (patch) | |
tree | daf5a5c007514e3e210f11b0c89925c5908210fe /src/com/android/camera/PermissionsActivity.java | |
parent | 7c97b9156018f544361c2d1685072f1a3d47251a (diff) | |
download | android_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.java | 21 |
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(); } } |