summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--[-rwxr-xr-x]src/com/android/camera/CameraActivity.java11
-rw-r--r--src/com/android/camera/PermissionsActivity.java39
2 files changed, 36 insertions, 14 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 5666331fa..ebc52c6c6 100755..100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -1665,9 +1665,14 @@ public class CameraActivity extends Activity
private boolean checkPermissions() {
boolean requestPermission = false;
- if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED &&
- checkSelfPermission(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED &&
- checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
+ if (checkSelfPermission(Manifest.permission.CAMERA) ==
+ PackageManager.PERMISSION_GRANTED &&
+ checkSelfPermission(Manifest.permission.RECORD_AUDIO) ==
+ PackageManager.PERMISSION_GRANTED &&
+ checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) ==
+ PackageManager.PERMISSION_GRANTED &&
+ checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) ==
+ PackageManager.PERMISSION_GRANTED) {
mHasCriticalPermissions = true;
} else {
mHasCriticalPermissions = false;
diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java
index c5e43e56d..36c061582 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;
@@ -68,8 +69,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;
@@ -103,12 +106,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);
@@ -120,7 +130,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;
@@ -128,15 +139,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;
@@ -145,14 +160,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();