BaseCommands.java revision 2b40e6226b4b71408964bca46f0a9f256cd4f523
16bc4098827f3070a44b5e51508b455d7c7be9c07Wink Saville 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project 40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License. 70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at 80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software 120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and 150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License. 160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony; 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 202b40e6226b4b71408964bca46f0a9f256cd4f523Wink Savilleimport com.android.internal.telephony.RadioCapability; 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Context; 23a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.os.Message; 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.RegistrantList; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Registrant; 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Handler; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.AsyncResult; 282b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.TelephonyManager; 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@hide} 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic abstract class BaseCommands implements CommandsInterface { 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //***** Instance Variables 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Context mContext; 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RadioState mState = RadioState.RADIO_UNAVAILABLE; 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Object mStateMonitor = new Object(); 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mRadioStateChangedRegistrants = new RegistrantList(); 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mOnRegistrants = new RegistrantList(); 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mAvailRegistrants = new RegistrantList(); 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mOffOrNotAvailRegistrants = new RegistrantList(); 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mNotAvailRegistrants = new RegistrantList(); 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mCallStateRegistrants = new RegistrantList(); 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mVoiceNetworkStateRegistrants = new RegistrantList(); 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mDataNetworkStateRegistrants = new RegistrantList(); 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mVoiceRadioTechChangedRegistrants = new RegistrantList(); 491260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa protected RegistrantList mImsNetworkStateChangedRegistrants = new RegistrantList(); 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mIccStatusChangedRegistrants = new RegistrantList(); 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mVoicePrivacyOnRegistrants = new RegistrantList(); 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mVoicePrivacyOffRegistrants = new RegistrantList(); 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mUnsolOemHookRawRegistrant; 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mOtaProvisionRegistrants = new RegistrantList(); 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mCallWaitingInfoRegistrants = new RegistrantList(); 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mDisplayInfoRegistrants = new RegistrantList(); 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mSignalInfoRegistrants = new RegistrantList(); 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mNumberInfoRegistrants = new RegistrantList(); 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mRedirNumInfoRegistrants = new RegistrantList(); 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mLineControlInfoRegistrants = new RegistrantList(); 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mT53ClirInfoRegistrants = new RegistrantList(); 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mT53AudCntrlInfoRegistrants = new RegistrantList(); 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mRingbackToneRegistrants = new RegistrantList(); 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mResendIncallMuteRegistrants = new RegistrantList(); 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mCdmaSubscriptionChangedRegistrants = new RegistrantList(); 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mCdmaPrlChangedRegistrants = new RegistrantList(); 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mExitEmergencyCallbackModeRegistrants = new RegistrantList(); 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mRilConnectedRegistrants = new RegistrantList(); 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected RegistrantList mIccRefreshRegistrants = new RegistrantList(); 705fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville protected RegistrantList mRilCellInfoListRegistrants = new RegistrantList(); 71a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville protected RegistrantList mSubscriptionStatusRegistrants = new RegistrantList(); 72a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville protected RegistrantList mSrvccStateRegistrants = new RegistrantList(); 73a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville protected RegistrantList mHardwareConfigChangeRegistrants = new RegistrantList(); 742b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville protected RegistrantList mPhoneRadioCapabilityChangedRegistrants = 752b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville new RegistrantList(); 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mGsmSmsRegistrant; 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCdmaSmsRegistrant; 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mNITZTimeRegistrant; 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mSignalStrengthRegistrant; 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mUSSDRegistrant; 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mSmsOnSimRegistrant; 830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mSmsStatusRegistrant; 840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mSsnRegistrant; 850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCatSessionEndRegistrant; 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCatProCmdRegistrant; 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCatEventRegistrant; 880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCatCallSetUpRegistrant; 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mIccSmsFullRegistrant; 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mEmergencyCallbackModeRegistrant; 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mRingRegistrant; 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mRestrictedStateRegistrant; 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mGsmBroadcastSmsRegistrant; 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Preferred network type received from PhoneFactory. 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // This is used when establishing a connection to the 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // vendor ril so it starts up in the correct mode. 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mPreferredNetworkType; 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // CDMA subscription received from PhoneFactory 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mCdmaSubscription; 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Type of Phone, GSM or CDMA. Set by CDMAPhone or GSMPhone. 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mPhoneType; 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // RIL Version 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mRilVersion = -1; 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public BaseCommands(Context context) { 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext = context; // May be null (if so we won't log statistics) 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //***** CommandsInterface implementation 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 112cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public RadioState getRadioState() { 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mState; 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 117cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRadioStateChanged(Handler h, int what, Object obj) { 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRadioStateChangedRegistrants.add(r); 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(); 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 127cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRadioStateChanged(Handler h) { 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRadioStateChangedRegistrants.remove(h); 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1341260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa public void registerForImsNetworkStateChanged(Handler h, int what, Object obj) { 1351260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa Registrant r = new Registrant (h, what, obj); 1361260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa mImsNetworkStateChangedRegistrants.add(r); 1371260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa } 1381260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa 1391260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa public void unregisterForImsNetworkStateChanged(Handler h) { 1401260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa mImsNetworkStateChangedRegistrants.remove(h); 1411260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa } 1421260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa 143cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForOn(Handler h, int what, Object obj) { 1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOnRegistrants.add(r); 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isOn()) { 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 155cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForOn(Handler h) { 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOnRegistrants.remove(h); 1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 163cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForAvailable(Handler h, int what, Object obj) { 1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mAvailRegistrants.add(r); 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isAvailable()) { 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 176cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForAvailable(Handler h) { 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized(mStateMonitor) { 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mAvailRegistrants.remove(h); 1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 183cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForNotAvailable(Handler h, int what, Object obj) { 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNotAvailRegistrants.add(r); 1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (!mState.isAvailable()) { 1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 196cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForNotAvailable(Handler h) { 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNotAvailRegistrants.remove(h); 2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 203cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForOffOrNotAvailable(Handler h, int what, Object obj) { 2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOffOrNotAvailRegistrants.add(r); 2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState == RadioState.RADIO_OFF || !mState.isAvailable()) { 2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 215cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForOffOrNotAvailable(Handler h) { 2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized(mStateMonitor) { 2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOffOrNotAvailRegistrants.remove(h); 2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 222cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCallStateChanged(Handler h, int what, Object obj) { 2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallStateRegistrants.add(r); 2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 229cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCallStateChanged(Handler h) { 2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallStateRegistrants.remove(h); 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 234cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForVoiceNetworkStateChanged(Handler h, int what, Object obj) { 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceNetworkStateRegistrants.add(r); 2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 241cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForVoiceNetworkStateChanged(Handler h) { 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceNetworkStateRegistrants.remove(h); 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 246cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForDataNetworkStateChanged(Handler h, int what, Object obj) { 2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDataNetworkStateRegistrants.add(r); 2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 253cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForDataNetworkStateChanged(Handler h) { 2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDataNetworkStateRegistrants.remove(h); 2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 258cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForVoiceRadioTechChanged(Handler h, int what, Object obj) { 2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceRadioTechChangedRegistrants.add(r); 2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 264cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForVoiceRadioTechChanged(Handler h) { 2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceRadioTechChangedRegistrants.remove(h); 2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 269cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForIccStatusChanged(Handler h, int what, Object obj) { 2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccStatusChangedRegistrants.add(r); 2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 275cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForIccStatusChanged(Handler h) { 2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccStatusChangedRegistrants.remove(h); 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 280cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNewGsmSms(Handler h, int what, Object obj) { 2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mGsmSmsRegistrant = new Registrant (h, what, obj); 2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 285cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNewGsmSms(Handler h) { 2878756c83413829be5b6530d122772959ad8414698Etan Cohen if (mGsmSmsRegistrant != null && mGsmSmsRegistrant.getHandler() == h) { 2888756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmSmsRegistrant.clear(); 2898756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmSmsRegistrant = null; 2908756c83413829be5b6530d122772959ad8414698Etan Cohen } 2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 293cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNewCdmaSms(Handler h, int what, Object obj) { 2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaSmsRegistrant = new Registrant (h, what, obj); 2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 298cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNewCdmaSms(Handler h) { 3008756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCdmaSmsRegistrant != null && mCdmaSmsRegistrant.getHandler() == h) { 3018756c83413829be5b6530d122772959ad8414698Etan Cohen mCdmaSmsRegistrant.clear(); 3028756c83413829be5b6530d122772959ad8414698Etan Cohen mCdmaSmsRegistrant = null; 3038756c83413829be5b6530d122772959ad8414698Etan Cohen } 3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 306cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNewGsmBroadcastSms(Handler h, int what, Object obj) { 3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mGsmBroadcastSmsRegistrant = new Registrant (h, what, obj); 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 311cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNewGsmBroadcastSms(Handler h) { 3138756c83413829be5b6530d122772959ad8414698Etan Cohen if (mGsmBroadcastSmsRegistrant != null && mGsmBroadcastSmsRegistrant.getHandler() == h) { 3148756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmBroadcastSmsRegistrant.clear(); 3158756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmBroadcastSmsRegistrant = null; 3168756c83413829be5b6530d122772959ad8414698Etan Cohen } 3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 319cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSmsOnSim(Handler h, int what, Object obj) { 3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSmsOnSimRegistrant = new Registrant (h, what, obj); 3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 324cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSmsOnSim(Handler h) { 3268756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSmsOnSimRegistrant != null && mSmsOnSimRegistrant.getHandler() == h) { 3278756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsOnSimRegistrant.clear(); 3288756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsOnSimRegistrant = null; 3298756c83413829be5b6530d122772959ad8414698Etan Cohen } 3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 332cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSmsStatus(Handler h, int what, Object obj) { 3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSmsStatusRegistrant = new Registrant (h, what, obj); 3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 337cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSmsStatus(Handler h) { 3398756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSmsStatusRegistrant != null && mSmsStatusRegistrant.getHandler() == h) { 3408756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsStatusRegistrant.clear(); 3418756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsStatusRegistrant = null; 3428756c83413829be5b6530d122772959ad8414698Etan Cohen } 3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 345cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSignalStrengthUpdate(Handler h, int what, Object obj) { 3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSignalStrengthRegistrant = new Registrant (h, what, obj); 3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 350cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSignalStrengthUpdate(Handler h) { 3528756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSignalStrengthRegistrant != null && mSignalStrengthRegistrant.getHandler() == h) { 3538756c83413829be5b6530d122772959ad8414698Etan Cohen mSignalStrengthRegistrant.clear(); 3548756c83413829be5b6530d122772959ad8414698Etan Cohen mSignalStrengthRegistrant = null; 3558756c83413829be5b6530d122772959ad8414698Etan Cohen } 3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 358cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNITZTime(Handler h, int what, Object obj) { 3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNITZTimeRegistrant = new Registrant (h, what, obj); 3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 363cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNITZTime(Handler h) { 3658756c83413829be5b6530d122772959ad8414698Etan Cohen if (mNITZTimeRegistrant != null && mNITZTimeRegistrant.getHandler() == h) { 3668756c83413829be5b6530d122772959ad8414698Etan Cohen mNITZTimeRegistrant.clear(); 3678756c83413829be5b6530d122772959ad8414698Etan Cohen mNITZTimeRegistrant = null; 3688756c83413829be5b6530d122772959ad8414698Etan Cohen } 3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 371cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnUSSD(Handler h, int what, Object obj) { 3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mUSSDRegistrant = new Registrant (h, what, obj); 3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 376cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnUSSD(Handler h) { 3788756c83413829be5b6530d122772959ad8414698Etan Cohen if (mUSSDRegistrant != null && mUSSDRegistrant.getHandler() == h) { 3798756c83413829be5b6530d122772959ad8414698Etan Cohen mUSSDRegistrant.clear(); 3808756c83413829be5b6530d122772959ad8414698Etan Cohen mUSSDRegistrant = null; 3818756c83413829be5b6530d122772959ad8414698Etan Cohen } 3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 384cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSuppServiceNotification(Handler h, int what, Object obj) { 3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSsnRegistrant = new Registrant (h, what, obj); 3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 389cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSuppServiceNotification(Handler h) { 3918756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSsnRegistrant != null && mSsnRegistrant.getHandler() == h) { 3928756c83413829be5b6530d122772959ad8414698Etan Cohen mSsnRegistrant.clear(); 3938756c83413829be5b6530d122772959ad8414698Etan Cohen mSsnRegistrant = null; 3948756c83413829be5b6530d122772959ad8414698Etan Cohen } 3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 397cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatSessionEnd(Handler h, int what, Object obj) { 3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatSessionEndRegistrant = new Registrant (h, what, obj); 4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 402cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatSessionEnd(Handler h) { 4048756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatSessionEndRegistrant != null && mCatSessionEndRegistrant.getHandler() == h) { 4058756c83413829be5b6530d122772959ad8414698Etan Cohen mCatSessionEndRegistrant.clear(); 4068756c83413829be5b6530d122772959ad8414698Etan Cohen mCatSessionEndRegistrant = null; 4078756c83413829be5b6530d122772959ad8414698Etan Cohen } 4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 410cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatProactiveCmd(Handler h, int what, Object obj) { 4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatProCmdRegistrant = new Registrant (h, what, obj); 4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 415cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatProactiveCmd(Handler h) { 4178756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatProCmdRegistrant != null && mCatProCmdRegistrant.getHandler() == h) { 4188756c83413829be5b6530d122772959ad8414698Etan Cohen mCatProCmdRegistrant.clear(); 4198756c83413829be5b6530d122772959ad8414698Etan Cohen mCatProCmdRegistrant = null; 4208756c83413829be5b6530d122772959ad8414698Etan Cohen } 4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 423cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatEvent(Handler h, int what, Object obj) { 4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatEventRegistrant = new Registrant (h, what, obj); 4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 428cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatEvent(Handler h) { 4308756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatEventRegistrant != null && mCatEventRegistrant.getHandler() == h) { 4318756c83413829be5b6530d122772959ad8414698Etan Cohen mCatEventRegistrant.clear(); 4328756c83413829be5b6530d122772959ad8414698Etan Cohen mCatEventRegistrant = null; 4338756c83413829be5b6530d122772959ad8414698Etan Cohen } 4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 436cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatCallSetUp(Handler h, int what, Object obj) { 4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatCallSetUpRegistrant = new Registrant (h, what, obj); 4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 441cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatCallSetUp(Handler h) { 4438756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatCallSetUpRegistrant != null && mCatCallSetUpRegistrant.getHandler() == h) { 4448756c83413829be5b6530d122772959ad8414698Etan Cohen mCatCallSetUpRegistrant.clear(); 4458756c83413829be5b6530d122772959ad8414698Etan Cohen mCatCallSetUpRegistrant = null; 4468756c83413829be5b6530d122772959ad8414698Etan Cohen } 4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 449cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnIccSmsFull(Handler h, int what, Object obj) { 4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccSmsFullRegistrant = new Registrant (h, what, obj); 4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 454cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnIccSmsFull(Handler h) { 4568756c83413829be5b6530d122772959ad8414698Etan Cohen if (mIccSmsFullRegistrant != null && mIccSmsFullRegistrant.getHandler() == h) { 4578756c83413829be5b6530d122772959ad8414698Etan Cohen mIccSmsFullRegistrant.clear(); 4588756c83413829be5b6530d122772959ad8414698Etan Cohen mIccSmsFullRegistrant = null; 4598756c83413829be5b6530d122772959ad8414698Etan Cohen } 4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 462cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForIccRefresh(Handler h, int what, Object obj) { 4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccRefreshRegistrants.add(r); 4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 467cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnIccRefresh(Handler h, int what, Object obj) { 4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville registerForIccRefresh(h, what, obj); 4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 472cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setEmergencyCallbackMode(Handler h, int what, Object obj) { 4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEmergencyCallbackModeRegistrant = new Registrant (h, what, obj); 4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 477cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForIccRefresh(Handler h) { 4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccRefreshRegistrants.remove(h); 4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 481cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unsetOnIccRefresh(Handler h) { 4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville unregisterForIccRefresh(h); 4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 486cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCallRing(Handler h, int what, Object obj) { 4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRingRegistrant = new Registrant (h, what, obj); 4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 491cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCallRing(Handler h) { 4938756c83413829be5b6530d122772959ad8414698Etan Cohen if (mRingRegistrant != null && mRingRegistrant.getHandler() == h) { 4948756c83413829be5b6530d122772959ad8414698Etan Cohen mRingRegistrant.clear(); 4958756c83413829be5b6530d122772959ad8414698Etan Cohen mRingRegistrant = null; 4968756c83413829be5b6530d122772959ad8414698Etan Cohen } 4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 499cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj) { 5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOnRegistrants.add(r); 5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 505cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForInCallVoicePrivacyOn(Handler h){ 5070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOnRegistrants.remove(h); 5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 510cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj) { 5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOffRegistrants.add(r); 5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 516cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForInCallVoicePrivacyOff(Handler h){ 5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOffRegistrants.remove(h); 5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 521cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnRestrictedStateChanged(Handler h, int what, Object obj) { 5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRestrictedStateRegistrant = new Registrant (h, what, obj); 5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 526cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnRestrictedStateChanged(Handler h) { 5288756c83413829be5b6530d122772959ad8414698Etan Cohen if (mRestrictedStateRegistrant != null && mRestrictedStateRegistrant.getHandler() != h) { 5298756c83413829be5b6530d122772959ad8414698Etan Cohen mRestrictedStateRegistrant.clear(); 5308756c83413829be5b6530d122772959ad8414698Etan Cohen mRestrictedStateRegistrant = null; 5318756c83413829be5b6530d122772959ad8414698Etan Cohen } 5320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 534cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForDisplayInfo(Handler h, int what, Object obj) { 5360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDisplayInfoRegistrants.add(r); 5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 540cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForDisplayInfo(Handler h) { 5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDisplayInfoRegistrants.remove(h); 5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 545cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCallWaitingInfo(Handler h, int what, Object obj) { 5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallWaitingInfoRegistrants.add(r); 5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 551cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCallWaitingInfo(Handler h) { 5530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallWaitingInfoRegistrants.remove(h); 5540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 556cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForSignalInfo(Handler h, int what, Object obj) { 5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSignalInfoRegistrants.add(r); 5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnUnsolOemHookRaw(Handler h, int what, Object obj) { 5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mUnsolOemHookRawRegistrant = new Registrant (h, what, obj); 5640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnUnsolOemHookRaw(Handler h) { 5678756c83413829be5b6530d122772959ad8414698Etan Cohen if (mUnsolOemHookRawRegistrant != null && mUnsolOemHookRawRegistrant.getHandler() == h) { 5688756c83413829be5b6530d122772959ad8414698Etan Cohen mUnsolOemHookRawRegistrant.clear(); 5698756c83413829be5b6530d122772959ad8414698Etan Cohen mUnsolOemHookRawRegistrant = null; 5708756c83413829be5b6530d122772959ad8414698Etan Cohen } 5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 573cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForSignalInfo(Handler h) { 5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSignalInfoRegistrants.remove(h); 5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 578cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaOtaProvision(Handler h,int what, Object obj){ 5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOtaProvisionRegistrants.add(r); 5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 584cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaOtaProvision(Handler h){ 5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOtaProvisionRegistrants.remove(h); 5870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 589cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForNumberInfo(Handler h,int what, Object obj) { 5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNumberInfoRegistrants.add(r); 5930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 595cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForNumberInfo(Handler h){ 5970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNumberInfoRegistrants.remove(h); 5980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 600cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 601cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville public void registerForRedirectedNumberInfo(Handler h,int what, Object obj) { 6020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRedirNumInfoRegistrants.add(r); 6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 606cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRedirectedNumberInfo(Handler h) { 6080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRedirNumInfoRegistrants.remove(h); 6090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 611cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForLineControlInfo(Handler h, int what, Object obj) { 6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mLineControlInfoRegistrants.add(r); 6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 617cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForLineControlInfo(Handler h) { 6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mLineControlInfoRegistrants.remove(h); 6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 622cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerFoT53ClirlInfo(Handler h,int what, Object obj) { 6240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53ClirInfoRegistrants.add(r); 6260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 628cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForT53ClirInfo(Handler h) { 6300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53ClirInfoRegistrants.remove(h); 6310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 633cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForT53AudioControlInfo(Handler h,int what, Object obj) { 6350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53AudCntrlInfoRegistrants.add(r); 6370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 639cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForT53AudioControlInfo(Handler h) { 6410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53AudCntrlInfoRegistrants.remove(h); 6420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 644cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRingbackTone(Handler h, int what, Object obj) { 6460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRingbackToneRegistrants.add(r); 6480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 650cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRingbackTone(Handler h) { 6520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRingbackToneRegistrants.remove(h); 6530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 655cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForResendIncallMute(Handler h, int what, Object obj) { 6570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mResendIncallMuteRegistrants.add(r); 6590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 661cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForResendIncallMute(Handler h) { 6630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mResendIncallMuteRegistrants.remove(h); 6640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaSubscriptionChanged(Handler h, int what, Object obj) { 6680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaSubscriptionChangedRegistrants.add(r); 6700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaSubscriptionChanged(Handler h) { 6740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaSubscriptionChangedRegistrants.remove(h); 6750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaPrlChanged(Handler h, int what, Object obj) { 6790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaPrlChangedRegistrants.add(r); 6810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaPrlChanged(Handler h) { 6850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaPrlChangedRegistrants.remove(h); 6860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForExitEmergencyCallbackMode(Handler h, int what, Object obj) { 6900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mExitEmergencyCallbackModeRegistrants.add(r); 6920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForExitEmergencyCallbackMode(Handler h) { 6960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mExitEmergencyCallbackModeRegistrants.remove(h); 6970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 699a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 700a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForHardwareConfigChanged(Handler h, int what, Object obj) { 701a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Registrant r = new Registrant (h, what, obj); 702a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mHardwareConfigChangeRegistrants.add(r); 703a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 704a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 705a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 706a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForHardwareConfigChanged(Handler h) { 707a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mHardwareConfigChangeRegistrants.remove(h); 708a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 709a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 7100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@inheritDoc} 7120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 7130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRilConnected(Handler h, int what, Object obj) { 7150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 7160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRilConnectedRegistrants.add(r); 7170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mRilVersion != -1) { 7180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, new Integer(mRilVersion), null)); 7190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRilConnected(Handler h) { 7240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRilConnectedRegistrants.remove(h); 7250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 727a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForSubscriptionStatusChanged(Handler h, int what, Object obj) { 728a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Registrant r = new Registrant (h, what, obj); 729a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSubscriptionStatusRegistrants.add(r); 730a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 731a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 732a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForSubscriptionStatusChanged(Handler h) { 733a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSubscriptionStatusRegistrants.remove(h); 734a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 735a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 7360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //***** Protected Methods 7370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Store new RadioState and send notification based on the changes 7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * This function is called only by RIL.java when receiving unsolicited 7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED 7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * RadioState has 3 values : RADIO_OFF, RADIO_UNAVAILABLE, RADIO_ON. 7440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param newState new RadioState decoded from RIL_UNSOL_RADIO_STATE_CHANGED 7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected void setRadioState(RadioState newState) { 7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville RadioState oldState; 7490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 7510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville oldState = mState; 7520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mState = newState; 7530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (oldState == mState) { 7550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // no state transition 7560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return; 7570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRadioStateChangedRegistrants.notifyRegistrants(); 7600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isAvailable() && !oldState.isAvailable()) { 7620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mAvailRegistrants.notifyRegistrants(); 7630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville onRadioAvailable(); 7640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (!mState.isAvailable() && oldState.isAvailable()) { 7670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNotAvailRegistrants.notifyRegistrants(); 7680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isOn() && !oldState.isOn()) { 7710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOnRegistrants.notifyRegistrants(); 7720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((!mState.isOn() || !mState.isAvailable()) 7750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville && !((!oldState.isOn() || !oldState.isAvailable())) 7760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ) { 7770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOffOrNotAvailRegistrants.notifyRegistrants(); 7780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected void onRadioAvailable() { 7830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@inheritDoc} 7870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 7880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getLteOnCdmaMode() { 7900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.getLteOnCdmaModeStatic(); 7910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7935fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville /** 7945fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville * {@inheritDoc} 7955fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville */ 7965fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville @Override 7975fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville public void registerForCellInfoList(Handler h, int what, Object obj) { 7985fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville Registrant r = new Registrant (h, what, obj); 7995fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville mRilCellInfoListRegistrants.add(r); 8005fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville } 8015fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville @Override 8025fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville public void unregisterForCellInfoList(Handler h) { 8035fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville mRilCellInfoListRegistrants.remove(h); 8045fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville } 8055fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville 8060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 807a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForSrvccStateChanged(Handler h, int what, Object obj) { 808a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Registrant r = new Registrant (h, what, obj); 809a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 810a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSrvccStateRegistrants.add(r); 811a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 812a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 813a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 814a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForSrvccStateChanged(Handler h) { 815a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSrvccStateRegistrants.remove(h); 816a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 817a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 818a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 8190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void testingEmergencyCall() {} 8201de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville 8211de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville @Override 8221de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville public int getRilVersion() { 8231de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville return mRilVersion; 8241de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville } 825a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 826a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setUiccSubscription(int slotId, int appIndex, int subId, int subStatus, 827a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Message response) { 828a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 829a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 830a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setDataAllowed(boolean allowed, Message response) { 831a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 83203586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla 83303586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla @Override 83403586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla public void requestShutdown(Message result) { 83503586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla } 8362b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8372b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8382b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void getRadioCapability(Message result) { 8392b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8402b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8412b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8422b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void setRadioCapability(RadioCapability rc, Message response) { 8432b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8442b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8452b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8462b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void registerForRadioCapabilityChanged(Handler h, int what, Object obj) { 8472b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville Registrant r = new Registrant(h, what, obj); 8482b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville mPhoneRadioCapabilityChangedRegistrants.add(r); 8492b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8502b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8512b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8522b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void unregisterForRadioCapabilityChanged(Handler h) { 8532b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville mPhoneRadioCapabilityChangedRegistrants.remove(h); 8542b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 856