ServiceState.java revision ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.telephony; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable; 22767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.util.Log; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Contains phone state and service related information. 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The following phone information is included in returned ServiceState: 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <ul> 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <li>Service state: IN_SERVICE, OUT_OF_SERVICE, EMERGENCY_ONLY, POWER_OFF 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <li>Roaming indicator 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <li>Operator name, short name and numeric id 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <li>Network selection mode 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </ul> 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class ServiceState implements Parcelable { 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 38767a662ecde33c3979bf02b793d392aca0403162Wink Saville static final String LOG_TAG = "PHONE"; 39767a662ecde33c3979bf02b793d392aca0403162Wink Saville 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Normal operation condition, the phone is registered 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * with an operator either in home network or in roaming. 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int STATE_IN_SERVICE = 0; 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Phone is not registered with any operator, the phone 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * can be currently searching a new operator to register to, or not 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * searching to registration at all, or registration is denied, or radio 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * signal is not available. 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int STATE_OUT_OF_SERVICE = 1; 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The phone is registered and locked. Only emergency numbers are allowed. {@more} 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int STATE_EMERGENCY_ONLY = 2; 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Radio of telephony is explictly powered off. 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int STATE_POWER_OFF = 3; 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 64767a662ecde33c3979bf02b793d392aca0403162Wink Saville 65767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** 66767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Available radio technologies for GSM, UMTS and CDMA. 67767a662ecde33c3979bf02b793d392aca0403162Wink Saville */ 68767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 69767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int RADIO_TECHNOLOGY_UNKNOWN = 0; 70767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 71767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int RADIO_TECHNOLOGY_GPRS = 1; 72767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 73767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int RADIO_TECHNOLOGY_EDGE = 2; 74767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 75767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int RADIO_TECHNOLOGY_UMTS = 3; 76767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 77767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int RADIO_TECHNOLOGY_IS95A = 4; 78767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 79767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int RADIO_TECHNOLOGY_IS95B = 5; 80767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 81767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int RADIO_TECHNOLOGY_1xRTT = 6; 82767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 83767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int RADIO_TECHNOLOGY_EVDO_0 = 7; 84767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 85767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int RADIO_TECHNOLOGY_EVDO_A = 8; 86ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe /** @hide */ 87ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe public static final int RADIO_TECHNOLOGY_HSDPA = 9; 88ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe /** @hide */ 89ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe public static final int RADIO_TECHNOLOGY_HSUPA = 10; 90ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe /** @hide */ 91ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe public static final int RADIO_TECHNOLOGY_HSPA = 11; 92767a662ecde33c3979bf02b793d392aca0403162Wink Saville 93767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** 94767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Available registration states for GSM, UMTS and CDMA. 95767a662ecde33c3979bf02b793d392aca0403162Wink Saville */ 96767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 97767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING = 0; 98767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 99767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_HOME_NETWORK = 1; 100767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 101767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_NOT_REGISTERED_AND_SEARCHING = 2; 102767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 103767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_REGISTRATION_DENIED = 3; 104767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 105767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_UNKNOWN = 4; 106767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 107767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_ROAMING = 5; 108767a662ecde33c3979bf02b793d392aca0403162Wink Saville 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mState = STATE_OUT_OF_SERVICE; 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mRoaming; 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mOperatorAlphaLong; 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mOperatorAlphaShort; 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mOperatorNumeric; 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mIsManualNetworkSelection; 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 116767a662ecde33c3979bf02b793d392aca0403162Wink Saville //***** CDMA 117767a662ecde33c3979bf02b793d392aca0403162Wink Saville private int mRadioTechnology; 118767a662ecde33c3979bf02b793d392aca0403162Wink Saville private boolean mCssIndicator; 119767a662ecde33c3979bf02b793d392aca0403162Wink Saville private int mNetworkId; 120767a662ecde33c3979bf02b793d392aca0403162Wink Saville private int mSystemId; 121e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private int mCdmaRoamingIndicator; 122e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private int mCdmaDefaultRoamingIndicator; 123767a662ecde33c3979bf02b793d392aca0403162Wink Saville 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Create a new ServiceState from a intent notifier Bundle 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method is used by PhoneStateIntentReceiver and maybe by 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * external applications. 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param m Bundle from intent notifier 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return newly created ServiceState 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static ServiceState newFromBundle(Bundle m) { 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ServiceState ret; 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ret = new ServiceState(); 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ret.setFromNotifierBundle(m); 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ret; 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Empty constructor 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState() { 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copy constructors 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param s Source service state 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState(ServiceState s) { 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project copyFrom(s); 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected void copyFrom(ServiceState s) { 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = s.mState; 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = s.mRoaming; 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = s.mOperatorAlphaLong; 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = s.mOperatorAlphaShort; 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = s.mOperatorNumeric; 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = s.mIsManualNetworkSelection; 163767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = s.mRadioTechnology; 164767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = s.mCssIndicator; 165767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = s.mNetworkId; 166767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = s.mSystemId; 167e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = s.mCdmaRoamingIndicator; 168e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = s.mCdmaDefaultRoamingIndicator; 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Construct a ServiceState object from the given parcel. 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState(Parcel in) { 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = in.readInt(); 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = in.readInt() != 0; 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = in.readString(); 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = in.readString(); 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = in.readString(); 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = in.readInt() != 0; 181767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = in.readInt(); 182767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = (in.readInt() != 0); 183767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = in.readInt(); 184767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = in.readInt(); 185e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = in.readInt(); 186e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = in.readInt(); 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel out, int flags) { 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeInt(mState); 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeInt(mRoaming ? 1 : 0); 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeString(mOperatorAlphaLong); 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeString(mOperatorAlphaShort); 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeString(mOperatorNumeric); 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeInt(mIsManualNetworkSelection ? 1 : 0); 196767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mRadioTechnology); 197767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mCssIndicator ? 1 : 0); 198767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mNetworkId); 199767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mSystemId); 200e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville out.writeInt(mCdmaRoamingIndicator); 201e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville out.writeInt(mCdmaDefaultRoamingIndicator); 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<ServiceState> CREATOR = new Parcelable.Creator() { 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState createFromParcel(Parcel in) { 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ServiceState(in); 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState[] newArray(int size) { 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ServiceState[size]; 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get current servcie state of phone 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_IN_SERVICE 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_OUT_OF_SERVICE 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_EMERGENCY_ONLY 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_POWER_OFF 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getState() { 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mState; 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get current roaming indicator of phone 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (note: not just decoding from TS 27.007 7.2) 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if TS 27.007 7.2 roaming is true 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and ONS is different from SPN 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getRoaming() { 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mRoaming; 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 242e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 243e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 244e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 245e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getCdmaRoamingIndicator(){ 246e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return this.mCdmaRoamingIndicator; 247e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 248e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 249e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 250e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 251e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 252e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getCdmaDefaultRoamingIndicator(){ 253e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return this.mCdmaDefaultRoamingIndicator; 254767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 255767a662ecde33c3979bf02b793d392aca0403162Wink Saville 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get current registered operator name in long alphanumeric format 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * In GSM/UMTS, long format can be upto 16 characters long 260e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * In CDMA, returns the ERI text, if set, otherwise the ONS 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return long name of operator, null if unregistered or unknown 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getOperatorAlphaLong() { 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOperatorAlphaLong; 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get current registered operator name in short lphanumeric format 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * In GSM/UMST, short format can be upto 8 characters long 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return short name of operator, null if unregistered or unknown 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getOperatorAlphaShort() { 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOperatorAlphaShort; 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get current registered operator numeric id 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * In GSM/UMTS, numeric format is 3 digit country code plus 2 or 3 digit 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * network code 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The country code can be decoded using MccTable.countryCodeForMcc() 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return numeric format of operator, null if unregistered or unknown 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getOperatorNumeric() { 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOperatorNumeric; 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get current network selection mode 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if manual mode, false if automatic mode 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getIsManualSelection() { 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mIsManualNetworkSelection; 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int hashCode() { 304767a662ecde33c3979bf02b793d392aca0403162Wink Saville return ((mState * 0x1234) 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + (mRoaming ? 1 : 0) 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + (mIsManualNetworkSelection ? 1 : 0) 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + ((null == mOperatorAlphaLong) ? 0 : mOperatorAlphaLong.hashCode()) 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + ((null == mOperatorAlphaShort) ? 0 : mOperatorAlphaShort.hashCode()) 309767a662ecde33c3979bf02b793d392aca0403162Wink Saville + ((null == mOperatorNumeric) ? 0 : mOperatorNumeric.hashCode()) 310e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + mCdmaRoamingIndicator 311e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + mCdmaDefaultRoamingIndicator); 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean equals (Object o) { 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ServiceState s; 317767a662ecde33c3979bf02b793d392aca0403162Wink Saville 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project s = (ServiceState) o; 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException ex) { 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 328767a662ecde33c3979bf02b793d392aca0403162Wink Saville return (mState == s.mState 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && mRoaming == s.mRoaming 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && mIsManualNetworkSelection == s.mIsManualNetworkSelection 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && equalsHandlesNulls(mOperatorAlphaLong, s.mOperatorAlphaLong) 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && equalsHandlesNulls(mOperatorAlphaShort, s.mOperatorAlphaShort) 333767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mOperatorNumeric, s.mOperatorNumeric) 334767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mRadioTechnology, s.mRadioTechnology) 335767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mCssIndicator, s.mCssIndicator) 336767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mNetworkId, s.mNetworkId) 337767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mSystemId, s.mSystemId) 338e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville && equalsHandlesNulls(mCdmaRoamingIndicator, s.mCdmaRoamingIndicator) 339e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville && equalsHandlesNulls(mCdmaDefaultRoamingIndicator, 340e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville s.mCdmaDefaultRoamingIndicator)); 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 345767a662ecde33c3979bf02b793d392aca0403162Wink Saville String radioTechnology = new String("Error in radioTechnology"); 346767a662ecde33c3979bf02b793d392aca0403162Wink Saville 347767a662ecde33c3979bf02b793d392aca0403162Wink Saville switch(this.mRadioTechnology) { 348767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 0: 349767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "Unknown"; 350767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 351767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 1: 352767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "GPRS"; 353767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 354767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 2: 355767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "EDGE"; 356767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 357767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 3: 358767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "UMTS"; 359767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 360767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 4: 361767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "IS95A"; 362767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 363767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 5: 364767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "IS95B"; 365767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 366767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 6: 367767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "1xRTT"; 368767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 369767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 7: 370767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "EvDo rev. 0"; 371767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 372767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 8: 373767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "EvDo rev. A"; 374767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 375ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe case 9: 376ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe radioTechnology = "HSDPA"; 377ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe break; 378ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe case 10: 379ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe radioTechnology = "HSUPA"; 380ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe break; 381ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe case 11: 382ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe radioTechnology = "HSPA"; 383ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe break; 384767a662ecde33c3979bf02b793d392aca0403162Wink Saville default: 385767a662ecde33c3979bf02b793d392aca0403162Wink Saville Log.w(LOG_TAG, "mRadioTechnology variable out of range."); 386767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 387767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 388767a662ecde33c3979bf02b793d392aca0403162Wink Saville 389767a662ecde33c3979bf02b793d392aca0403162Wink Saville return (mState + " " + (mRoaming ? "roaming" : "home") 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + mOperatorAlphaLong 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + mOperatorAlphaShort 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + mOperatorNumeric 393767a662ecde33c3979bf02b793d392aca0403162Wink Saville + " " + (mIsManualNetworkSelection ? "(manual)" : "") 394767a662ecde33c3979bf02b793d392aca0403162Wink Saville + " " + radioTechnology 395767a662ecde33c3979bf02b793d392aca0403162Wink Saville + " " + (mCssIndicator ? "CSS supported" : "CSS not supported") 396e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + " " + mNetworkId 397e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + " " + mSystemId 398e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + "RoamInd: " + mCdmaRoamingIndicator 399e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + "DefRoamInd: " + mCdmaDefaultRoamingIndicator); 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setStateOutOfService() { 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = STATE_OUT_OF_SERVICE; 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = false; 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = null; 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = null; 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = null; 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = false; 409767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = 0; 410767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = false; 411767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = -1; 412767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = -1; 413e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = -1; 414e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = -1; 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setStateOff() { 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = STATE_POWER_OFF; 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = false; 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = null; 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = null; 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = null; 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = false; 424767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = 0; 425767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = false; 426767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = -1; 427767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = -1; 428e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = -1; 429e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = -1; 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setState(int state) { 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = state; 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setRoaming(boolean roaming) { 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = roaming; 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 440e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 441e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 442e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 443e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void setCdmaRoamingIndicator(int roaming) { 444e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mCdmaRoamingIndicator = roaming; 445e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 446e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 447e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 448e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 449e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 450e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void setCdmaDefaultRoamingIndicator (int roaming) { 451e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mCdmaDefaultRoamingIndicator = roaming; 452767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 453767a662ecde33c3979bf02b793d392aca0403162Wink Saville 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setOperatorName(String longName, String shortName, String numeric) { 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = longName; 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = shortName; 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = numeric; 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 460e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 461e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * In CDMA mOperatorAlphaLong can be set from the ERI 462e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * text, this is done from the CDMAPhone and not from the CdmaServiceStateTracker 463e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 464e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 465e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 466e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void setCdmaEriText(String longName) { 467e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mOperatorAlphaLong = longName; 468e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 469e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setIsManualSelection(boolean isManual) { 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = isManual; 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 473767a662ecde33c3979bf02b793d392aca0403162Wink Saville 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Test whether two objects hold the same data values or both are null 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param a first obj 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param b second obj 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if two objects equal or both are null 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static boolean equalsHandlesNulls (Object a, Object b) { 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (a == null) ? (b == null) : a.equals (b); 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set ServiceState based on intent notifier map 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param m intent notifier map 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void setFromNotifierBundle(Bundle m) { 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = m.getInt("state"); 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = m.getBoolean("roaming"); 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = m.getString("operator-alpha-long"); 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = m.getString("operator-alpha-short"); 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = m.getString("operator-numeric"); 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = m.getBoolean("manual"); 498767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = m.getInt("radioTechnology"); 499767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = m.getBoolean("cssIndicator"); 500767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = m.getInt("networkId"); 501767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = m.getInt("systemId"); 502e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = m.getInt("cdmaRoamingIndicator"); 503e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator"); 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set intent notifier Bundle based on service state 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param m intent notifier Bundle 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void fillInNotifierBundle(Bundle m) { 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putInt("state", mState); 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putBoolean("roaming", Boolean.valueOf(mRoaming)); 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putString("operator-alpha-long", mOperatorAlphaLong); 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putString("operator-alpha-short", mOperatorAlphaShort); 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putString("operator-numeric", mOperatorNumeric); 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putBoolean("manual", Boolean.valueOf(mIsManualNetworkSelection)); 519767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putInt("radioTechnology", mRadioTechnology); 520767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putBoolean("cssIndicator", mCssIndicator); 521767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putInt("networkId", mNetworkId); 522767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putInt("systemId", mSystemId); 523e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville m.putInt("cdmaRoamingIndicator", mCdmaRoamingIndicator); 524e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); 525767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 526767a662ecde33c3979bf02b793d392aca0403162Wink Saville 527767a662ecde33c3979bf02b793d392aca0403162Wink Saville //***** CDMA 528767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 529767a662ecde33c3979bf02b793d392aca0403162Wink Saville public void setRadioTechnology(int state) { 530767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mRadioTechnology = state; 531767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 532767a662ecde33c3979bf02b793d392aca0403162Wink Saville 533767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 534767a662ecde33c3979bf02b793d392aca0403162Wink Saville public void setCssIndicator(int css) { 535767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mCssIndicator = (css != 0); 536767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 537767a662ecde33c3979bf02b793d392aca0403162Wink Saville 538767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 539767a662ecde33c3979bf02b793d392aca0403162Wink Saville public void setSystemAndNetworkId(int systemId, int networkId) { 540767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mSystemId = systemId; 541767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mNetworkId = networkId; 542767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 543767a662ecde33c3979bf02b793d392aca0403162Wink Saville 544767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 545767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getRadioTechnology() { 546767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mRadioTechnology; 547767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 548767a662ecde33c3979bf02b793d392aca0403162Wink Saville 549767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 550767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getCssIndicator() { 551767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mCssIndicator ? 1 : 0; 552767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 553767a662ecde33c3979bf02b793d392aca0403162Wink Saville 554767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 555767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getNetworkId() { 556767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mNetworkId; 557767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 558767a662ecde33c3979bf02b793d392aca0403162Wink Saville 559767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 560767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getSystemId() { 561767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mSystemId; 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 564