Search in sources :

Example 1 with MultiSelectListPreference

use of android.support.v14.preference.MultiSelectListPreference in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class AppRestrictionsFragment method onRestrictionsReceived.

private void onRestrictionsReceived(AppRestrictionsPreference preference, ArrayList<RestrictionEntry> restrictions) {
    // Remove any earlier restrictions
    removeRestrictionsForApp(preference);
    // Non-custom-activity case - expand the restrictions in-place
    int count = 1;
    for (RestrictionEntry entry : restrictions) {
        Preference p = null;
        switch(entry.getType()) {
            case RestrictionEntry.TYPE_BOOLEAN:
                p = new SwitchPreference(getPrefContext());
                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(getPrefContext());
                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(getPrefContext());
                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(preference.getKey().substring(PKG_PREFIX.length()) + DELIMITER + entry.getKey());
            mAppList.addPreference(p);
            p.setOnPreferenceChangeListener(AppRestrictionsFragment.this);
            p.setIcon(R.drawable.empty_icon);
            preference.mChildren.add(p);
            count++;
        }
    }
    preference.setRestrictions(restrictions);
    if (// No visible restrictions
    count == 1 && preference.isImmutable() && preference.isChecked()) {
        // Special case of required app with no visible restrictions. Remove it
        mAppList.removePreference(preference);
    }
}
Also used : ListPreference(android.support.v7.preference.ListPreference) MultiSelectListPreference(android.support.v14.preference.MultiSelectListPreference) Preference(android.support.v7.preference.Preference) SwitchPreference(android.support.v14.preference.SwitchPreference) SwitchPreference(android.support.v14.preference.SwitchPreference) RestrictionEntry(android.content.RestrictionEntry) MultiSelectListPreference(android.support.v14.preference.MultiSelectListPreference) ListPreference(android.support.v7.preference.ListPreference) MultiSelectListPreference(android.support.v14.preference.MultiSelectListPreference) HashSet(java.util.HashSet)

Aggregations

RestrictionEntry (android.content.RestrictionEntry)1 MultiSelectListPreference (android.support.v14.preference.MultiSelectListPreference)1 SwitchPreference (android.support.v14.preference.SwitchPreference)1 ListPreference (android.support.v7.preference.ListPreference)1 Preference (android.support.v7.preference.Preference)1 HashSet (java.util.HashSet)1