1694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritzepackage com.android.settings.search; 2694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 3694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritzeimport android.content.Intent; 4694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritzeimport android.os.Parcel; 5694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritzeimport android.os.Parcelable; 6694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 7694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze/** 8694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze * Payload for settings which are selected from multiple values. For example, Location can be 9694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze * set to multiple degrees of accuracy. 10694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze */ 11694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritzepublic class InlineListPayload extends InlinePayload { 12694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 13694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze /** 14694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze * Number of selections in the list. 15694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze */ 16694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze private int mNumOptions; 17694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 18694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze public InlineListPayload(String key, @PayloadType int payloadType, Intent intent, 19458bb887e130926f36d8926ea8462ecfbfd1e0efMatthew Fritze boolean isDeviceSupported, int numOptions, int defaultValue) { 20458bb887e130926f36d8926ea8462ecfbfd1e0efMatthew Fritze super(key, payloadType, intent, isDeviceSupported, defaultValue); 21694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze mNumOptions = numOptions; 22694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze } 23694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 24694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze private InlineListPayload(Parcel in) { 25694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze super(in); 26694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze mNumOptions = in.readInt(); 27694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze } 28694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 29694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze @Override 30694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze public void writeToParcel(Parcel dest, int flags) { 31694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze super.writeToParcel(dest, flags); 32694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze dest.writeInt(mNumOptions); 33694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze } 34694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 35694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze @Override 36694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze protected int standardizeInput(int input) throws IllegalArgumentException { 37694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze if (input < 0 || input >= mNumOptions) { 38694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze throw new IllegalArgumentException( 39694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze "Invalid argument for ListSelect. Expected between 0 and " 40694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze + mNumOptions + " but found: " + input); 41694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze } 42694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze return input; 43694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze } 44694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 45694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze @Override 46694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze @PayloadType public int getType() { 47694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze return PayloadType.INLINE_LIST; 48694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze } 49694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 50694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze public static final Parcelable.Creator<InlineListPayload> CREATOR = 51694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze new Parcelable.Creator<InlineListPayload>() { 52694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze @Override 53694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze public InlineListPayload createFromParcel(Parcel in) { 54694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze return new InlineListPayload(in); 55694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze } 56694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze 57694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze @Override 58694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze public InlineListPayload[] newArray(int size) { 59694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze return new InlineListPayload[size]; 60694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze } 61694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze }; 62694088075e57f031a36a1000d6c69e356fe52d51Matthew Fritze} 63