Example usage for android.content RestrictionEntry TYPE_NULL

List of usage examples for android.content RestrictionEntry TYPE_NULL

Introduction

In this page you can find the example usage for android.content RestrictionEntry TYPE_NULL.

Prototype

int TYPE_NULL

To view the source code for android.content RestrictionEntry TYPE_NULL.

Click Source Link

Document

Hidden restriction type.

Usage

From source file:com.android.tv.settings.users.AppRestrictionsFragment.java

private void onRestrictionsReceived(AppRestrictionsPreference preference,
        ArrayList<RestrictionEntry> restrictions) {
    // Remove any earlier restrictions
    preference.removeAll();/*ww w.ja  v  a  2s .  c o  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);
    }
}