summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/PermissionsActivity.java
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-07-20 18:22:27 -0700
committerJay Wang <jaywang@codeaurora.org>2016-07-20 18:22:27 -0700
commit977190faec749f16d5ae60d914c9af560b533d7a (patch)
tree74f0b38b9e847d8323b88069421bfd14d8f920a6 /src/com/android/camera/PermissionsActivity.java
parentcfbfa14182d1d726bbe0856da8949e6a847a8ece (diff)
downloadandroid_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.java12
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