summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Newberger <alann@google.com>2015-07-24 10:47:55 -0700
committerAlan Newberger <alann@google.com>2015-07-24 10:47:55 -0700
commit4df3011e2f3680a80ecc89c817ba528b2a578f0f (patch)
treebe274966d12572f78744666f1def8ea705897b2a /src
parentae474d0b2967b3995a4e1e334d6689b0cd9a38c9 (diff)
downloadandroid_packages_apps_Camera2-4df3011e2f3680a80ecc89c817ba528b2a578f0f.tar.gz
android_packages_apps_Camera2-4df3011e2f3680a80ecc89c817ba528b2a578f0f.tar.bz2
android_packages_apps_Camera2-4df3011e2f3680a80ecc89c817ba528b2a578f0f.zip
Protect against destroying uncreated values
Though we attempt to minimize lifecycle impact by exiting onCreate early due to inadequate permissions, we need to protect against touching fields in onDestroy that we did not initialize in onCreate. BUG=22718094 Change-Id: I49adcbbed005c4efa785458aa398e61488cfceb0
Diffstat (limited to 'src')
-rw-r--r--src/com/android/camera/CameraActivity.java20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 3997705b3..bf4889873 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -2169,16 +2169,26 @@ public class CameraActivity extends QuickActivity
mCameraController.removeCallbackReceiver();
mCameraController.setCameraExceptionHandler(null);
}
- getContentResolver().unregisterContentObserver(mLocalImagesObserver);
- getContentResolver().unregisterContentObserver(mLocalVideosObserver);
+ if (mLocalImagesObserver != null) {
+ getContentResolver().unregisterContentObserver(mLocalImagesObserver);
+ }
+ if (mLocalVideosObserver != null) {
+ getContentResolver().unregisterContentObserver(mLocalVideosObserver);
+ }
getServices().getCaptureSessionManager().removeSessionListener(mSessionListener);
- mCameraAppUI.onDestroy();
- mModeListView.setVisibilityChangedListener(null);
+ if (mCameraAppUI != null) {
+ mCameraAppUI.onDestroy();
+ }
+ if (mModeListView != null) {
+ mModeListView.setVisibilityChangedListener(null);
+ }
mCameraController = null;
mSettingsManager = null;
mOrientationManager = null;
mButtonManager = null;
- mSoundPlayer.release();
+ if (mSoundPlayer != null) {
+ mSoundPlayer.release();
+ }
CameraAgentFactory.recycle(CameraAgentFactory.CameraApi.API_1);
CameraAgentFactory.recycle(CameraAgentFactory.CameraApi.AUTO);
}