summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/PermissionsActivity.java
diff options
context:
space:
mode:
authorCamera Software Integration <camswint@localhost>2016-09-13 06:14:53 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-13 06:14:53 -0700
commit2af7b086e21b510fe7ed1b7b9c61ef53ecbc3cda (patch)
treeca8e7298ccbb3af97563f667cb6d8a08c571e4eb /src/com/android/camera/PermissionsActivity.java
parent760bbaf293bdb3cc8ea12e5c8e3bef81621158c0 (diff)
parentf5bb47bbedc5694ab0a63fde655fd99b1a3e5759 (diff)
downloadandroid_packages_apps_Snap-2af7b086e21b510fe7ed1b7b9c61ef53ecbc3cda.tar.gz
android_packages_apps_Snap-2af7b086e21b510fe7ed1b7b9c61ef53ecbc3cda.tar.bz2
android_packages_apps_Snap-2af7b086e21b510fe7ed1b7b9c61ef53ecbc3cda.zip
Merge "SnapdragonCamera: fix crash when deny storage permission" into camera.lnx.1.0.c7-dev
Diffstat (limited to 'src/com/android/camera/PermissionsActivity.java')
-rw-r--r--src/com/android/camera/PermissionsActivity.java39
1 files changed, 28 insertions, 11 deletions
diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java
index b5bb2eeee..741e1b021 100644
--- a/src/com/android/camera/PermissionsActivity.java
+++ b/src/com/android/camera/PermissionsActivity.java
@@ -23,7 +23,8 @@ public class PermissionsActivity extends Activity {
private int mIndexPermissionRequestCamera;
private int mIndexPermissionRequestMicrophone;
private int mIndexPermissionRequestLocation;
- private int mIndexPermissionRequestStorage;
+ private int mIndexPermissionRequestStorageWrite;
+ private int mIndexPermissionRequestStorageRead;
private boolean mShouldRequestCameraPermission;
private boolean mShouldRequestMicrophonePermission;
private boolean mShouldRequestLocationPermission;
@@ -72,8 +73,10 @@ public class PermissionsActivity extends Activity {
}
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ != PackageManager.PERMISSION_GRANTED ||
+ checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
- mNumPermissionsToRequest++;
+ mNumPermissionsToRequest = mNumPermissionsToRequest + 2;
mShouldRequestStoragePermission = true;
} else {
mFlagHasStoragePermission = true;
@@ -107,12 +110,19 @@ public class PermissionsActivity extends Activity {
permissionsRequestIndex++;
}
if (mShouldRequestStoragePermission) {
- permissionsToRequest[permissionsRequestIndex] = Manifest.permission.WRITE_EXTERNAL_STORAGE;
- mIndexPermissionRequestStorage = permissionsRequestIndex;
+ permissionsToRequest[permissionsRequestIndex] =
+ Manifest.permission.WRITE_EXTERNAL_STORAGE;
+ mIndexPermissionRequestStorageWrite = permissionsRequestIndex;
+ permissionsRequestIndex++;
+ permissionsToRequest[permissionsRequestIndex] =
+ Manifest.permission.READ_EXTERNAL_STORAGE;
+ mIndexPermissionRequestStorageRead = permissionsRequestIndex;
permissionsRequestIndex++;
+
}
if (mShouldRequestLocationPermission) {
- permissionsToRequest[permissionsRequestIndex] = Manifest.permission.ACCESS_COARSE_LOCATION;
+ permissionsToRequest[permissionsRequestIndex] =
+ Manifest.permission.ACCESS_COARSE_LOCATION;
mIndexPermissionRequestLocation = permissionsRequestIndex;
}
requestPermissions(permissionsToRequest, PERMISSION_REQUEST_CODE);
@@ -124,7 +134,8 @@ public class PermissionsActivity extends Activity {
if (mShouldRequestCameraPermission) {
if ((grantResults.length >= mIndexPermissionRequestCamera + 1) &&
- (grantResults[mIndexPermissionRequestCamera] == PackageManager.PERMISSION_GRANTED)) {
+ (grantResults[mIndexPermissionRequestCamera] ==
+ PackageManager.PERMISSION_GRANTED)) {
mFlagHasCameraPermission = true;
} else {
mCriticalPermissionDenied = true;
@@ -132,15 +143,19 @@ public class PermissionsActivity extends Activity {
}
if (mShouldRequestMicrophonePermission) {
if ((grantResults.length >= mIndexPermissionRequestMicrophone + 1) &&
- (grantResults[mIndexPermissionRequestMicrophone] == PackageManager.PERMISSION_GRANTED)) {
+ (grantResults[mIndexPermissionRequestMicrophone] ==
+ PackageManager.PERMISSION_GRANTED)) {
mFlagHasMicrophonePermission = true;
} else {
mCriticalPermissionDenied = true;
}
}
if (mShouldRequestStoragePermission) {
- if ((grantResults.length >= mIndexPermissionRequestStorage + 1) &&
- (grantResults[mIndexPermissionRequestStorage] == PackageManager.PERMISSION_GRANTED)) {
+ if ((grantResults.length >= mIndexPermissionRequestStorageRead + 1) &&
+ (grantResults[mIndexPermissionRequestStorageWrite] ==
+ PackageManager.PERMISSION_GRANTED) &&
+ (grantResults[mIndexPermissionRequestStorageRead] ==
+ PackageManager.PERMISSION_GRANTED)) {
mFlagHasStoragePermission = true;
} else {
mCriticalPermissionDenied = true;
@@ -149,14 +164,16 @@ public class PermissionsActivity extends Activity {
if (mShouldRequestLocationPermission) {
if ((grantResults.length >= mIndexPermissionRequestLocation + 1) &&
- (grantResults[mIndexPermissionRequestLocation] == PackageManager.PERMISSION_GRANTED)) {
+ (grantResults[mIndexPermissionRequestLocation] ==
+ PackageManager.PERMISSION_GRANTED)) {
// Do nothing
} else {
// Do nothing
}
}
- if (mFlagHasCameraPermission && mFlagHasMicrophonePermission && mFlagHasStoragePermission) {
+ if (mFlagHasCameraPermission && mFlagHasMicrophonePermission &&
+ mFlagHasStoragePermission) {
handlePermissionsSuccess();
} else if (mCriticalPermissionDenied) {
handlePermissionsFailure();