diff options
author | Jason Monk <jmonk@google.com> | 2016-02-23 15:31:09 -0500 |
---|---|---|
committer | Jason Monk <jmonk@google.com> | 2016-02-24 08:55:01 -0500 |
commit | 91e2f89b0f8b440728fe395ee02a71ae59e21ffc (patch) | |
tree | cf180063ed69b2e70a6d838d865c926f027288a9 /src/com/android/settings/Utils.java | |
parent | e57f7cbc8c80d298bbbd63b7536acd67c7f95df4 (diff) | |
download | packages_apps_Settings-91e2f89b0f8b440728fe395ee02a71ae59e21ffc.tar.gz packages_apps_Settings-91e2f89b0f8b440728fe395ee02a71ae59e21ffc.tar.bz2 packages_apps_Settings-91e2f89b0f8b440728fe395ee02a71ae59e21ffc.zip |
Rearrange configure/default apps
Bug: 27276982
Bug: 27279305
Change-Id: I443e9d2bc0c3fd9bcc13ee86716c14fbb55af0ba
Diffstat (limited to 'src/com/android/settings/Utils.java')
-rw-r--r-- | src/com/android/settings/Utils.java | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index b54c414d78..c6af8fb629 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -64,6 +64,8 @@ import android.provider.ContactsContract.RawContacts; import android.service.persistentdata.PersistentDataBlockManager; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceGroup; +import android.support.v7.preference.PreferenceManager; +import android.support.v7.preference.PreferenceScreen; import android.telephony.TelephonyManager; import android.text.Spannable; import android.text.SpannableString; @@ -83,7 +85,6 @@ import android.view.animation.AnimationUtils; import android.widget.ListView; import android.widget.TabWidget; import com.android.internal.util.UserIcons; -import com.android.settings.datausage.DataUsageList; import java.io.IOException; import java.io.InputStream; @@ -1025,5 +1026,41 @@ public final class Utils extends com.android.settingslib.Utils { .toString(); } } + + public static List<String> getNonIndexable(int xml, Context context) { + List<String> ret = new ArrayList<>(); + PreferenceManager manager = new PreferenceManager(context); + PreferenceScreen screen = manager.inflateFromResource(context, xml, null); + checkPrefs(screen, ret); + + return ret; + } + + private static void checkPrefs(PreferenceGroup group, List<String> ret) { + if (group == null) return; + for (int i = 0; i < group.getPreferenceCount(); i++) { + Preference pref = group.getPreference(i); + if (pref instanceof SelfAvailablePreference + && !((SelfAvailablePreference) pref).isAvailable(group.getContext())) { + ret.add(pref.getKey()); + if (pref instanceof PreferenceGroup) { + addAll((PreferenceGroup) pref, ret); + } + } else if (pref instanceof PreferenceGroup) { + checkPrefs((PreferenceGroup) pref, ret); + } + } + } + + private static void addAll(PreferenceGroup group, List<String> ret) { + if (group == null) return; + for (int i = 0; i < group.getPreferenceCount(); i++) { + Preference pref = group.getPreference(i); + ret.add(pref.getKey()); + if (pref instanceof PreferenceGroup) { + addAll((PreferenceGroup) pref, ret); + } + } + } } |