From e7098d8412d6a8c59449b231240f36c6d8047af1 Mon Sep 17 00:00:00 2001 From: Gabriele M Date: Wed, 17 Feb 2016 10:03:37 +0100 Subject: Snap: Don't crash if user saved preference is not valid If the user sets some preference value that is later removed, Snap will crash because of on an ArrayIndexOutOfBoundsException. Make sure this doesn't happen. Change-Id: I629acebaf762f49f05dc1bfa0542f11979ae269d --- src/com/android/camera/ListPreference.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/com/android/camera/ListPreference.java b/src/com/android/camera/ListPreference.java index b856d460e..1abda7c48 100644 --- a/src/com/android/camera/ListPreference.java +++ b/src/com/android/camera/ListPreference.java @@ -151,11 +151,19 @@ public class ListPreference extends CameraPreference { } public String getEntry() { - return mEntries[findIndexOfValue(getValue())].toString(); + int index = findIndexOfValue(getValue()); + if (index < 0) { + index = findIndexOfValue(findSupportedDefaultValue()); + } + return mEntries[index].toString(); } public String getLabel() { - return mLabels[findIndexOfValue(getValue())].toString(); + int index = findIndexOfValue(getValue()); + if (index < 0) { + index = findIndexOfValue(findSupportedDefaultValue()); + } + return mLabels[index].toString(); } protected void persistStringValue(String value) { -- cgit v1.2.3