summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2019-07-03 17:17:46 -0700
committerMichael Bestas <mkbestas@lineageos.org>2019-10-07 22:04:13 +0300
commitb8dada808d1d222f22041d51d89fcec0b0d3d67c (patch)
treee69a5784137cb272f4d1f02a8c2406fcd2854702
parent516f2d4fe92fe8caad2864f4b9f0bd9c91ed2875 (diff)
downloadandroid_packages_apps_Camera2-b8dada808d1d222f22041d51d89fcec0b0d3d67c.tar.gz
android_packages_apps_Camera2-b8dada808d1d222f22041d51d89fcec0b0d3d67c.tar.bz2
android_packages_apps_Camera2-b8dada808d1d222f22041d51d89fcec0b0d3d67c.zip
Request WRITE_EXTERNAL_STORAGE as well
Can't actually write files if you don't ask for that permission too, unless preloaded as the default camera app. Test: Can capture images when sideloaded Bug: 136212009 Merged-In: I4396a9646d36de64eab3d8b841796daf08f9220e Change-Id: I4396a9646d36de64eab3d8b841796daf08f9220e (cherry picked from commit 96d0a25d3d9cf176c1212d29653565866c8e3d59)
-rw-r--r--src/com/android/camera/PermissionsActivity.java27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java
index 3fda04abb..1f94463ff 100644
--- a/src/com/android/camera/PermissionsActivity.java
+++ b/src/com/android/camera/PermissionsActivity.java
@@ -36,14 +36,17 @@ public class PermissionsActivity extends QuickActivity {
private int mIndexPermissionRequestMicrophone;
private int mIndexPermissionRequestLocation;
private int mIndexPermissionRequestStorage;
+ private int mIndexPermissionRequestWriteStorage;
private boolean mShouldRequestCameraPermission;
private boolean mShouldRequestMicrophonePermission;
private boolean mShouldRequestLocationPermission;
private boolean mShouldRequestStoragePermission;
+ private boolean mShouldRequestWriteStoragePermission;
private int mNumPermissionsToRequest;
private boolean mFlagHasCameraPermission;
private boolean mFlagHasMicrophonePermission;
private boolean mFlagHasStoragePermission;
+ private boolean mFlagHasWriteStoragePermission;
private SettingsManager mSettingsManager;
/**
@@ -121,6 +124,14 @@ public class PermissionsActivity extends QuickActivity {
mFlagHasStoragePermission = true;
}
+ if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ != PackageManager.PERMISSION_GRANTED) {
+ mNumPermissionsToRequest++;
+ mShouldRequestWriteStoragePermission = true;
+ } else {
+ mFlagHasWriteStoragePermission = true;
+ }
+
if (checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
mNumPermissionsToRequest++;
@@ -160,6 +171,11 @@ public class PermissionsActivity extends QuickActivity {
mIndexPermissionRequestStorage = permissionsRequestIndex;
permissionsRequestIndex++;
}
+ if (mShouldRequestWriteStoragePermission) {
+ permissionsToRequest[permissionsRequestIndex] = Manifest.permission.WRITE_EXTERNAL_STORAGE;
+ mIndexPermissionRequestWriteStorage = permissionsRequestIndex;
+ permissionsRequestIndex++;
+ }
if (mShouldRequestLocationPermission) {
permissionsToRequest[permissionsRequestIndex] = Manifest.permission.ACCESS_COARSE_LOCATION;
mIndexPermissionRequestLocation = permissionsRequestIndex;
@@ -202,6 +218,14 @@ public class PermissionsActivity extends QuickActivity {
handlePermissionsFailure();
}
}
+ if (mShouldRequestWriteStoragePermission) {
+ if (grantResults.length > 0 && grantResults[mIndexPermissionRequestWriteStorage] ==
+ PackageManager.PERMISSION_GRANTED) {
+ mFlagHasWriteStoragePermission = true;
+ } else {
+ handlePermissionsFailure();
+ }
+ }
if (mShouldRequestLocationPermission) {
if (grantResults.length > 0 && grantResults[mIndexPermissionRequestLocation] ==
@@ -212,7 +236,8 @@ public class PermissionsActivity extends QuickActivity {
}
}
- if (mFlagHasCameraPermission && mFlagHasMicrophonePermission && mFlagHasStoragePermission) {
+ if (mFlagHasCameraPermission && mFlagHasMicrophonePermission &&
+ mFlagHasStoragePermission && mFlagHasWriteStoragePermission) {
handlePermissionsSuccess();
}
}