summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/Utils.java
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2016-02-23 15:31:09 -0500
committerJason Monk <jmonk@google.com>2016-02-24 08:55:01 -0500
commit91e2f89b0f8b440728fe395ee02a71ae59e21ffc (patch)
treecf180063ed69b2e70a6d838d865c926f027288a9 /src/com/android/settings/Utils.java
parente57f7cbc8c80d298bbbd63b7536acd67c7f95df4 (diff)
downloadpackages_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.java39
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);
+ }
+ }
+ }
}