From 2f18a4ce343d9bb8e8f2b87a9cc8fbb9524324c8 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Mon, 12 May 2014 12:30:43 -0700 Subject: [PATCH] Allow restore instance before setValues() in ListDialogPreference BUG: 14570831 Change-Id: I0fd24acab5221d1414f749ec18e70a72f36cc5e4 --- .../accessibility/ListDialogPreference.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/accessibility/ListDialogPreference.java b/src/com/android/settings/accessibility/ListDialogPreference.java index a25245413a4..2140d910e95 100644 --- a/src/com/android/settings/accessibility/ListDialogPreference.java +++ b/src/com/android/settings/accessibility/ListDialogPreference.java @@ -82,6 +82,10 @@ public abstract class ListDialogPreference extends DialogPreference { */ public void setValues(int[] values) { mEntryValues = values; + + if (mValueSet && mValueIndex == AbsListView.INVALID_POSITION) { + mValueIndex = getIndexForValue(mValue); + } } /** @@ -172,10 +176,12 @@ public abstract class ListDialogPreference extends DialogPreference { */ protected int getIndexForValue(int value) { final int[] values = mEntryValues; - final int count = values.length; - for (int i = 0; i < count; i++) { - if (values[i] == value) { - return i; + if (values != null) { + final int count = values.length; + for (int i = 0; i < count; i++) { + if (values[i] == value) { + return i; + } } }