Prevent array index out of bounds in theme preference caused by key migration

pull/14/head
Sam Bosley 13 years ago
parent 0d7f5b21b9
commit 8217c2579b

@ -26,6 +26,7 @@ import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
import android.text.TextUtils;
import android.widget.Toast;
import com.crittercism.app.Crittercism;
@ -301,9 +302,11 @@ public class EditPreferences extends TodorooPreferenceActivity {
preference.setEnabled(false);
preference.setSummary(R.string.EPr_theme_desc_unsupported);
} else {
int index = 1;
if(value != null)
int index = 0;
if(value instanceof String && !TextUtils.isEmpty((String)value))
index = AndroidUtilities.indexOf(r.getStringArray(R.array.EPr_theme_settings), (String)value);
if (index < 0)
index = 0;
preference.setSummary(getString(R.string.EPr_theme_desc,
r.getStringArray(R.array.EPr_themes)[index]));
}

@ -10,6 +10,7 @@ import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.ThemeService;
public class AstridPreferences {
@ -44,6 +45,10 @@ public class AstridPreferences {
Preferences.setIfUnset(prefs, editor, r, R.string.p_fontSize, 18);
Preferences.setIfUnset(prefs, editor, r, R.string.p_showNotes, false);
if ("white-blue".equals(Preferences.getStringValue(R.string.p_theme))) { //$NON-NLS-1$ migrate from when white-blue wasn't the default
Preferences.setString(R.string.p_theme, ThemeService.THEME_WHITE);
}
editor.commit();
}

Loading…
Cancel
Save