ServiceState.java revision e25863c9093d3f60a1f6feab1d17d38946a8d020
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 /** 60390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Radio of telephony is explicitly 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; 920a5174a6e947d5cbeb8846a1273a90b6de065cbfNaveen Kalla /** @hide */ 930a5174a6e947d5cbeb8846a1273a90b6de065cbfNaveen Kalla public static final int RADIO_TECHNOLOGY_EVDO_B = 12; 94767a662ecde33c3979bf02b793d392aca0403162Wink Saville 95767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** 96767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Available registration states for GSM, UMTS and CDMA. 97767a662ecde33c3979bf02b793d392aca0403162Wink Saville */ 98767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 99767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING = 0; 100767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 101767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_HOME_NETWORK = 1; 102767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 103767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_NOT_REGISTERED_AND_SEARCHING = 2; 104767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 105767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_REGISTRATION_DENIED = 3; 106767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 107767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_UNKNOWN = 4; 108767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 109767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_ROAMING = 5; 110767a662ecde33c3979bf02b793d392aca0403162Wink Saville 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mState = STATE_OUT_OF_SERVICE; 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mRoaming; 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mOperatorAlphaLong; 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mOperatorAlphaShort; 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mOperatorNumeric; 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mIsManualNetworkSelection; 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 118767a662ecde33c3979bf02b793d392aca0403162Wink Saville //***** CDMA 119767a662ecde33c3979bf02b793d392aca0403162Wink Saville private int mRadioTechnology; 120767a662ecde33c3979bf02b793d392aca0403162Wink Saville private boolean mCssIndicator; 121767a662ecde33c3979bf02b793d392aca0403162Wink Saville private int mNetworkId; 122767a662ecde33c3979bf02b793d392aca0403162Wink Saville private int mSystemId; 123e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private int mCdmaRoamingIndicator; 124e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private int mCdmaDefaultRoamingIndicator; 12598e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt private int mCdmaEriIconIndex; 12698e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt private int mCdmaEriIconMode; 127767a662ecde33c3979bf02b793d392aca0403162Wink Saville 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Create a new ServiceState from a intent notifier Bundle 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method is used by PhoneStateIntentReceiver and maybe by 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * external applications. 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param m Bundle from intent notifier 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return newly created ServiceState 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static ServiceState newFromBundle(Bundle m) { 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ServiceState ret; 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ret = new ServiceState(); 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ret.setFromNotifierBundle(m); 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ret; 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Empty constructor 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState() { 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copy constructors 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param s Source service state 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState(ServiceState s) { 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project copyFrom(s); 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected void copyFrom(ServiceState s) { 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = s.mState; 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = s.mRoaming; 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = s.mOperatorAlphaLong; 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = s.mOperatorAlphaShort; 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = s.mOperatorNumeric; 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = s.mIsManualNetworkSelection; 167767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = s.mRadioTechnology; 168767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = s.mCssIndicator; 169767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = s.mNetworkId; 170767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = s.mSystemId; 171e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = s.mCdmaRoamingIndicator; 172e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = s.mCdmaDefaultRoamingIndicator; 17398e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconIndex = s.mCdmaEriIconIndex; 17498e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconMode = s.mCdmaEriIconMode; 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Construct a ServiceState object from the given parcel. 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState(Parcel in) { 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = in.readInt(); 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = in.readInt() != 0; 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = in.readString(); 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = in.readString(); 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = in.readString(); 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = in.readInt() != 0; 187767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = in.readInt(); 188767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = (in.readInt() != 0); 189767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = in.readInt(); 190767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = in.readInt(); 191e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = in.readInt(); 192e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = in.readInt(); 19398e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconIndex = in.readInt(); 19498e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconMode = in.readInt(); 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel out, int flags) { 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeInt(mState); 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeInt(mRoaming ? 1 : 0); 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeString(mOperatorAlphaLong); 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeString(mOperatorAlphaShort); 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeString(mOperatorNumeric); 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeInt(mIsManualNetworkSelection ? 1 : 0); 204767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mRadioTechnology); 205767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mCssIndicator ? 1 : 0); 206767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mNetworkId); 207767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mSystemId); 208e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville out.writeInt(mCdmaRoamingIndicator); 209e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville out.writeInt(mCdmaDefaultRoamingIndicator); 21098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt out.writeInt(mCdmaEriIconIndex); 21198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt out.writeInt(mCdmaEriIconMode); 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 218390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby public static final Parcelable.Creator<ServiceState> CREATOR = 219390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby new Parcelable.Creator<ServiceState>() { 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState createFromParcel(Parcel in) { 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ServiceState(in); 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState[] newArray(int size) { 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ServiceState[size]; 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 230390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current service state of phone 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_IN_SERVICE 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_OUT_OF_SERVICE 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_EMERGENCY_ONLY 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_POWER_OFF 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getState() { 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mState; 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get current roaming indicator of phone 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (note: not just decoding from TS 27.007 7.2) 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if TS 27.007 7.2 roaming is true 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and ONS is different from SPN 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getRoaming() { 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mRoaming; 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 253e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 254e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 255e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 256e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getCdmaRoamingIndicator(){ 257e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return this.mCdmaRoamingIndicator; 258e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 259e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 260e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 261e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 262e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 263e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getCdmaDefaultRoamingIndicator(){ 264e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return this.mCdmaDefaultRoamingIndicator; 265767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 266767a662ecde33c3979bf02b793d392aca0403162Wink Saville 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 26898e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt * @hide 26998e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt */ 27098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt public int getCdmaEriIconIndex() { 27198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt return this.mCdmaEriIconIndex; 27298e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt } 27398e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt 27498e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt /** 27598e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt * @hide 27698e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt */ 27798e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt public int getCdmaEriIconMode() { 27898e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt return this.mCdmaEriIconMode; 27998e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt } 28098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt 28198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt /** 282390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current registered operator name in long alphanumeric format. 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 284390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * In GSM/UMTS, long format can be up to 16 characters long. 285390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * In CDMA, returns the ERI text, if set. Otherwise, returns the ONS. 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return long name of operator, null if unregistered or unknown 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getOperatorAlphaLong() { 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOperatorAlphaLong; 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 294390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current registered operator name in short alphanumeric format. 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 296390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * In GSM/UMTS, short format can be up to 8 characters long. 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return short name of operator, null if unregistered or unknown 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getOperatorAlphaShort() { 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOperatorAlphaShort; 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 305390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current registered operator numeric id. 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * In GSM/UMTS, numeric format is 3 digit country code plus 2 or 3 digit 308390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * network code. 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 310e25863c9093d3f60a1f6feab1d17d38946a8d020Jean-Baptiste Queru * @return numeric format of operator, null if unregistered or unknown 311e25863c9093d3f60a1f6feab1d17d38946a8d020Jean-Baptiste Queru */ 312e25863c9093d3f60a1f6feab1d17d38946a8d020Jean-Baptiste Queru /* 313390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * The country code can be decoded using 314390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * {@link com.android.internal.telephony.MccTable#countryCodeForMcc(int)}. 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getOperatorNumeric() { 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOperatorNumeric; 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 321390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current network selection mode. 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if manual mode, false if automatic mode 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getIsManualSelection() { 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mIsManualNetworkSelection; 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int hashCode() { 331767a662ecde33c3979bf02b793d392aca0403162Wink Saville return ((mState * 0x1234) 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + (mRoaming ? 1 : 0) 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + (mIsManualNetworkSelection ? 1 : 0) 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + ((null == mOperatorAlphaLong) ? 0 : mOperatorAlphaLong.hashCode()) 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + ((null == mOperatorAlphaShort) ? 0 : mOperatorAlphaShort.hashCode()) 336767a662ecde33c3979bf02b793d392aca0403162Wink Saville + ((null == mOperatorNumeric) ? 0 : mOperatorNumeric.hashCode()) 337e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + mCdmaRoamingIndicator 338e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + mCdmaDefaultRoamingIndicator); 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean equals (Object o) { 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ServiceState s; 344767a662ecde33c3979bf02b793d392aca0403162Wink Saville 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project s = (ServiceState) o; 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException ex) { 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 355767a662ecde33c3979bf02b793d392aca0403162Wink Saville return (mState == s.mState 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && mRoaming == s.mRoaming 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && mIsManualNetworkSelection == s.mIsManualNetworkSelection 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && equalsHandlesNulls(mOperatorAlphaLong, s.mOperatorAlphaLong) 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && equalsHandlesNulls(mOperatorAlphaShort, s.mOperatorAlphaShort) 360767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mOperatorNumeric, s.mOperatorNumeric) 361767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mRadioTechnology, s.mRadioTechnology) 362767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mCssIndicator, s.mCssIndicator) 363767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mNetworkId, s.mNetworkId) 364767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mSystemId, s.mSystemId) 365e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville && equalsHandlesNulls(mCdmaRoamingIndicator, s.mCdmaRoamingIndicator) 366e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville && equalsHandlesNulls(mCdmaDefaultRoamingIndicator, 367e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville s.mCdmaDefaultRoamingIndicator)); 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 372767a662ecde33c3979bf02b793d392aca0403162Wink Saville String radioTechnology = new String("Error in radioTechnology"); 373767a662ecde33c3979bf02b793d392aca0403162Wink Saville switch(this.mRadioTechnology) { 374767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 0: 375767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "Unknown"; 376767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 377767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 1: 378767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "GPRS"; 379767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 380767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 2: 381767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "EDGE"; 382767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 383767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 3: 384767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "UMTS"; 385767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 386767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 4: 387767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "IS95A"; 388767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 389767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 5: 390767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "IS95B"; 391767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 392767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 6: 393767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "1xRTT"; 394767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 395767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 7: 396767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "EvDo rev. 0"; 397767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 398767a662ecde33c3979bf02b793d392aca0403162Wink Saville case 8: 399767a662ecde33c3979bf02b793d392aca0403162Wink Saville radioTechnology = "EvDo rev. A"; 400767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 401ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe case 9: 402ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe radioTechnology = "HSDPA"; 403ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe break; 404ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe case 10: 405ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe radioTechnology = "HSUPA"; 406ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe break; 407ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe case 11: 408ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe radioTechnology = "HSPA"; 409ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe break; 4100a5174a6e947d5cbeb8846a1273a90b6de065cbfNaveen Kalla case 12: 4110a5174a6e947d5cbeb8846a1273a90b6de065cbfNaveen Kalla radioTechnology = "EvDo rev. B"; 4120a5174a6e947d5cbeb8846a1273a90b6de065cbfNaveen Kalla break; 413767a662ecde33c3979bf02b793d392aca0403162Wink Saville default: 414767a662ecde33c3979bf02b793d392aca0403162Wink Saville Log.w(LOG_TAG, "mRadioTechnology variable out of range."); 415767a662ecde33c3979bf02b793d392aca0403162Wink Saville break; 416767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 417767a662ecde33c3979bf02b793d392aca0403162Wink Saville 418767a662ecde33c3979bf02b793d392aca0403162Wink Saville return (mState + " " + (mRoaming ? "roaming" : "home") 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + mOperatorAlphaLong 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + mOperatorAlphaShort 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + mOperatorNumeric 422767a662ecde33c3979bf02b793d392aca0403162Wink Saville + " " + (mIsManualNetworkSelection ? "(manual)" : "") 423767a662ecde33c3979bf02b793d392aca0403162Wink Saville + " " + radioTechnology 424767a662ecde33c3979bf02b793d392aca0403162Wink Saville + " " + (mCssIndicator ? "CSS supported" : "CSS not supported") 425e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + " " + mNetworkId 426e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + " " + mSystemId 427e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + "RoamInd: " + mCdmaRoamingIndicator 428e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + "DefRoamInd: " + mCdmaDefaultRoamingIndicator); 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setStateOutOfService() { 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = STATE_OUT_OF_SERVICE; 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = false; 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = null; 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = null; 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = null; 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = false; 438767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = 0; 439767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = false; 440767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = -1; 441767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = -1; 442e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = -1; 443e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = -1; 44498e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconIndex = -1; 44598e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconMode = -1; 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 448390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby // TODO - can't this be combined with the above method? 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setStateOff() { 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = STATE_POWER_OFF; 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = false; 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = null; 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = null; 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = null; 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = false; 456767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = 0; 457767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = false; 458767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = -1; 459767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = -1; 460e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = -1; 461e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = -1; 46298e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconIndex = -1; 46398e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconMode = -1; 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setState(int state) { 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = state; 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setRoaming(boolean roaming) { 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = roaming; 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 474e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 475e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 476e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 477e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void setCdmaRoamingIndicator(int roaming) { 478e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mCdmaRoamingIndicator = roaming; 479e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 480e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 481e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 482e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 483e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 484e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void setCdmaDefaultRoamingIndicator (int roaming) { 485e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mCdmaDefaultRoamingIndicator = roaming; 486767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 487767a662ecde33c3979bf02b793d392aca0403162Wink Saville 48898e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt /** 48998e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt * @hide 49098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt */ 49198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt public void setCdmaEriIconIndex(int index) { 49298e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt this.mCdmaEriIconIndex = index; 49398e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt } 49498e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt 49598e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt /** 49698e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt * @hide 49798e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt */ 49898e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt public void setCdmaEriIconMode(int mode) { 49998e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt this.mCdmaEriIconMode = mode; 50098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt } 50198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setOperatorName(String longName, String shortName, String numeric) { 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = longName; 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = shortName; 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = numeric; 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 508e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 509390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * In CDMA, mOperatorAlphaLong can be set from the ERI text. 510390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * This is done from the CDMAPhone and not from the CdmaServiceStateTracker. 511e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 512e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 513e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 514e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void setCdmaEriText(String longName) { 515e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mOperatorAlphaLong = longName; 516e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 517e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setIsManualSelection(boolean isManual) { 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = isManual; 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 521767a662ecde33c3979bf02b793d392aca0403162Wink Saville 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 523390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Test whether two objects hold the same data values or both are null. 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param a first obj 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param b second obj 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if two objects equal or both are null 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static boolean equalsHandlesNulls (Object a, Object b) { 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (a == null) ? (b == null) : a.equals (b); 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 534390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Set ServiceState based on intent notifier map. 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param m intent notifier map 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void setFromNotifierBundle(Bundle m) { 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = m.getInt("state"); 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = m.getBoolean("roaming"); 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = m.getString("operator-alpha-long"); 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = m.getString("operator-alpha-short"); 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = m.getString("operator-numeric"); 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = m.getBoolean("manual"); 546767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = m.getInt("radioTechnology"); 547767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = m.getBoolean("cssIndicator"); 548767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = m.getInt("networkId"); 549767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = m.getInt("systemId"); 550e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = m.getInt("cdmaRoamingIndicator"); 551e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator"); 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 555390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Set intent notifier Bundle based on service state. 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param m intent notifier Bundle 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void fillInNotifierBundle(Bundle m) { 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putInt("state", mState); 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putBoolean("roaming", Boolean.valueOf(mRoaming)); 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putString("operator-alpha-long", mOperatorAlphaLong); 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putString("operator-alpha-short", mOperatorAlphaShort); 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putString("operator-numeric", mOperatorNumeric); 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putBoolean("manual", Boolean.valueOf(mIsManualNetworkSelection)); 567767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putInt("radioTechnology", mRadioTechnology); 568767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putBoolean("cssIndicator", mCssIndicator); 569767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putInt("networkId", mNetworkId); 570767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putInt("systemId", mSystemId); 571e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville m.putInt("cdmaRoamingIndicator", mCdmaRoamingIndicator); 572e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); 573767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 574767a662ecde33c3979bf02b793d392aca0403162Wink Saville 575767a662ecde33c3979bf02b793d392aca0403162Wink Saville //***** CDMA 576767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 577767a662ecde33c3979bf02b793d392aca0403162Wink Saville public void setRadioTechnology(int state) { 578767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mRadioTechnology = state; 579767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 580767a662ecde33c3979bf02b793d392aca0403162Wink Saville 581767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 582767a662ecde33c3979bf02b793d392aca0403162Wink Saville public void setCssIndicator(int css) { 583767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mCssIndicator = (css != 0); 584767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 585767a662ecde33c3979bf02b793d392aca0403162Wink Saville 586767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 587767a662ecde33c3979bf02b793d392aca0403162Wink Saville public void setSystemAndNetworkId(int systemId, int networkId) { 588767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mSystemId = systemId; 589767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mNetworkId = networkId; 590767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 591767a662ecde33c3979bf02b793d392aca0403162Wink Saville 592767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 593767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getRadioTechnology() { 594767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mRadioTechnology; 595767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 596767a662ecde33c3979bf02b793d392aca0403162Wink Saville 597767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 598767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getCssIndicator() { 599767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mCssIndicator ? 1 : 0; 600767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 601767a662ecde33c3979bf02b793d392aca0403162Wink Saville 602767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 603767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getNetworkId() { 604767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mNetworkId; 605767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 606767a662ecde33c3979bf02b793d392aca0403162Wink Saville 607767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 608767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getSystemId() { 609767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mSystemId; 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 612