diff options
author | Konsta <konsta09@gmail.com> | 2014-12-08 16:22:55 +0200 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2015-11-30 23:52:33 +0200 |
commit | 129c9e807495bd8166099e131e3341eedd714d89 (patch) | |
tree | 691473d41778d130ae753616c2c11179ea771d83 /src | |
parent | 7a9d6a6e310c6d1c4b14bde36c0913dc5a44e81c (diff) | |
download | android_packages_apps_Camera2-129c9e807495bd8166099e131e3341eedd714d89.tar.gz android_packages_apps_Camera2-129c9e807495bd8166099e131e3341eedd714d89.tar.bz2 android_packages_apps_Camera2-129c9e807495bd8166099e131e3341eedd714d89.zip |
Camera2: Remove settings preferences only once
Browsing through camera settings crashes on devices with only
a back- or a front facing camera. Fix NPE on removing preferences
that are already removed.
Change-Id: I00b4549e18ea44975bf795da9384892d8ef2ee16
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/settings/CameraSettingsActivity.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/com/android/camera/settings/CameraSettingsActivity.java b/src/com/android/camera/settings/CameraSettingsActivity.java index 50641fd22..32afbed49 100644 --- a/src/com/android/camera/settings/CameraSettingsActivity.java +++ b/src/com/android/camera/settings/CameraSettingsActivity.java @@ -147,6 +147,7 @@ public class CameraSettingsActivity extends FragmentActivity { private String mPrefKey; private boolean mHideAdvancedScreen; private boolean mGetSubPrefAsRoot = true; + private boolean mPreferencesRemoved = false; // Selected resolutions for the different cameras and sizes. private PictureSizes mPictureSizes; @@ -285,18 +286,19 @@ public class CameraSettingsActivity extends FragmentActivity { private void setVisibilities() { PreferenceGroup resolutions = (PreferenceGroup) findPreference(PREF_CATEGORY_RESOLUTION); - if (mPictureSizes.backCameraSizes.isEmpty()) { + if ((mPictureSizes.backCameraSizes.isEmpty()) && !mPreferencesRemoved) { recursiveDelete(resolutions, findPreference(Keys.KEY_PICTURE_SIZE_BACK)); recursiveDelete(resolutions, findPreference(Keys.KEY_VIDEO_QUALITY_BACK)); } - if (mPictureSizes.frontCameraSizes.isEmpty()) { + if ((mPictureSizes.frontCameraSizes.isEmpty()) && !mPreferencesRemoved) { recursiveDelete(resolutions, findPreference(Keys.KEY_PICTURE_SIZE_FRONT)); recursiveDelete(resolutions, findPreference(Keys.KEY_VIDEO_QUALITY_FRONT)); } + mPreferencesRemoved = true; } /** |