diff options
| author | Eino-Ville Talvala <etalvala@google.com> | 2019-07-03 17:17:46 -0700 |
|---|---|---|
| committer | Michael Bestas <mkbestas@lineageos.org> | 2019-10-07 22:04:13 +0300 |
| commit | b8dada808d1d222f22041d51d89fcec0b0d3d67c (patch) | |
| tree | e69a5784137cb272f4d1f02a8c2406fcd2854702 | |
| parent | 516f2d4fe92fe8caad2864f4b9f0bd9c91ed2875 (diff) | |
| download | android_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.java | 27 |
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(); } } |
