diff options
author | Alan Newberger <alann@google.com> | 2015-07-24 10:47:55 -0700 |
---|---|---|
committer | Alan Newberger <alann@google.com> | 2015-07-24 10:47:55 -0700 |
commit | 4df3011e2f3680a80ecc89c817ba528b2a578f0f (patch) | |
tree | be274966d12572f78744666f1def8ea705897b2a | |
parent | ae474d0b2967b3995a4e1e334d6689b0cd9a38c9 (diff) | |
download | android_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
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 20 |
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); } |