summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-06-24 15:58:31 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-06-26 23:49:19 -0700
commit161d466da681a188b5c13472b8e186ba7cbb0bea (patch)
tree5443cd1eb9b6480277f32f2b273c79ee42ac0bd0
parent79a0a46a89e0c1497693fd67e6745d00274dd809 (diff)
downloadandroid_packages_apps_Snap-161d466da681a188b5c13472b8e186ba7cbb0bea.tar.gz
android_packages_apps_Snap-161d466da681a188b5c13472b8e186ba7cbb0bea.tar.bz2
android_packages_apps_Snap-161d466da681a188b5c13472b8e186ba7cbb0bea.zip
SnapdragonCamera: Fix first-time crash and cleanup permissions
As onCreate skips the creation of setting manager when the critical permissions are not granted, this causes the onDestroy to call setting manager destroy function with null pointer. Fix the issue with null check. In addition, remove unused permissions from manifest file Change-Id: I99b5f09449aacfb7eb9a5771e446df75956a9827 CRs-Fixed: 1034202
-rw-r--r--AndroidManifest.xml10
-rw-r--r--src/com/android/camera/CameraActivity.java8
-rw-r--r--src/com/android/camera/PermissionsActivity.java4
3 files changed, 7 insertions, 15 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 12a86bb9b..53ebaa39d 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -13,20 +13,10 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
- <uses-permission android:name="android.permission.BIND_WALLPAPER" />
<uses-permission android:name="android.permission.CAMERA" />
- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
- <uses-permission android:name="android.permission.GET_ACCOUNTS" />
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
- <uses-permission android:name="android.permission.SET_WALLPAPER" />
- <uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_READ" />
- <uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_WRITE" />
- <uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 1b6031b53..d324776c3 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -1648,12 +1648,11 @@ public class CameraActivity extends Activity
if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED &&
checkSelfPermission(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED &&
- checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
+ checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
mHasCriticalPermissions = true;
} else {
mHasCriticalPermissions = false;
}
-
if ((checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) ||
!mHasCriticalPermissions) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
@@ -1744,7 +1743,10 @@ public class CameraActivity extends Activity
mWakeLock.release();
Log.d(TAG, "wake lock release");
}
- SettingsManager.getInstance().destroyInstance();
+ SettingsManager settingsMngr = SettingsManager.getInstance();
+ if (settingsMngr != null) {
+ settingsMngr.destroyInstance();
+ }
if (mCursor != null) {
getContentResolver().unregisterContentObserver(mLocalImagesObserver);
getContentResolver().unregisterContentObserver(mLocalVideosObserver);
diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java
index 1d6219195..2b5901a58 100644
--- a/src/com/android/camera/PermissionsActivity.java
+++ b/src/com/android/camera/PermissionsActivity.java
@@ -67,7 +67,7 @@ public class PermissionsActivity extends Activity {
mFlagHasMicrophonePermission = true;
}
- if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
+ if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
mNumPermissionsToRequest++;
mShouldRequestStoragePermission = true;
@@ -103,7 +103,7 @@ public class PermissionsActivity extends Activity {
permissionsRequestIndex++;
}
if (mShouldRequestStoragePermission) {
- permissionsToRequest[permissionsRequestIndex] = Manifest.permission.READ_EXTERNAL_STORAGE;
+ permissionsToRequest[permissionsRequestIndex] = Manifest.permission.WRITE_EXTERNAL_STORAGE;
mIndexPermissionRequestStorage = permissionsRequestIndex;
permissionsRequestIndex++;
}