summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonsta <konsta09@gmail.com>2014-12-08 16:22:55 +0200
committerMichael Bestas <mkbestas@lineageos.org>2019-12-11 20:06:32 +0200
commitf89efa16bd3568fcb5920f831e1472e7f295b7cc (patch)
tree27a1df3443ab8ab4726fce59a768ed5f77ee4dbf
parentc785baa894ccca6b9674cc001692fa33d4654e2b (diff)
downloadandroid_packages_apps_Camera2-f89efa16bd3568fcb5920f831e1472e7f295b7cc.tar.gz
android_packages_apps_Camera2-f89efa16bd3568fcb5920f831e1472e7f295b7cc.tar.bz2
android_packages_apps_Camera2-f89efa16bd3568fcb5920f831e1472e7f295b7cc.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
-rw-r--r--src/com/android/camera/settings/CameraSettingsActivity.java6
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 0429092c2..3fe75c628 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;
@@ -286,18 +287,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;
}
/**