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 /src | |
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
Diffstat (limited to 'src')
-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); } |