ServiceState.java revision d13f9aa8b1d59f4d8baf21960f18f5f7dc75dad7
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. 671434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt * Duplicates the constants from hardware/radio/include/ril.h 681434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt * This should only be used by agents working with the ril. Others 691434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt * should use the equivalent TelephonyManager.NETWORK_TYPE_* 70767a662ecde33c3979bf02b793d392aca0403162Wink Saville */ 71767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 721434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_UNKNOWN = 0; 73767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 741434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_GPRS = 1; 75767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 761434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_EDGE = 2; 77767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 781434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_UMTS = 3; 79767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 801434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_IS95A = 4; 81767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 821434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_IS95B = 5; 83767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 841434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_1xRTT = 6; 85767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 861434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_EVDO_0 = 7; 87767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 881434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_EVDO_A = 8; 89ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe /** @hide */ 901434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_HSDPA = 9; 91ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe /** @hide */ 921434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_HSUPA = 10; 93ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe /** @hide */ 941434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_HSPA = 11; 950a5174a6e947d5cbeb8846a1273a90b6de065cbfNaveen Kalla /** @hide */ 961434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_EVDO_B = 12; 979d7d62801ddb206d2ea96d74864a9edfe54d2eeeWink Saville /** @hide */ 981434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_EHRPD = 13; 999d7d62801ddb206d2ea96d74864a9edfe54d2eeeWink Saville /** @hide */ 1001434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_LTE = 14; 101f57276154aaa587524374db8e0d7228383611bf3Ramesh Sudini /** @hide */ 1021434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_HSPAP = 15; 103fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla /** 104fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla * GSM radio technology only supports voice. It does not support data. 105fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla * @hide 106fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla */ 1071434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static final int RIL_RADIO_TECHNOLOGY_GSM = 16; 108767a662ecde33c3979bf02b793d392aca0403162Wink Saville 109767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** 110767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Available registration states for GSM, UMTS and CDMA. 111767a662ecde33c3979bf02b793d392aca0403162Wink Saville */ 112767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 113767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING = 0; 114767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 115767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_HOME_NETWORK = 1; 116767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 117767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_NOT_REGISTERED_AND_SEARCHING = 2; 118767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 119767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_REGISTRATION_DENIED = 3; 120767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 121767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_UNKNOWN = 4; 122767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 123767a662ecde33c3979bf02b793d392aca0403162Wink Saville public static final int REGISTRATION_STATE_ROAMING = 5; 124767a662ecde33c3979bf02b793d392aca0403162Wink Saville 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mState = STATE_OUT_OF_SERVICE; 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mRoaming; 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mOperatorAlphaLong; 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mOperatorAlphaShort; 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mOperatorNumeric; 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mIsManualNetworkSelection; 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13256c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang private boolean mIsEmergencyOnly; 13356c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang 134767a662ecde33c3979bf02b793d392aca0403162Wink Saville //***** CDMA 135767a662ecde33c3979bf02b793d392aca0403162Wink Saville private int mRadioTechnology; 136767a662ecde33c3979bf02b793d392aca0403162Wink Saville private boolean mCssIndicator; 137767a662ecde33c3979bf02b793d392aca0403162Wink Saville private int mNetworkId; 138767a662ecde33c3979bf02b793d392aca0403162Wink Saville private int mSystemId; 139e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private int mCdmaRoamingIndicator; 140e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private int mCdmaDefaultRoamingIndicator; 14198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt private int mCdmaEriIconIndex; 14298e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt private int mCdmaEriIconMode; 143767a662ecde33c3979bf02b793d392aca0403162Wink Saville 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Create a new ServiceState from a intent notifier Bundle 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method is used by PhoneStateIntentReceiver and maybe by 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * external applications. 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param m Bundle from intent notifier 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return newly created ServiceState 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static ServiceState newFromBundle(Bundle m) { 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ServiceState ret; 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ret = new ServiceState(); 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ret.setFromNotifierBundle(m); 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ret; 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Empty constructor 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState() { 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copy constructors 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param s Source service state 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState(ServiceState s) { 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project copyFrom(s); 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected void copyFrom(ServiceState s) { 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = s.mState; 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = s.mRoaming; 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = s.mOperatorAlphaLong; 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = s.mOperatorAlphaShort; 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = s.mOperatorNumeric; 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = s.mIsManualNetworkSelection; 183767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = s.mRadioTechnology; 184767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = s.mCssIndicator; 185767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = s.mNetworkId; 186767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = s.mSystemId; 187e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = s.mCdmaRoamingIndicator; 188e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = s.mCdmaDefaultRoamingIndicator; 18998e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconIndex = s.mCdmaEriIconIndex; 19098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconMode = s.mCdmaEriIconMode; 19156c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang mIsEmergencyOnly = s.mIsEmergencyOnly; 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Construct a ServiceState object from the given parcel. 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState(Parcel in) { 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = in.readInt(); 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = in.readInt() != 0; 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = in.readString(); 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = in.readString(); 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = in.readString(); 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = in.readInt() != 0; 204767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = in.readInt(); 205767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = (in.readInt() != 0); 206767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = in.readInt(); 207767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = in.readInt(); 208e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = in.readInt(); 209e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = in.readInt(); 21098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconIndex = in.readInt(); 21198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconMode = in.readInt(); 21256c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang mIsEmergencyOnly = in.readInt() != 0; 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel out, int flags) { 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeInt(mState); 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeInt(mRoaming ? 1 : 0); 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeString(mOperatorAlphaLong); 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeString(mOperatorAlphaShort); 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeString(mOperatorNumeric); 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out.writeInt(mIsManualNetworkSelection ? 1 : 0); 222767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mRadioTechnology); 223767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mCssIndicator ? 1 : 0); 224767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mNetworkId); 225767a662ecde33c3979bf02b793d392aca0403162Wink Saville out.writeInt(mSystemId); 226e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville out.writeInt(mCdmaRoamingIndicator); 227e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville out.writeInt(mCdmaDefaultRoamingIndicator); 22898e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt out.writeInt(mCdmaEriIconIndex); 22998e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt out.writeInt(mCdmaEriIconMode); 23056c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang out.writeInt(mIsEmergencyOnly ? 1 : 0); 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 237390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby public static final Parcelable.Creator<ServiceState> CREATOR = 238390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby new Parcelable.Creator<ServiceState>() { 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState createFromParcel(Parcel in) { 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ServiceState(in); 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceState[] newArray(int size) { 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ServiceState[size]; 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 249390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current service state of phone 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_IN_SERVICE 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_OUT_OF_SERVICE 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_EMERGENCY_ONLY 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #STATE_POWER_OFF 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getState() { 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mState; 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get current roaming indicator of phone 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (note: not just decoding from TS 27.007 7.2) 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if TS 27.007 7.2 roaming is true 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and ONS is different from SPN 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getRoaming() { 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mRoaming; 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 272e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 273e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 274e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 27556c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang public boolean isEmergencyOnly() { 27656c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang return mIsEmergencyOnly; 27756c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang } 27856c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang 27956c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang /** 28056c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang * @hide 28156c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang */ 282e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getCdmaRoamingIndicator(){ 283e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return this.mCdmaRoamingIndicator; 284e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 285e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 286e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 287e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 288e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 289e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getCdmaDefaultRoamingIndicator(){ 290e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return this.mCdmaDefaultRoamingIndicator; 291767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 292767a662ecde33c3979bf02b793d392aca0403162Wink Saville 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 29498e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt * @hide 29598e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt */ 29698e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt public int getCdmaEriIconIndex() { 29798e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt return this.mCdmaEriIconIndex; 29898e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt } 29998e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt 30098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt /** 30198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt * @hide 30298e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt */ 30398e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt public int getCdmaEriIconMode() { 30498e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt return this.mCdmaEriIconMode; 30598e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt } 30698e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt 30798e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt /** 308390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current registered operator name in long alphanumeric format. 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 310390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * In GSM/UMTS, long format can be up to 16 characters long. 311390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * In CDMA, returns the ERI text, if set. Otherwise, returns the ONS. 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return long name of operator, null if unregistered or unknown 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getOperatorAlphaLong() { 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOperatorAlphaLong; 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 320390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current registered operator name in short alphanumeric format. 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 322390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * In GSM/UMTS, short format can be up to 8 characters long. 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return short name of operator, null if unregistered or unknown 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getOperatorAlphaShort() { 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOperatorAlphaShort; 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 331390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current registered operator numeric id. 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * In GSM/UMTS, numeric format is 3 digit country code plus 2 or 3 digit 334390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * network code. 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return numeric format of operator, null if unregistered or unknown 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 338e25863c9093d3f60a1f6feab1d17d38946a8d020Jean-Baptiste Queru /* 339390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * The country code can be decoded using 340390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * {@link com.android.internal.telephony.MccTable#countryCodeForMcc(int)}. 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getOperatorNumeric() { 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOperatorNumeric; 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 347390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Get current network selection mode. 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if manual mode, false if automatic mode 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getIsManualSelection() { 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mIsManualNetworkSelection; 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int hashCode() { 357767a662ecde33c3979bf02b793d392aca0403162Wink Saville return ((mState * 0x1234) 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + (mRoaming ? 1 : 0) 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + (mIsManualNetworkSelection ? 1 : 0) 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + ((null == mOperatorAlphaLong) ? 0 : mOperatorAlphaLong.hashCode()) 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + ((null == mOperatorAlphaShort) ? 0 : mOperatorAlphaShort.hashCode()) 362767a662ecde33c3979bf02b793d392aca0403162Wink Saville + ((null == mOperatorNumeric) ? 0 : mOperatorNumeric.hashCode()) 363e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + mCdmaRoamingIndicator 36456c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang + mCdmaDefaultRoamingIndicator 36556c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang + (mIsEmergencyOnly ? 1 : 0)); 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean equals (Object o) { 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ServiceState s; 371767a662ecde33c3979bf02b793d392aca0403162Wink Saville 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project s = (ServiceState) o; 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException ex) { 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 382767a662ecde33c3979bf02b793d392aca0403162Wink Saville return (mState == s.mState 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && mRoaming == s.mRoaming 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && mIsManualNetworkSelection == s.mIsManualNetworkSelection 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && equalsHandlesNulls(mOperatorAlphaLong, s.mOperatorAlphaLong) 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && equalsHandlesNulls(mOperatorAlphaShort, s.mOperatorAlphaShort) 387767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mOperatorNumeric, s.mOperatorNumeric) 388767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mRadioTechnology, s.mRadioTechnology) 389767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mCssIndicator, s.mCssIndicator) 390767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mNetworkId, s.mNetworkId) 391767a662ecde33c3979bf02b793d392aca0403162Wink Saville && equalsHandlesNulls(mSystemId, s.mSystemId) 392e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville && equalsHandlesNulls(mCdmaRoamingIndicator, s.mCdmaRoamingIndicator) 393e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville && equalsHandlesNulls(mCdmaDefaultRoamingIndicator, 39456c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang s.mCdmaDefaultRoamingIndicator) 39556c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang && mIsEmergencyOnly == s.mIsEmergencyOnly); 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 398db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville /** 399db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville * Convert radio technology to String 400db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville * 401db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville * @param radioTechnology 402db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville * @return String representation of the RAT 403db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville * 404db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville * @hide 405db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville */ 4061434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public static String rilRadioTechnologyToString(int rt) { 407db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville String rtString; 408db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville 409db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville switch(rt) { 4101434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_UNKNOWN: 411db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "Unknown"; 412db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4131434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_GPRS: 414db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "GPRS"; 415db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4161434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_EDGE: 417db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "EDGE"; 418db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4191434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_UMTS: 420db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "UMTS"; 421db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4221434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_IS95A: 423db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "CDMA-IS95A"; 424db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4251434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_IS95B: 426db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "CDMA-IS95B"; 427db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4281434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_1xRTT: 429db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "1xRTT"; 430db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4311434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_EVDO_0: 432db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "EvDo-rev.0"; 433db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4341434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_EVDO_A: 435db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "EvDo-rev.A"; 436db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4371434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_HSDPA: 438db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "HSDPA"; 439db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4401434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_HSUPA: 441db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "HSUPA"; 442db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4431434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_HSPA: 444db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "HSPA"; 445db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4461434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_EVDO_B: 447db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "EvDo-rev.B"; 448db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4491434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_EHRPD: 450db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "eHRPD"; 451db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4521434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_LTE: 453db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "LTE"; 454db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4551434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_HSPAP: 456db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "HSPAP"; 457db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 4581434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case RIL_RADIO_TECHNOLOGY_GSM: 459fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla rtString = "GSM"; 460fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla break; 461db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville default: 462db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville rtString = "Unexpected"; 463db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville Log.w(LOG_TAG, "Unexpected radioTechnology=" + rt); 464db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville break; 465db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville } 4661434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return rtString; 467db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville } 468db09b5db60fa05ba65662faa86422b9ec69493a1Wink Saville 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 4711434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt String radioTechnology = rilRadioTechnologyToString(mRadioTechnology); 472767a662ecde33c3979bf02b793d392aca0403162Wink Saville 473767a662ecde33c3979bf02b793d392aca0403162Wink Saville return (mState + " " + (mRoaming ? "roaming" : "home") 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + mOperatorAlphaLong 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + mOperatorAlphaShort 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + mOperatorNumeric 477767a662ecde33c3979bf02b793d392aca0403162Wink Saville + " " + (mIsManualNetworkSelection ? "(manual)" : "") 478767a662ecde33c3979bf02b793d392aca0403162Wink Saville + " " + radioTechnology 479767a662ecde33c3979bf02b793d392aca0403162Wink Saville + " " + (mCssIndicator ? "CSS supported" : "CSS not supported") 480e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + " " + mNetworkId 481e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + " " + mSystemId 482e613adcc555731aab2a0684d709da3d0df97a9e5Wink Saville + " RoamInd=" + mCdmaRoamingIndicator 483e613adcc555731aab2a0684d709da3d0df97a9e5Wink Saville + " DefRoamInd=" + mCdmaDefaultRoamingIndicator 484e613adcc555731aab2a0684d709da3d0df97a9e5Wink Saville + " EmergOnly=" + mIsEmergencyOnly); 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 487a2267451ddf91cc330f4c283e86811e38328915bRobert Greenwalt private void setNullState(int state) { 488a2267451ddf91cc330f4c283e86811e38328915bRobert Greenwalt mState = state; 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = false; 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = null; 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = null; 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = null; 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = false; 494767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = 0; 495767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = false; 496767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = -1; 497767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = -1; 498e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = -1; 499e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = -1; 50098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconIndex = -1; 50198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt mCdmaEriIconMode = -1; 50256c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang mIsEmergencyOnly = false; 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 505a2267451ddf91cc330f4c283e86811e38328915bRobert Greenwalt public void setStateOutOfService() { 506a2267451ddf91cc330f4c283e86811e38328915bRobert Greenwalt setNullState(STATE_OUT_OF_SERVICE); 507a2267451ddf91cc330f4c283e86811e38328915bRobert Greenwalt } 508a2267451ddf91cc330f4c283e86811e38328915bRobert Greenwalt 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setStateOff() { 510a2267451ddf91cc330f4c283e86811e38328915bRobert Greenwalt setNullState(STATE_POWER_OFF); 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setState(int state) { 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = state; 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setRoaming(boolean roaming) { 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = roaming; 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 52156c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang 52256c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang /** 52356c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang * @hide 52456c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang */ 52556c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang public void setEmergencyOnly(boolean emergencyOnly) { 52656c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang mIsEmergencyOnly = emergencyOnly; 52756c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang } 52856c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang 529e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 530e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 531e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 532e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void setCdmaRoamingIndicator(int roaming) { 533e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mCdmaRoamingIndicator = roaming; 534e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 535e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 536e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 537e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 538e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 539e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void setCdmaDefaultRoamingIndicator (int roaming) { 540e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mCdmaDefaultRoamingIndicator = roaming; 541767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 542767a662ecde33c3979bf02b793d392aca0403162Wink Saville 54398e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt /** 54498e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt * @hide 54598e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt */ 54698e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt public void setCdmaEriIconIndex(int index) { 54798e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt this.mCdmaEriIconIndex = index; 54898e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt } 54998e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt 55098e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt /** 55198e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt * @hide 55298e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt */ 55398e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt public void setCdmaEriIconMode(int mode) { 55498e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt this.mCdmaEriIconMode = mode; 55598e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt } 55698e0b146b80670b52805b4b210ef5582dad6bb68Robert Greenwalt 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setOperatorName(String longName, String shortName, String numeric) { 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = longName; 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = shortName; 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = numeric; 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 563e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 564390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * In CDMA, mOperatorAlphaLong can be set from the ERI text. 565390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * This is done from the CDMAPhone and not from the CdmaServiceStateTracker. 566e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 567e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * @hide 568e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 569c91c7f92c9d2da557d4187fa24519f1dc1f1e2ecKazuhiro Ondo public void setOperatorAlphaLong(String longName) { 570e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mOperatorAlphaLong = longName; 571e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 572e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setIsManualSelection(boolean isManual) { 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = isManual; 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 576767a662ecde33c3979bf02b793d392aca0403162Wink Saville 5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 578390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Test whether two objects hold the same data values or both are null. 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param a first obj 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param b second obj 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if two objects equal or both are null 5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static boolean equalsHandlesNulls (Object a, Object b) { 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (a == null) ? (b == null) : a.equals (b); 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 589390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Set ServiceState based on intent notifier map. 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param m intent notifier map 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void setFromNotifierBundle(Bundle m) { 5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mState = m.getInt("state"); 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRoaming = m.getBoolean("roaming"); 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaLong = m.getString("operator-alpha-long"); 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorAlphaShort = m.getString("operator-alpha-short"); 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOperatorNumeric = m.getString("operator-numeric"); 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mIsManualNetworkSelection = m.getBoolean("manual"); 601767a662ecde33c3979bf02b793d392aca0403162Wink Saville mRadioTechnology = m.getInt("radioTechnology"); 602767a662ecde33c3979bf02b793d392aca0403162Wink Saville mCssIndicator = m.getBoolean("cssIndicator"); 603767a662ecde33c3979bf02b793d392aca0403162Wink Saville mNetworkId = m.getInt("networkId"); 604767a662ecde33c3979bf02b793d392aca0403162Wink Saville mSystemId = m.getInt("systemId"); 605e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaRoamingIndicator = m.getInt("cdmaRoamingIndicator"); 606e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator"); 60756c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang mIsEmergencyOnly = m.getBoolean("emergencyOnly"); 6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 611390de220248d05ccb9dc10a197700ad3c1595937Jake Hamby * Set intent notifier Bundle based on service state. 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param m intent notifier Bundle 6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void fillInNotifierBundle(Bundle m) { 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putInt("state", mState); 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putBoolean("roaming", Boolean.valueOf(mRoaming)); 6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putString("operator-alpha-long", mOperatorAlphaLong); 6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putString("operator-alpha-short", mOperatorAlphaShort); 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putString("operator-numeric", mOperatorNumeric); 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project m.putBoolean("manual", Boolean.valueOf(mIsManualNetworkSelection)); 623767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putInt("radioTechnology", mRadioTechnology); 624767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putBoolean("cssIndicator", mCssIndicator); 625767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putInt("networkId", mNetworkId); 626767a662ecde33c3979bf02b793d392aca0403162Wink Saville m.putInt("systemId", mSystemId); 627e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville m.putInt("cdmaRoamingIndicator", mCdmaRoamingIndicator); 628e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); 62956c2d2ff27536a1d8edf0037cd41ff3ea3272fd9John Wang m.putBoolean("emergencyOnly", Boolean.valueOf(mIsEmergencyOnly)); 630767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 631767a662ecde33c3979bf02b793d392aca0403162Wink Saville 632767a662ecde33c3979bf02b793d392aca0403162Wink Saville //***** CDMA 633767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 634767a662ecde33c3979bf02b793d392aca0403162Wink Saville public void setRadioTechnology(int state) { 635767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mRadioTechnology = state; 636767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 637767a662ecde33c3979bf02b793d392aca0403162Wink Saville 638767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 639767a662ecde33c3979bf02b793d392aca0403162Wink Saville public void setCssIndicator(int css) { 640767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mCssIndicator = (css != 0); 641767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 642767a662ecde33c3979bf02b793d392aca0403162Wink Saville 643767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 644767a662ecde33c3979bf02b793d392aca0403162Wink Saville public void setSystemAndNetworkId(int systemId, int networkId) { 645767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mSystemId = systemId; 646767a662ecde33c3979bf02b793d392aca0403162Wink Saville this.mNetworkId = networkId; 647767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 648767a662ecde33c3979bf02b793d392aca0403162Wink Saville 649767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 6501434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public int getRilRadioTechnology() { 651767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mRadioTechnology; 652767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 653d13f9aa8b1d59f4d8baf21960f18f5f7dc75dad7Mathias Agopian /** @hide */ 654d13f9aa8b1d59f4d8baf21960f18f5f7dc75dad7Mathias Agopian public int getRadioTechnology() { 655d13f9aa8b1d59f4d8baf21960f18f5f7dc75dad7Mathias Agopian return getRilRadioTechnology(); 656d13f9aa8b1d59f4d8baf21960f18f5f7dc75dad7Mathias Agopian } 657767a662ecde33c3979bf02b793d392aca0403162Wink Saville 658767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 6591434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt public int getNetworkType() { 6601434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt switch(mRadioTechnology) { 6611434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_GPRS: 6621434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_GPRS; 6631434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_EDGE: 6641434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_EDGE; 6651434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_UMTS: 6661434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_UMTS; 6671434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_HSDPA: 6681434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_HSDPA; 6691434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_HSUPA: 6701434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_HSUPA; 6711434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_HSPA: 6721434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_HSPA; 6731434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_IS95A: 6741434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_IS95B: 6751434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_CDMA; 6761434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT: 6771434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_1xRTT; 6781434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_0: 6791434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_EVDO_0; 6801434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_A: 6811434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_EVDO_A; 6821434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_B: 6831434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_EVDO_B; 6841434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_EHRPD: 6851434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_EHRPD; 6861434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_LTE: 6871434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_LTE; 6881434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt case ServiceState.RIL_RADIO_TECHNOLOGY_HSPAP: 6891434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_HSPAP; 6901434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt default: 6911434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return TelephonyManager.NETWORK_TYPE_UNKNOWN; 6921434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt } 6931434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt } 6941434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt 6951434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt /** @hide */ 696767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getCssIndicator() { 697767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mCssIndicator ? 1 : 0; 698767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 699767a662ecde33c3979bf02b793d392aca0403162Wink Saville 700767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 701767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getNetworkId() { 702767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mNetworkId; 703767a662ecde33c3979bf02b793d392aca0403162Wink Saville } 704767a662ecde33c3979bf02b793d392aca0403162Wink Saville 705767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** @hide */ 706767a662ecde33c3979bf02b793d392aca0403162Wink Saville public int getSystemId() { 707767a662ecde33c3979bf02b793d392aca0403162Wink Saville return this.mSystemId; 7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 709fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla 710fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla /** @hide */ 711fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla public static boolean isGsm(int radioTechnology) { 7121434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return radioTechnology == RIL_RADIO_TECHNOLOGY_GPRS 7131434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_EDGE 7141434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_UMTS 7151434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_HSDPA 7161434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_HSUPA 7171434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_HSPA 7181434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_LTE 7191434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_HSPAP 7201434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_GSM; 721fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla } 722fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla 723fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla /** @hide */ 724fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla public static boolean isCdma(int radioTechnology) { 7251434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt return radioTechnology == RIL_RADIO_TECHNOLOGY_IS95A 7261434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_IS95B 7271434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_1xRTT 7281434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_EVDO_0 7291434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_EVDO_A 7301434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_EVDO_B 7311434d7b855108cb14c210b26cabb7bdb15f31887Robert Greenwalt || radioTechnology == RIL_RADIO_TECHNOLOGY_EHRPD; 732fc2cbe9b46ab17a401dc50f8e0dbb677ed012299Naveen Kalla } 7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 734