diff options
author | Jay Wang <jaywang@codeaurora.org> | 2016-07-20 18:22:27 -0700 |
---|---|---|
committer | Jay Wang <jaywang@codeaurora.org> | 2016-07-20 18:22:27 -0700 |
commit | 977190faec749f16d5ae60d914c9af560b533d7a (patch) | |
tree | 74f0b38b9e847d8323b88069421bfd14d8f920a6 /src/com/android/camera/PermissionsActivity.java | |
parent | cfbfa14182d1d726bbe0856da8949e6a847a8ece (diff) | |
download | android_packages_apps_Snap-977190faec749f16d5ae60d914c9af560b533d7a.tar.gz android_packages_apps_Snap-977190faec749f16d5ae60d914c9af560b533d7a.tar.bz2 android_packages_apps_Snap-977190faec749f16d5ae60d914c9af560b533d7a.zip |
SnapdragonCamera: Fix NPE caused by empty permission result
When request permission is cancelled, it returns empty result.
Making change to check the length of result before accessing the
result.
Change-Id: Ic3e35c822e053fac7786d5e924ead8935feb1794
CRs-Fixed: 1041464
Diffstat (limited to 'src/com/android/camera/PermissionsActivity.java')
-rw-r--r-- | src/com/android/camera/PermissionsActivity.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java index 2b5901a58..c5e43e56d 100644 --- a/src/com/android/camera/PermissionsActivity.java +++ b/src/com/android/camera/PermissionsActivity.java @@ -119,21 +119,24 @@ public class PermissionsActivity extends Activity { String permissions[], int[] grantResults) { if (mShouldRequestCameraPermission) { - if (grantResults[mIndexPermissionRequestCamera] == PackageManager.PERMISSION_GRANTED) { + if ((grantResults.length >= mIndexPermissionRequestCamera + 1) && + (grantResults[mIndexPermissionRequestCamera] == PackageManager.PERMISSION_GRANTED)) { mFlagHasCameraPermission = true; } else { mCriticalPermissionDenied = true; } } if (mShouldRequestMicrophonePermission) { - if (grantResults[mIndexPermissionRequestMicrophone] == PackageManager.PERMISSION_GRANTED) { + if ((grantResults.length >= mIndexPermissionRequestMicrophone + 1) && + (grantResults[mIndexPermissionRequestMicrophone] == PackageManager.PERMISSION_GRANTED)) { mFlagHasMicrophonePermission = true; } else { mCriticalPermissionDenied = true; } } if (mShouldRequestStoragePermission) { - if (grantResults[mIndexPermissionRequestStorage] == PackageManager.PERMISSION_GRANTED) { + if ((grantResults.length >= mIndexPermissionRequestStorage + 1) && + (grantResults[mIndexPermissionRequestStorage] == PackageManager.PERMISSION_GRANTED)) { mFlagHasStoragePermission = true; } else { mCriticalPermissionDenied = true; @@ -141,7 +144,8 @@ public class PermissionsActivity extends Activity { } if (mShouldRequestLocationPermission) { - if (grantResults[mIndexPermissionRequestLocation] == PackageManager.PERMISSION_GRANTED) { + if ((grantResults.length >= mIndexPermissionRequestLocation + 1) && + (grantResults[mIndexPermissionRequestLocation] == PackageManager.PERMISSION_GRANTED)) { // Do nothing } else { // Do nothing |