13e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby/* 23e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * Copyright (C) 2012 The Android Open Source Project 33e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * 43e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * Licensed under the Apache License, Version 2.0 (the "License"); 53e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * you may not use this file except in compliance with the License. 63e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * You may obtain a copy of the License at 73e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * 83e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * http://www.apache.org/licenses/LICENSE-2.0 93e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * 103e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * Unless required by applicable law or agreed to in writing, software 113e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * distributed under the License is distributed on an "AS IS" BASIS, 123e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * See the License for the specific language governing permissions and 143e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * limitations under the License. 153e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 163e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 173e3c3f80a90b156ff500076f8655647dfb317acfJake Hambypackage android.telephony.cdma; 183e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 193e3c3f80a90b156ff500076f8655647dfb317acfJake Hambyimport android.os.Parcel; 203e3c3f80a90b156ff500076f8655647dfb317acfJake Hambyimport android.os.Parcelable; 213e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 223e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby/** 233e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * CDMA Service Category Program Data from SCPT teleservice SMS. 243e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * The CellBroadcastReceiver app receives an Intent with action 253e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * {@link android.provider.Telephony.Sms.Intents#SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION} 263e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * containing an array of these objects to update its list of cell broadcast service categories 273e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * to display. 283e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * 293e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * {@hide} 303e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 313e3c3f80a90b156ff500076f8655647dfb317acfJake Hambypublic class CdmaSmsCbProgramData implements Parcelable { 323e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 333e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Delete the specified service category from the list of enabled categories. */ 343e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int OPERATION_DELETE_CATEGORY = 0; 353e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 363e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Add the specified service category to the list of enabled categories. */ 373e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int OPERATION_ADD_CATEGORY = 1; 383e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 393e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Clear all service categories from the list of enabled categories. */ 403e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int OPERATION_CLEAR_CATEGORIES = 2; 413e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 423e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: no alert. */ 433e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_NO_ALERT = 0; 443e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 453e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: default alert. */ 463e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_DEFAULT_ALERT = 1; 473e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 483e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: vibrate alert once. */ 493e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_VIBRATE_ONCE = 2; 503e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 513e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: vibrate alert - repeat. */ 523e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_VIBRATE_REPEAT = 3; 533e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 543e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: visual alert once. */ 553e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_VISUAL_ONCE = 4; 563e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 573e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: visual alert - repeat. */ 583e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_VISUAL_REPEAT = 5; 593e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 603e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: low-priority alert once. */ 613e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_LOW_PRIORITY_ONCE = 6; 623e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 633e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: low-priority alert - repeat. */ 643e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_LOW_PRIORITY_REPEAT = 7; 653e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 663e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: medium-priority alert once. */ 673e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_MED_PRIORITY_ONCE = 8; 683e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 693e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: medium-priority alert - repeat. */ 703e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_MED_PRIORITY_REPEAT = 9; 713e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 723e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: high-priority alert once. */ 733e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_HIGH_PRIORITY_ONCE = 10; 743e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 753e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Alert option: high-priority alert - repeat. */ 763e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final int ALERT_OPTION_HIGH_PRIORITY_REPEAT = 11; 773e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 783e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Service category operation (add/delete/clear). */ 793e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby private final int mOperation; 803e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 813e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Service category to modify. */ 823e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby private final int mCategory; 833e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 847b661fb3fc17f981bb122520791344891a3c1661Jake Hamby /** Language used for service category name (defined in BearerData.LANGUAGE_*). */ 857b661fb3fc17f981bb122520791344891a3c1661Jake Hamby private final int mLanguage; 863e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 873e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Maximum number of messages to store for this service category. */ 883e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby private final int mMaxMessages; 893e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 903e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Service category alert option. */ 913e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby private final int mAlertOption; 923e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 933e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Name of service category. */ 943e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby private final String mCategoryName; 953e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 963e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Create a new CdmaSmsCbProgramData object with the specified values. */ 977b661fb3fc17f981bb122520791344891a3c1661Jake Hamby public CdmaSmsCbProgramData(int operation, int category, int language, int maxMessages, 983e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby int alertOption, String categoryName) { 993e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mOperation = operation; 1003e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mCategory = category; 1013e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mLanguage = language; 1023e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mMaxMessages = maxMessages; 1033e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mAlertOption = alertOption; 1043e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mCategoryName = categoryName; 1053e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1063e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1073e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Create a new CdmaSmsCbProgramData object from a Parcel. */ 1083e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby CdmaSmsCbProgramData(Parcel in) { 1093e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mOperation = in.readInt(); 1103e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mCategory = in.readInt(); 1117b661fb3fc17f981bb122520791344891a3c1661Jake Hamby mLanguage = in.readInt(); 1123e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mMaxMessages = in.readInt(); 1133e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mAlertOption = in.readInt(); 1143e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby mCategoryName = in.readString(); 1153e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1163e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1173e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** 1183e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * Flatten this object into a Parcel. 1193e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * 1203e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * @param dest The Parcel in which the object should be written. 1213e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * @param flags Additional flags about how the object should be written (ignored). 1223e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 1233e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby @Override 1243e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public void writeToParcel(Parcel dest, int flags) { 1253e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby dest.writeInt(mOperation); 1263e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby dest.writeInt(mCategory); 1277b661fb3fc17f981bb122520791344891a3c1661Jake Hamby dest.writeInt(mLanguage); 1283e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby dest.writeInt(mMaxMessages); 1293e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby dest.writeInt(mAlertOption); 1303e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby dest.writeString(mCategoryName); 1313e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1323e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1333e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** 1343e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * Returns the service category operation, e.g. {@link #OPERATION_ADD_CATEGORY}. 1353e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * @return one of the {@code OPERATION_*} values 1363e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 1373e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public int getOperation() { 1383e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return mOperation; 1393e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1403e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1413e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** 1423e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * Returns the CDMA service category to modify. 1433e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * @return a 16-bit CDMA service category value 1443e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 1453e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public int getCategory() { 1463e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return mCategory; 1473e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1483e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1493e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** 1507b661fb3fc17f981bb122520791344891a3c1661Jake Hamby * Returns the CDMA language code for this service category. 1517b661fb3fc17f981bb122520791344891a3c1661Jake Hamby * @return one of the language values defined in BearerData.LANGUAGE_* 1523e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 1537b661fb3fc17f981bb122520791344891a3c1661Jake Hamby public int getLanguage() { 1543e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return mLanguage; 1553e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1563e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1573e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** 1583e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * Returns the maximum number of messages to store for this service category. 1593e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * @return the maximum number of messages to store for this service category 1603e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 1613e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public int getMaxMessages() { 1623e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return mMaxMessages; 1633e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1643e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1653e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** 1663e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * Returns the service category alert option, e.g. {@link #ALERT_OPTION_DEFAULT_ALERT}. 1673e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * @return one of the {@code ALERT_OPTION_*} values 1683e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 1693e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public int getAlertOption() { 1703e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return mAlertOption; 1713e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1723e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1733e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** 1747b661fb3fc17f981bb122520791344891a3c1661Jake Hamby * Returns the service category name, in the language specified by {@link #getLanguage()}. 1753e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * @return an optional service category name 1763e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 1773e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public String getCategoryName() { 1783e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return mCategoryName; 1793e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1803e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1813e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby @Override 1823e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public String toString() { 1833e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return "CdmaSmsCbProgramData{operation=" + mOperation + ", category=" + mCategory 1843e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby + ", language=" + mLanguage + ", max messages=" + mMaxMessages 1853e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby + ", alert option=" + mAlertOption + ", category name=" + mCategoryName + '}'; 1863e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1873e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1883e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** 1893e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * Describe the kinds of special objects contained in the marshalled representation. 1903e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby * @return a bitmask indicating this Parcelable contains no special objects 1913e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby */ 1923e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby @Override 1933e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public int describeContents() { 1943e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return 0; 1953e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 1963e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 1973e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby /** Creator for unparcelling objects. */ 1983e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public static final Parcelable.Creator<CdmaSmsCbProgramData> 1993e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby CREATOR = new Parcelable.Creator<CdmaSmsCbProgramData>() { 2003e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby @Override 2013e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public CdmaSmsCbProgramData createFromParcel(Parcel in) { 2023e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return new CdmaSmsCbProgramData(in); 2033e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 2043e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby 2053e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby @Override 2063e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby public CdmaSmsCbProgramData[] newArray(int size) { 2073e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby return new CdmaSmsCbProgramData[size]; 2083e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby } 2093e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby }; 2103e3c3f80a90b156ff500076f8655647dfb317acfJake Hamby} 211