annotate XposedLibrary/src/de/robv/android/xposed/library/ui/IntegerListPreference.java @ 0:3da8a7a621cd

Initial commit
author Brad Greco <brad@bgreco.net>
date Mon, 20 Jan 2014 22:56:13 -0600
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
1 package de.robv.android.xposed.library.ui;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
2
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
3 import android.content.Context;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
4 import android.content.SharedPreferences;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
5 import android.preference.ListPreference;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
6 import android.util.AttributeSet;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
7
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
8 public class IntegerListPreference extends ListPreference {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
9 public IntegerListPreference(Context context) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
10 super(context);
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
11 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
12
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
13 public IntegerListPreference(Context context, AttributeSet attrs) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
14 super(context, attrs);
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
15 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
16
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
17 @Override
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
18 public void setValue(String value) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
19 super.setValue(value);
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
20 notifyChanged();
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
21 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
22
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
23 @Override
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
24 protected boolean persistString(String value) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
25 if (value == null)
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
26 return false;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
27
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
28 return persistInt(getIntValue(value));
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
29 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
30
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
31 @Override
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
32 protected String getPersistedString(String defaultReturnValue) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
33 SharedPreferences pref = getPreferenceManager().getSharedPreferences();
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
34 String key = getKey();
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
35 if (!shouldPersist() || !pref.contains(key))
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
36 return defaultReturnValue;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
37
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
38 return String.valueOf(pref.getInt(key, 0));
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
39 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
40
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
41 @Override
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
42 public int findIndexOfValue(String value) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
43 CharSequence[] entryValues = getEntryValues();
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
44 int intValue = getIntValue(value);
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
45 if (value != null && entryValues != null) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
46 for (int i = entryValues.length - 1; i >= 0; i--) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
47 if (getIntValue(entryValues[i].toString()) == intValue) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
48 return i;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
49 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
50 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
51 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
52 return -1;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
53 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
54
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
55 public static int getIntValue(String value) {
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
56 if (value == null)
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
57 return 0;
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
58
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
59 return (int)((value.startsWith("0x"))
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
60 ? Long.parseLong(value.substring(2), 16)
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
61 : Long.parseLong(value));
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
62 }
3da8a7a621cd Initial commit
Brad Greco <brad@bgreco.net>
parents:
diff changeset
63 }