List of usage examples for android.content RestrictionEntry getChoiceValues
public String[] getChoiceValues()
From source file:com.example.android.apprestrictionenforcer.AppRestrictionEnforcerFragment.java
/** * Loads the restrictions for the AppRestrictionSchema sample. * * @param activity The activity//w ww . ja va 2 s. com */ private void loadRestrictions(Activity activity) { RestrictionsManager manager = (RestrictionsManager) activity.getSystemService(Context.RESTRICTIONS_SERVICE); List<RestrictionEntry> restrictions = manager .getManifestRestrictions(Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA); SharedPreferences prefs = activity.getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE); for (RestrictionEntry restriction : restrictions) { String key = restriction.getKey(); if (RESTRICTION_KEY_SAY_HELLO.equals(key)) { updateCanSayHello(prefs.getBoolean(RESTRICTION_KEY_SAY_HELLO, restriction.getSelectedState())); } else if (RESTRICTION_KEY_MESSAGE.equals(key)) { updateMessage(prefs.getString(RESTRICTION_KEY_MESSAGE, restriction.getSelectedString())); } else if (RESTRICTION_KEY_NUMBER.equals(key)) { updateNumber(prefs.getInt(RESTRICTION_KEY_NUMBER, restriction.getIntValue())); } else if (RESTRICTION_KEY_RANK.equals(key)) { updateRank(activity, restriction.getChoiceValues(), prefs.getString(RESTRICTION_KEY_RANK, restriction.getSelectedString())); } else if (RESTRICTION_KEY_APPROVALS.equals(key)) { updateApprovals(activity, restriction.getChoiceValues(), TextUtils.split( prefs.getString(RESTRICTION_KEY_APPROVALS, TextUtils.join(DELIMETER, restriction.getAllSelectedStrings())), DELIMETER)); } else if (BUNDLE_SUPPORTED && RESTRICTION_KEY_ITEMS.equals(key)) { String itemsString = prefs.getString(RESTRICTION_KEY_ITEMS, ""); HashMap<String, String> items = new HashMap<>(); for (String itemString : TextUtils.split(itemsString, DELIMETER)) { String[] strings = itemString.split(SEPARATOR, 2); items.put(strings[0], strings[1]); } updateItems(activity, items); } } }
From source file:com.android.tv.settings.users.AppRestrictionsFragment.java
@Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); if (key != null && key.contains(DELIMITER)) { StringTokenizer st = new StringTokenizer(key, DELIMITER); final String packageName = st.nextToken(); final String restrictionKey = st.nextToken(); AppRestrictionsPreference appPref = (AppRestrictionsPreference) mAppList .findPreference(getKeyForPackage(packageName)); ArrayList<RestrictionEntry> restrictions = appPref.getRestrictions(); if (restrictions != null) { for (RestrictionEntry entry : restrictions) { if (entry.getKey().equals(restrictionKey)) { switch (entry.getType()) { case RestrictionEntry.TYPE_BOOLEAN: entry.setSelectedState((Boolean) newValue); break; case RestrictionEntry.TYPE_CHOICE: case RestrictionEntry.TYPE_CHOICE_LEVEL: ListPreference listPref = (ListPreference) preference; entry.setSelectedString((String) newValue); String readable = findInArray(entry.getChoiceEntries(), entry.getChoiceValues(), (String) newValue); listPref.setSummary(readable); break; case RestrictionEntry.TYPE_MULTI_SELECT: Set<String> set = (Set<String>) newValue; String[] selectedValues = new String[set.size()]; set.toArray(selectedValues); entry.setAllSelectedStrings(selectedValues); break; default: continue; }// w ww .jav a2 s.c om mUserManager.setApplicationRestrictions(packageName, RestrictionsManager.convertRestrictionsToBundle(restrictions), mUser); break; } } } } return true; }
From source file:com.android.tv.settings.users.AppRestrictionsFragment.java
private void onRestrictionsReceived(AppRestrictionsPreference preference, ArrayList<RestrictionEntry> restrictions) { // Remove any earlier restrictions preference.removeAll();/*from ww w . j a v a 2 s. co m*/ // Non-custom-activity case - expand the restrictions in-place int count = 1; final Context themedContext = getPreferenceManager().getContext(); for (RestrictionEntry entry : restrictions) { Preference p = null; switch (entry.getType()) { case RestrictionEntry.TYPE_BOOLEAN: p = new SwitchPreference(themedContext); p.setTitle(entry.getTitle()); p.setSummary(entry.getDescription()); ((SwitchPreference) p).setChecked(entry.getSelectedState()); break; case RestrictionEntry.TYPE_CHOICE: case RestrictionEntry.TYPE_CHOICE_LEVEL: p = new ListPreference(themedContext); p.setTitle(entry.getTitle()); String value = entry.getSelectedString(); if (value == null) { value = entry.getDescription(); } p.setSummary(findInArray(entry.getChoiceEntries(), entry.getChoiceValues(), value)); ((ListPreference) p).setEntryValues(entry.getChoiceValues()); ((ListPreference) p).setEntries(entry.getChoiceEntries()); ((ListPreference) p).setValue(value); ((ListPreference) p).setDialogTitle(entry.getTitle()); break; case RestrictionEntry.TYPE_MULTI_SELECT: p = new MultiSelectListPreference(themedContext); p.setTitle(entry.getTitle()); ((MultiSelectListPreference) p).setEntryValues(entry.getChoiceValues()); ((MultiSelectListPreference) p).setEntries(entry.getChoiceEntries()); HashSet<String> set = new HashSet<>(); Collections.addAll(set, entry.getAllSelectedStrings()); ((MultiSelectListPreference) p).setValues(set); ((MultiSelectListPreference) p).setDialogTitle(entry.getTitle()); break; case RestrictionEntry.TYPE_NULL: default: } if (p != null) { p.setPersistent(false); p.setOrder(preference.getOrder() + count); // Store the restrictions key string as a key for the preference p.setKey(getPackageFromKey(preference.getKey()) + DELIMITER + entry.getKey()); preference.addPreference(p); p.setOnPreferenceChangeListener(AppRestrictionsFragment.this); p.setIcon(BLANK_DRAWABLE); count++; } } preference.setRestrictions(restrictions); if (count == 1 // No visible restrictions && preference.isImmutable() && preference.isChecked()) { // Special case of required app with no visible restrictions. Remove it mAppList.removePreference(preference); } }