FileDocCategorySizeDatePackage
RestrictionEntry.javaAPI DocAndroid 5.1 API16569Thu Mar 12 22:22:10 GMT 2015android.content

RestrictionEntry

public class RestrictionEntry extends Object implements android.os.Parcelable
Applications can expose restrictions for a restricted user on a multiuser device. The administrator can configure these restrictions that will then be applied to the restricted user. Each RestrictionsEntry is one configurable restriction.

Any application that chooses to expose such restrictions does so by implementing a receiver that handles the {@link Intent#ACTION_GET_RESTRICTION_ENTRIES} action. The receiver then returns a result bundle that contains an entry called "restrictions", whose value is an ArrayList.

Fields Summary
public static final int
TYPE_NULL
A type of restriction. Use this type for information that needs to be transferred across but shouldn't be presented to the user in the UI. Stores a single String value.
public static final int
TYPE_BOOLEAN
A type of restriction. Use this for storing a boolean value, typically presented as a checkbox in the UI.
public static final int
TYPE_CHOICE
A type of restriction. Use this for storing a string value, typically presented as a single-select list. Call {@link #setChoiceEntries(String[])} and {@link #setChoiceValues(String[])} to set the localized list entries to present to the user and the corresponding values, respectively.
public static final int
TYPE_CHOICE_LEVEL
A type of restriction. Use this for storing a string value, typically presented as a single-select list. Call {@link #setChoiceEntries(String[])} and {@link #setChoiceValues(String[])} to set the localized list entries to present to the user and the corresponding values, respectively. The presentation could imply that values in lower array indices are included when a particular value is chosen.
public static final int
TYPE_MULTI_SELECT
A type of restriction. Use this for presenting a multi-select list where more than one entry can be selected, such as for choosing specific titles to white-list. Call {@link #setChoiceEntries(String[])} and {@link #setChoiceValues(String[])} to set the localized list entries to present to the user and the corresponding values, respectively. Use {@link #getAllSelectedStrings()} and {@link #setAllSelectedStrings(String[])} to manipulate the selections.
public static final int
TYPE_INTEGER
A type of restriction. Use this for storing an integer value. The range of values is from {@link Integer#MIN_VALUE} to {@link Integer#MAX_VALUE}.
public static final int
TYPE_STRING
A type of restriction. Use this for storing a string value.
private int
mType
The type of restriction.
private String
mKey
The unique key that identifies the restriction.
private String
mTitle
The user-visible title of the restriction.
private String
mDescription
The user-visible secondary description of the restriction.
private String[]
mChoiceEntries
The user-visible set of choices used for single-select and multi-select lists.
private String[]
mChoiceValues
The values corresponding to the user-visible choices. The value(s) of this entry will one or more of these, returned by {@link #getAllSelectedStrings()} and {@link #getSelectedString()}.
private String
mCurrentValue
private String[]
mCurrentValues
public static final Creator
CREATOR
Constructors Summary
public RestrictionEntry(int type, String key)
Constructor for specifying the type and key, with no initial value;

param
type the restriction type.
param
key the unique key for this restriction


                                 
         
        mType = type;
        mKey = key;
    
public RestrictionEntry(String key, String selectedString)
Constructor for {@link #TYPE_CHOICE} type.

param
key the unique key for this restriction
param
selectedString the current value

        this.mKey = key;
        this.mType = TYPE_CHOICE;
        this.mCurrentValue = selectedString;
    
public RestrictionEntry(String key, boolean selectedState)
Constructor for {@link #TYPE_BOOLEAN} type.

param
key the unique key for this restriction
param
selectedState whether this restriction is selected or not

        this.mKey = key;
        this.mType = TYPE_BOOLEAN;
        setSelectedState(selectedState);
    
public RestrictionEntry(android.os.Parcel in)

        mType = in.readInt();
        mKey = in.readString();
        mTitle = in.readString();
        mDescription = in.readString();
        mChoiceEntries = readArray(in);
        mChoiceValues = readArray(in);
        mCurrentValue = in.readString();
        mCurrentValues = readArray(in);
    
public RestrictionEntry(String key, String[] selectedStrings)
Constructor for {@link #TYPE_MULTI_SELECT} type.

param
key the unique key for this restriction
param
selectedStrings the list of values that are currently selected

        this.mKey = key;
        this.mType = TYPE_MULTI_SELECT;
        this.mCurrentValues = selectedStrings;
    
public RestrictionEntry(String key, int selectedInt)
Constructor for {@link #TYPE_INTEGER} type.

param
key the unique key for this restriction
param
selectedInt the integer value of the restriction

        mKey = key;
        mType = TYPE_INTEGER;
        setIntValue(selectedInt);
    
Methods Summary
public intdescribeContents()

        return 0;
    
private booleanequalArrays(java.lang.String[] one, java.lang.String[] other)

        if (one.length != other.length) return false;
        for (int i = 0; i < one.length; i++) {
            if (!one[i].equals(other[i])) return false;
        }
        return true;
    
public booleanequals(java.lang.Object o)

        if (o == this) return true;
        if (!(o instanceof RestrictionEntry)) return false;
        final RestrictionEntry other = (RestrictionEntry) o;
        // Make sure that either currentValue matches or currentValues matches.
        return mType == other.mType && mKey.equals(other.mKey)
                &&
                ((mCurrentValues == null && other.mCurrentValues == null
                  && mCurrentValue != null && mCurrentValue.equals(other.mCurrentValue))
                 ||
                 (mCurrentValue == null && other.mCurrentValue == null
                  && mCurrentValues != null && equalArrays(mCurrentValues, other.mCurrentValues)));
    
public java.lang.String[]getAllSelectedStrings()
Returns the list of currently selected values.

return
the list of current selections, if type is {@link #TYPE_MULTI_SELECT}, null otherwise.

        return mCurrentValues;
    
public java.lang.String[]getChoiceEntries()
Returns the list of strings, set earlier, that will be presented as choices to the user.

return
the list of choices presented to the user.

        return mChoiceEntries;
    
public java.lang.String[]getChoiceValues()
Returns the list of possible string values set earlier.

return
the list of possible values.

        return mChoiceValues;
    
public java.lang.StringgetDescription()
Returns the provided user-visible description of the entry, if any.

return
the user-visible description, null if none was set earlier.

        return mDescription;
    
public intgetIntValue()
Returns the value of the entry as an integer when the type is {@link #TYPE_INTEGER}.

return
the integer value of the entry.

        return Integer.parseInt(mCurrentValue);
    
public java.lang.StringgetKey()
This is the unique key for the restriction entry.

return
the key for the restriction.

        return mKey;
    
public booleangetSelectedState()
Returns the current selected state for an entry of type {@link #TYPE_BOOLEAN}.

return
the current selected state of the entry.

        return Boolean.parseBoolean(mCurrentValue);
    
public java.lang.StringgetSelectedString()
Returns the currently selected string value.

return
the currently selected value, which can be null for types that aren't for holding single string values.

        return mCurrentValue;
    
public java.lang.StringgetTitle()
Returns the user-visible title for the entry, if any.

return
the user-visible title for the entry, null if none was set earlier.

        return mTitle;
    
public intgetType()
Returns the type for this restriction.

return
the type for this restriction

        return mType;
    
public inthashCode()

        int result = 17;
        result = 31 * result + mKey.hashCode();
        if (mCurrentValue != null) {
            result = 31 * result + mCurrentValue.hashCode();
        } else if (mCurrentValues != null) {
            for (String value : mCurrentValues) {
                if (value != null) {
                    result = 31 * result + value.hashCode();
                }
            }
        }
        return result;
    
private java.lang.String[]readArray(android.os.Parcel in)

        int count = in.readInt();
        String[] values = new String[count];
        for (int i = 0; i < count; i++) {
            values[i] = in.readString();
        }
        return values;
    
public voidsetAllSelectedStrings(java.lang.String[] allSelectedStrings)
Sets the current list of selected values for an entry of type {@link #TYPE_MULTI_SELECT}. These values will be persisted by the system for later use by the application.

param
allSelectedStrings the current list of selected values.

        mCurrentValues = allSelectedStrings;
    
public voidsetChoiceEntries(java.lang.String[] choiceEntries)
Sets a list of strings that will be presented as choices to the user. When the user selects one or more of these choices, the corresponding value from the possible values are stored as the selected strings. The size of this array must match the size of the array set in {@link #setChoiceValues(String[])}. This method is not relevant for types other than {@link #TYPE_CHOICE}, and {@link #TYPE_MULTI_SELECT}.

param
choiceEntries the list of user-visible choices.
see
#setChoiceValues(String[])

        mChoiceEntries = choiceEntries;
    
public voidsetChoiceEntries(Context context, int stringArrayResId)
Sets a list of strings that will be presented as choices to the user. This is similar to {@link #setChoiceEntries(String[])}.

param
context the application context, used for retrieving the resources.
param
stringArrayResId the resource id of a string array containing the possible entries.

        mChoiceEntries = context.getResources().getStringArray(stringArrayResId);
    
public voidsetChoiceValues(java.lang.String[] choiceValues)
Sets a list of string values that can be selected by the user. If no user-visible entries are set by a call to {@link #setChoiceEntries(String[])}, these values will be the ones shown to the user. Values will be chosen from this list as the user's selection and the selected values can be retrieved by a call to {@link #getAllSelectedStrings()}, or {@link #getSelectedString()}, depending on whether it is a multi-select type or choice type. This method is not relevant for types other than {@link #TYPE_CHOICE}, and {@link #TYPE_MULTI_SELECT}.

param
choiceValues an array of Strings which will be the selected values for the user's selections.
see
#getChoiceValues()
see
#getAllSelectedStrings()

        mChoiceValues = choiceValues;
    
public voidsetChoiceValues(Context context, int stringArrayResId)
Sets a list of string values that can be selected by the user, similar to {@link #setChoiceValues(String[])}.

param
context the application context for retrieving the resources.
param
stringArrayResId the resource id for a string array containing the possible values.
see
#setChoiceValues(String[])

        mChoiceValues = context.getResources().getStringArray(stringArrayResId);
    
public voidsetDescription(java.lang.String description)
Sets the user-visible description of the entry, as a possible sub-text for the title. You can use this to describe the entry in more detail or to display the current state of the restriction.

param
description the user-visible description string.

        this.mDescription = description;
    
public voidsetIntValue(int value)
Sets the integer value of the entry when the type is {@link #TYPE_INTEGER}.

param
value the integer value to set.

        mCurrentValue = Integer.toString(value);
    
public voidsetSelectedState(boolean state)
Sets the current selected state for an entry of type {@link #TYPE_BOOLEAN}. This value will be persisted by the system for later use by the application.

param
state the current selected state

        mCurrentValue = Boolean.toString(state);
    
public voidsetSelectedString(java.lang.String selectedString)
Sets the string value to use as the selected value for this restriction. This value will be persisted by the system for later use by the application.

param
selectedString the string value to select.

        mCurrentValue = selectedString;
    
public voidsetTitle(java.lang.String title)
Sets the user-visible title for the entry.

param
title the user-visible title for the entry.

        this.mTitle = title;
    
public voidsetType(int type)
Sets the type for this restriction.

param
type the type for this restriction.

        this.mType = type;
    
public java.lang.StringtoString()


    
       
        return "RestrictionsEntry {type=" + mType + ", key=" + mKey + ", value=" + mCurrentValue + "}";
    
private voidwriteArray(android.os.Parcel dest, java.lang.String[] values)

        if (values == null) {
            dest.writeInt(0);
        } else {
            dest.writeInt(values.length);
            for (int i = 0; i < values.length; i++) {
                dest.writeString(values[i]);
            }
        }
    
public voidwriteToParcel(android.os.Parcel dest, int flags)

        dest.writeInt(mType);
        dest.writeString(mKey);
        dest.writeString(mTitle);
        dest.writeString(mDescription);
        writeArray(dest, mChoiceEntries);
        writeArray(dest, mChoiceValues);
        dest.writeString(mCurrentValue);
        writeArray(dest, mCurrentValues);