diff options
author | Jay Wang <jaywang@codeaurora.org> | 2016-06-24 15:58:31 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-06-26 23:49:19 -0700 |
commit | 161d466da681a188b5c13472b8e186ba7cbb0bea (patch) | |
tree | 5443cd1eb9b6480277f32f2b273c79ee42ac0bd0 | |
parent | 79a0a46a89e0c1497693fd67e6745d00274dd809 (diff) | |
download | android_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.xml | 10 | ||||
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 8 | ||||
-rw-r--r-- | src/com/android/camera/PermissionsActivity.java | 4 |
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++; } |