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 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Context; 21a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.os.Message; 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.RegistrantList; 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Registrant; 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Handler; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.AsyncResult; 267e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scottimport android.telephony.RadioAccessFamily; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.TelephonyManager; 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 297e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scottimport com.android.internal.telephony.RadioCapability; 307e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scott 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(); 764b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt protected RegistrantList mPcoDataRegistrants = new RegistrantList(); 774b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mGsmSmsRegistrant; 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCdmaSmsRegistrant; 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mNITZTimeRegistrant; 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mSignalStrengthRegistrant; 830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mUSSDRegistrant; 840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mSmsOnSimRegistrant; 850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mSmsStatusRegistrant; 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mSsnRegistrant; 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCatSessionEndRegistrant; 880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCatProCmdRegistrant; 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCatEventRegistrant; 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mCatCallSetUpRegistrant; 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mIccSmsFullRegistrant; 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mEmergencyCallbackModeRegistrant; 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mRingRegistrant; 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mRestrictedStateRegistrant; 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected Registrant mGsmBroadcastSmsRegistrant; 9609b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja protected Registrant mCatCcAlphaRegistrant; 9709b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja protected Registrant mSsRegistrant; 9865bee39d7e417fb898c3948696d5d8a38046c449fenglu protected Registrant mLceInfoRegistrant; 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Preferred network type received from PhoneFactory. 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // This is used when establishing a connection to the 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // vendor ril so it starts up in the correct mode. 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mPreferredNetworkType; 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // CDMA subscription received from PhoneFactory 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mCdmaSubscription; 10658dd6858dc8013b680ea003d22063fd65ed5fe1cAmit Mahajan // Type of Phone, GSM or CDMA. Set by GsmCdmaPhone. 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mPhoneType; 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // RIL Version 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mRilVersion = -1; 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public BaseCommands(Context context) { 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext = context; // May be null (if so we won't log statistics) 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //***** CommandsInterface implementation 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 117cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public RadioState getRadioState() { 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mState; 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 122cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRadioStateChanged(Handler h, int what, Object obj) { 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRadioStateChangedRegistrants.add(r); 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(); 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 132cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRadioStateChanged(Handler h) { 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRadioStateChangedRegistrants.remove(h); 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1391260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa public void registerForImsNetworkStateChanged(Handler h, int what, Object obj) { 1401260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa Registrant r = new Registrant (h, what, obj); 1411260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa mImsNetworkStateChangedRegistrants.add(r); 1421260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa } 1431260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa 1441260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa public void unregisterForImsNetworkStateChanged(Handler h) { 1451260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa mImsNetworkStateChangedRegistrants.remove(h); 1461260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa } 1471260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa 148cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForOn(Handler h, int what, Object obj) { 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOnRegistrants.add(r); 1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isOn()) { 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 160cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForOn(Handler h) { 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOnRegistrants.remove(h); 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 168cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForAvailable(Handler h, int what, Object obj) { 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mAvailRegistrants.add(r); 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isAvailable()) { 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 181cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForAvailable(Handler h) { 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized(mStateMonitor) { 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mAvailRegistrants.remove(h); 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 188cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForNotAvailable(Handler h, int what, Object obj) { 1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNotAvailRegistrants.add(r); 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (!mState.isAvailable()) { 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 201cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForNotAvailable(Handler h) { 2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNotAvailRegistrants.remove(h); 2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 208cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForOffOrNotAvailable(Handler h, int what, Object obj) { 2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOffOrNotAvailRegistrants.add(r); 2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState == RadioState.RADIO_OFF || !mState.isAvailable()) { 2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 220cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForOffOrNotAvailable(Handler h) { 2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized(mStateMonitor) { 2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOffOrNotAvailRegistrants.remove(h); 2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 227cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCallStateChanged(Handler h, int what, Object obj) { 2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallStateRegistrants.add(r); 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 234cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCallStateChanged(Handler h) { 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallStateRegistrants.remove(h); 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 239cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForVoiceNetworkStateChanged(Handler h, int what, Object obj) { 2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceNetworkStateRegistrants.add(r); 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 246cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForVoiceNetworkStateChanged(Handler h) { 2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceNetworkStateRegistrants.remove(h); 2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 251cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForDataNetworkStateChanged(Handler h, int what, Object obj) { 2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDataNetworkStateRegistrants.add(r); 2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 258cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForDataNetworkStateChanged(Handler h) { 2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDataNetworkStateRegistrants.remove(h); 2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 263cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForVoiceRadioTechChanged(Handler h, int what, Object obj) { 2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceRadioTechChangedRegistrants.add(r); 2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 269cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForVoiceRadioTechChanged(Handler h) { 2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceRadioTechChangedRegistrants.remove(h); 2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 274cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForIccStatusChanged(Handler h, int what, Object obj) { 2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccStatusChangedRegistrants.add(r); 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 280cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForIccStatusChanged(Handler h) { 2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccStatusChangedRegistrants.remove(h); 2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 285cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNewGsmSms(Handler h, int what, Object obj) { 2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mGsmSmsRegistrant = new Registrant (h, what, obj); 2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 290cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNewGsmSms(Handler h) { 2928756c83413829be5b6530d122772959ad8414698Etan Cohen if (mGsmSmsRegistrant != null && mGsmSmsRegistrant.getHandler() == h) { 2938756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmSmsRegistrant.clear(); 2948756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmSmsRegistrant = null; 2958756c83413829be5b6530d122772959ad8414698Etan Cohen } 2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 298cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNewCdmaSms(Handler h, int what, Object obj) { 3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaSmsRegistrant = new Registrant (h, what, obj); 3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 303cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNewCdmaSms(Handler h) { 3058756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCdmaSmsRegistrant != null && mCdmaSmsRegistrant.getHandler() == h) { 3068756c83413829be5b6530d122772959ad8414698Etan Cohen mCdmaSmsRegistrant.clear(); 3078756c83413829be5b6530d122772959ad8414698Etan Cohen mCdmaSmsRegistrant = null; 3088756c83413829be5b6530d122772959ad8414698Etan Cohen } 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 311cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNewGsmBroadcastSms(Handler h, int what, Object obj) { 3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mGsmBroadcastSmsRegistrant = new Registrant (h, what, obj); 3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 316cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNewGsmBroadcastSms(Handler h) { 3188756c83413829be5b6530d122772959ad8414698Etan Cohen if (mGsmBroadcastSmsRegistrant != null && mGsmBroadcastSmsRegistrant.getHandler() == h) { 3198756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmBroadcastSmsRegistrant.clear(); 3208756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmBroadcastSmsRegistrant = null; 3218756c83413829be5b6530d122772959ad8414698Etan Cohen } 3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 324cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSmsOnSim(Handler h, int what, Object obj) { 3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSmsOnSimRegistrant = new Registrant (h, what, obj); 3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 329cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSmsOnSim(Handler h) { 3318756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSmsOnSimRegistrant != null && mSmsOnSimRegistrant.getHandler() == h) { 3328756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsOnSimRegistrant.clear(); 3338756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsOnSimRegistrant = null; 3348756c83413829be5b6530d122772959ad8414698Etan Cohen } 3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 337cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSmsStatus(Handler h, int what, Object obj) { 3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSmsStatusRegistrant = new Registrant (h, what, obj); 3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 342cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSmsStatus(Handler h) { 3448756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSmsStatusRegistrant != null && mSmsStatusRegistrant.getHandler() == h) { 3458756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsStatusRegistrant.clear(); 3468756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsStatusRegistrant = null; 3478756c83413829be5b6530d122772959ad8414698Etan Cohen } 3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 350cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSignalStrengthUpdate(Handler h, int what, Object obj) { 3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSignalStrengthRegistrant = new Registrant (h, what, obj); 3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 355cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSignalStrengthUpdate(Handler h) { 3578756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSignalStrengthRegistrant != null && mSignalStrengthRegistrant.getHandler() == h) { 3588756c83413829be5b6530d122772959ad8414698Etan Cohen mSignalStrengthRegistrant.clear(); 3598756c83413829be5b6530d122772959ad8414698Etan Cohen mSignalStrengthRegistrant = null; 3608756c83413829be5b6530d122772959ad8414698Etan Cohen } 3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 363cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNITZTime(Handler h, int what, Object obj) { 3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNITZTimeRegistrant = new Registrant (h, what, obj); 3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 368cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNITZTime(Handler h) { 3708756c83413829be5b6530d122772959ad8414698Etan Cohen if (mNITZTimeRegistrant != null && mNITZTimeRegistrant.getHandler() == h) { 3718756c83413829be5b6530d122772959ad8414698Etan Cohen mNITZTimeRegistrant.clear(); 3728756c83413829be5b6530d122772959ad8414698Etan Cohen mNITZTimeRegistrant = null; 3738756c83413829be5b6530d122772959ad8414698Etan Cohen } 3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 376cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnUSSD(Handler h, int what, Object obj) { 3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mUSSDRegistrant = new Registrant (h, what, obj); 3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 381cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnUSSD(Handler h) { 3838756c83413829be5b6530d122772959ad8414698Etan Cohen if (mUSSDRegistrant != null && mUSSDRegistrant.getHandler() == h) { 3848756c83413829be5b6530d122772959ad8414698Etan Cohen mUSSDRegistrant.clear(); 3858756c83413829be5b6530d122772959ad8414698Etan Cohen mUSSDRegistrant = null; 3868756c83413829be5b6530d122772959ad8414698Etan Cohen } 3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 389cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSuppServiceNotification(Handler h, int what, Object obj) { 3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSsnRegistrant = new Registrant (h, what, obj); 3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 394cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSuppServiceNotification(Handler h) { 3968756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSsnRegistrant != null && mSsnRegistrant.getHandler() == h) { 3978756c83413829be5b6530d122772959ad8414698Etan Cohen mSsnRegistrant.clear(); 3988756c83413829be5b6530d122772959ad8414698Etan Cohen mSsnRegistrant = null; 3998756c83413829be5b6530d122772959ad8414698Etan Cohen } 4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 402cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatSessionEnd(Handler h, int what, Object obj) { 4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatSessionEndRegistrant = new Registrant (h, what, obj); 4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 407cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatSessionEnd(Handler h) { 4098756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatSessionEndRegistrant != null && mCatSessionEndRegistrant.getHandler() == h) { 4108756c83413829be5b6530d122772959ad8414698Etan Cohen mCatSessionEndRegistrant.clear(); 4118756c83413829be5b6530d122772959ad8414698Etan Cohen mCatSessionEndRegistrant = null; 4128756c83413829be5b6530d122772959ad8414698Etan Cohen } 4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 415cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatProactiveCmd(Handler h, int what, Object obj) { 4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatProCmdRegistrant = new Registrant (h, what, obj); 4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 420cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatProactiveCmd(Handler h) { 4228756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatProCmdRegistrant != null && mCatProCmdRegistrant.getHandler() == h) { 4238756c83413829be5b6530d122772959ad8414698Etan Cohen mCatProCmdRegistrant.clear(); 4248756c83413829be5b6530d122772959ad8414698Etan Cohen mCatProCmdRegistrant = null; 4258756c83413829be5b6530d122772959ad8414698Etan Cohen } 4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 428cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatEvent(Handler h, int what, Object obj) { 4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatEventRegistrant = new Registrant (h, what, obj); 4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 433cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatEvent(Handler h) { 4358756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatEventRegistrant != null && mCatEventRegistrant.getHandler() == h) { 4368756c83413829be5b6530d122772959ad8414698Etan Cohen mCatEventRegistrant.clear(); 4378756c83413829be5b6530d122772959ad8414698Etan Cohen mCatEventRegistrant = null; 4388756c83413829be5b6530d122772959ad8414698Etan Cohen } 4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 441cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatCallSetUp(Handler h, int what, Object obj) { 4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatCallSetUpRegistrant = new Registrant (h, what, obj); 4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 446cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatCallSetUp(Handler h) { 4488756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatCallSetUpRegistrant != null && mCatCallSetUpRegistrant.getHandler() == h) { 4498756c83413829be5b6530d122772959ad8414698Etan Cohen mCatCallSetUpRegistrant.clear(); 4508756c83413829be5b6530d122772959ad8414698Etan Cohen mCatCallSetUpRegistrant = null; 4518756c83413829be5b6530d122772959ad8414698Etan Cohen } 4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 454cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnIccSmsFull(Handler h, int what, Object obj) { 4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccSmsFullRegistrant = new Registrant (h, what, obj); 4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 459cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnIccSmsFull(Handler h) { 4618756c83413829be5b6530d122772959ad8414698Etan Cohen if (mIccSmsFullRegistrant != null && mIccSmsFullRegistrant.getHandler() == h) { 4628756c83413829be5b6530d122772959ad8414698Etan Cohen mIccSmsFullRegistrant.clear(); 4638756c83413829be5b6530d122772959ad8414698Etan Cohen mIccSmsFullRegistrant = null; 4648756c83413829be5b6530d122772959ad8414698Etan Cohen } 4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 467cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForIccRefresh(Handler h, int what, Object obj) { 4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccRefreshRegistrants.add(r); 4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 472cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnIccRefresh(Handler h, int what, Object obj) { 4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville registerForIccRefresh(h, what, obj); 4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 477cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setEmergencyCallbackMode(Handler h, int what, Object obj) { 4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEmergencyCallbackModeRegistrant = new Registrant (h, what, obj); 4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 482cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForIccRefresh(Handler h) { 4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccRefreshRegistrants.remove(h); 4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 486cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unsetOnIccRefresh(Handler h) { 4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville unregisterForIccRefresh(h); 4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 491cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCallRing(Handler h, int what, Object obj) { 4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRingRegistrant = new Registrant (h, what, obj); 4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 496cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCallRing(Handler h) { 4988756c83413829be5b6530d122772959ad8414698Etan Cohen if (mRingRegistrant != null && mRingRegistrant.getHandler() == h) { 4998756c83413829be5b6530d122772959ad8414698Etan Cohen mRingRegistrant.clear(); 5008756c83413829be5b6530d122772959ad8414698Etan Cohen mRingRegistrant = null; 5018756c83413829be5b6530d122772959ad8414698Etan Cohen } 5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 504cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 50509b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja public void setOnSs(Handler h, int what, Object obj) { 50609b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja mSsRegistrant = new Registrant (h, what, obj); 50709b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja } 50809b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja 50909b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja @Override 51009b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja public void unSetOnSs(Handler h) { 51109b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja mSsRegistrant.clear(); 51209b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja } 51309b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja 51409b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja @Override 51509b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja public void setOnCatCcAlphaNotify(Handler h, int what, Object obj) { 51609b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja mCatCcAlphaRegistrant = new Registrant (h, what, obj); 51709b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja } 51809b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja 51909b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja @Override 52009b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja public void unSetOnCatCcAlphaNotify(Handler h) { 52109b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja mCatCcAlphaRegistrant.clear(); 52209b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja } 52309b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja 52409b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja @Override 5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj) { 5260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOnRegistrants.add(r); 5280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 530cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForInCallVoicePrivacyOn(Handler h){ 5320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOnRegistrants.remove(h); 5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 535cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj) { 5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOffRegistrants.add(r); 5390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 541cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForInCallVoicePrivacyOff(Handler h){ 5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOffRegistrants.remove(h); 5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 546cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnRestrictedStateChanged(Handler h, int what, Object obj) { 5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRestrictedStateRegistrant = new Registrant (h, what, obj); 5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 551cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnRestrictedStateChanged(Handler h) { 553ec2e4a8f12e5b67b1116e0c655a08c0216b8cd07Amit Mahajan if (mRestrictedStateRegistrant != null && mRestrictedStateRegistrant.getHandler() == h) { 5548756c83413829be5b6530d122772959ad8414698Etan Cohen mRestrictedStateRegistrant.clear(); 5558756c83413829be5b6530d122772959ad8414698Etan Cohen mRestrictedStateRegistrant = null; 5568756c83413829be5b6530d122772959ad8414698Etan Cohen } 5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 559cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForDisplayInfo(Handler h, int what, Object obj) { 5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDisplayInfoRegistrants.add(r); 5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 565cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForDisplayInfo(Handler h) { 5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDisplayInfoRegistrants.remove(h); 5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 570cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCallWaitingInfo(Handler h, int what, Object obj) { 5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallWaitingInfoRegistrants.add(r); 5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 576cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCallWaitingInfo(Handler h) { 5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallWaitingInfoRegistrants.remove(h); 5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 581cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForSignalInfo(Handler h, int what, Object obj) { 5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSignalInfoRegistrants.add(r); 5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnUnsolOemHookRaw(Handler h, int what, Object obj) { 5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mUnsolOemHookRawRegistrant = new Registrant (h, what, obj); 5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnUnsolOemHookRaw(Handler h) { 5928756c83413829be5b6530d122772959ad8414698Etan Cohen if (mUnsolOemHookRawRegistrant != null && mUnsolOemHookRawRegistrant.getHandler() == h) { 5938756c83413829be5b6530d122772959ad8414698Etan Cohen mUnsolOemHookRawRegistrant.clear(); 5948756c83413829be5b6530d122772959ad8414698Etan Cohen mUnsolOemHookRawRegistrant = null; 5958756c83413829be5b6530d122772959ad8414698Etan Cohen } 5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 598cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForSignalInfo(Handler h) { 6000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSignalInfoRegistrants.remove(h); 6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 603cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaOtaProvision(Handler h,int what, Object obj){ 6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOtaProvisionRegistrants.add(r); 6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 609cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaOtaProvision(Handler h){ 6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOtaProvisionRegistrants.remove(h); 6120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 614cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForNumberInfo(Handler h,int what, Object obj) { 6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNumberInfoRegistrants.add(r); 6180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 620cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForNumberInfo(Handler h){ 6220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNumberInfoRegistrants.remove(h); 6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 625cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 626cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville public void registerForRedirectedNumberInfo(Handler h,int what, Object obj) { 6270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRedirNumInfoRegistrants.add(r); 6290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 631cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRedirectedNumberInfo(Handler h) { 6330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRedirNumInfoRegistrants.remove(h); 6340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 636cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForLineControlInfo(Handler h, int what, Object obj) { 6380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mLineControlInfoRegistrants.add(r); 6400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 642cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForLineControlInfo(Handler h) { 6440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mLineControlInfoRegistrants.remove(h); 6450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 647cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerFoT53ClirlInfo(Handler h,int what, Object obj) { 6490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53ClirInfoRegistrants.add(r); 6510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 653cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForT53ClirInfo(Handler h) { 6550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53ClirInfoRegistrants.remove(h); 6560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 658cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForT53AudioControlInfo(Handler h,int what, Object obj) { 6600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53AudCntrlInfoRegistrants.add(r); 6620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 664cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForT53AudioControlInfo(Handler h) { 6660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53AudCntrlInfoRegistrants.remove(h); 6670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 669cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRingbackTone(Handler h, int what, Object obj) { 6710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRingbackToneRegistrants.add(r); 6730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 675cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRingbackTone(Handler h) { 6770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRingbackToneRegistrants.remove(h); 6780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 680cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForResendIncallMute(Handler h, int what, Object obj) { 6820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mResendIncallMuteRegistrants.add(r); 6840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 686cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForResendIncallMute(Handler h) { 6880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mResendIncallMuteRegistrants.remove(h); 6890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaSubscriptionChanged(Handler h, int what, Object obj) { 6930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaSubscriptionChangedRegistrants.add(r); 6950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaSubscriptionChanged(Handler h) { 6990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaSubscriptionChangedRegistrants.remove(h); 7000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaPrlChanged(Handler h, int what, Object obj) { 7040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 7050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaPrlChangedRegistrants.add(r); 7060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaPrlChanged(Handler h) { 7100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaPrlChangedRegistrants.remove(h); 7110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForExitEmergencyCallbackMode(Handler h, int what, Object obj) { 7150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 7160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mExitEmergencyCallbackModeRegistrants.add(r); 7170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForExitEmergencyCallbackMode(Handler h) { 7210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mExitEmergencyCallbackModeRegistrants.remove(h); 7220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 724a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 725a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForHardwareConfigChanged(Handler h, int what, Object obj) { 726a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Registrant r = new Registrant (h, what, obj); 727a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mHardwareConfigChangeRegistrants.add(r); 728a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 729a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 730a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 731a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForHardwareConfigChanged(Handler h) { 732a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mHardwareConfigChangeRegistrants.remove(h); 733a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 734a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 7350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@inheritDoc} 7370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRilConnected(Handler h, int what, Object obj) { 7400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRilConnectedRegistrants.add(r); 7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mRilVersion != -1) { 7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, new Integer(mRilVersion), null)); 7440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRilConnected(Handler h) { 7490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRilConnectedRegistrants.remove(h); 7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7520e42864afb21261d6bd2e9b4aa97f6d01d039a25Yashdev Singh public void registerForSubscriptionStatusChanged(Handler h, int what, Object obj) { 7530e42864afb21261d6bd2e9b4aa97f6d01d039a25Yashdev Singh Registrant r = new Registrant (h, what, obj); 7540e42864afb21261d6bd2e9b4aa97f6d01d039a25Yashdev Singh mSubscriptionStatusRegistrants.add(r); 7550e42864afb21261d6bd2e9b4aa97f6d01d039a25Yashdev Singh } 7560e42864afb21261d6bd2e9b4aa97f6d01d039a25Yashdev Singh 7570e42864afb21261d6bd2e9b4aa97f6d01d039a25Yashdev Singh public void unregisterForSubscriptionStatusChanged(Handler h) { 7580e42864afb21261d6bd2e9b4aa97f6d01d039a25Yashdev Singh mSubscriptionStatusRegistrants.remove(h); 7590e42864afb21261d6bd2e9b4aa97f6d01d039a25Yashdev Singh } 760a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 7610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //***** Protected Methods 7620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Store new RadioState and send notification based on the changes 7640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * This function is called only by RIL.java when receiving unsolicited 7660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED 7670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * RadioState has 3 values : RADIO_OFF, RADIO_UNAVAILABLE, RADIO_ON. 7690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param newState new RadioState decoded from RIL_UNSOL_RADIO_STATE_CHANGED 7710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 7720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected void setRadioState(RadioState newState) { 7730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville RadioState oldState; 7740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 7760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville oldState = mState; 7770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mState = newState; 7780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (oldState == mState) { 7800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // no state transition 7810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return; 7820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRadioStateChangedRegistrants.notifyRegistrants(); 7850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isAvailable() && !oldState.isAvailable()) { 7870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mAvailRegistrants.notifyRegistrants(); 7880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville onRadioAvailable(); 7890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (!mState.isAvailable() && oldState.isAvailable()) { 7920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNotAvailRegistrants.notifyRegistrants(); 7930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isOn() && !oldState.isOn()) { 7960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOnRegistrants.notifyRegistrants(); 7970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((!mState.isOn() || !mState.isAvailable()) 8000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville && !((!oldState.isOn() || !oldState.isAvailable())) 8010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ) { 8020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOffOrNotAvailRegistrants.notifyRegistrants(); 8030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected void onRadioAvailable() { 8080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 8110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@inheritDoc} 8120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 8130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 8140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getLteOnCdmaMode() { 8150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.getLteOnCdmaModeStatic(); 8160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8185fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville /** 8195fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville * {@inheritDoc} 8205fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville */ 8215fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville @Override 8225fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville public void registerForCellInfoList(Handler h, int what, Object obj) { 8235fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville Registrant r = new Registrant (h, what, obj); 8245fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville mRilCellInfoListRegistrants.add(r); 8255fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville } 8265fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville @Override 8275fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville public void unregisterForCellInfoList(Handler h) { 8285fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville mRilCellInfoListRegistrants.remove(h); 8295fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville } 8305fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville 8310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 832a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForSrvccStateChanged(Handler h, int what, Object obj) { 833a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Registrant r = new Registrant (h, what, obj); 834a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 835a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSrvccStateRegistrants.add(r); 836a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 837a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 838a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 839a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForSrvccStateChanged(Handler h) { 840a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSrvccStateRegistrants.remove(h); 841a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 842a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 843a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 8440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void testingEmergencyCall() {} 8451de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville 8461de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville @Override 8471de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville public int getRilVersion() { 8481de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville return mRilVersion; 8491de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville } 850a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 851a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setUiccSubscription(int slotId, int appIndex, int subId, int subStatus, 852a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Message response) { 853a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 854a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 855a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setDataAllowed(boolean allowed, Message response) { 856a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 85703586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla 85803586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla @Override 85903586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla public void requestShutdown(Message result) { 86003586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla } 8612b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8622b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8632b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void getRadioCapability(Message result) { 8642b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8652b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8662b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8672b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void setRadioCapability(RadioCapability rc, Message response) { 8682b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8692b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8702b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8712b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void registerForRadioCapabilityChanged(Handler h, int what, Object obj) { 8722b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville Registrant r = new Registrant(h, what, obj); 8732b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville mPhoneRadioCapabilityChangedRegistrants.add(r); 8742b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8752b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8762b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8772b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void unregisterForRadioCapabilityChanged(Handler h) { 8782b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville mPhoneRadioCapabilityChangedRegistrants.remove(h); 8792b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 88065bee39d7e417fb898c3948696d5d8a38046c449fenglu 88165bee39d7e417fb898c3948696d5d8a38046c449fenglu @Override 88265bee39d7e417fb898c3948696d5d8a38046c449fenglu public void startLceService(int reportIntervalMs, boolean pullMode, Message result) { 88365bee39d7e417fb898c3948696d5d8a38046c449fenglu } 88465bee39d7e417fb898c3948696d5d8a38046c449fenglu 88565bee39d7e417fb898c3948696d5d8a38046c449fenglu @Override 88665bee39d7e417fb898c3948696d5d8a38046c449fenglu public void stopLceService(Message result) { 88765bee39d7e417fb898c3948696d5d8a38046c449fenglu } 88865bee39d7e417fb898c3948696d5d8a38046c449fenglu 88965bee39d7e417fb898c3948696d5d8a38046c449fenglu @Override 89065bee39d7e417fb898c3948696d5d8a38046c449fenglu public void pullLceData(Message result) { 89165bee39d7e417fb898c3948696d5d8a38046c449fenglu } 89265bee39d7e417fb898c3948696d5d8a38046c449fenglu 89365bee39d7e417fb898c3948696d5d8a38046c449fenglu @Override 89465bee39d7e417fb898c3948696d5d8a38046c449fenglu public void registerForLceInfo(Handler h, int what, Object obj) { 89565bee39d7e417fb898c3948696d5d8a38046c449fenglu mLceInfoRegistrant = new Registrant(h, what, obj); 89665bee39d7e417fb898c3948696d5d8a38046c449fenglu } 89765bee39d7e417fb898c3948696d5d8a38046c449fenglu 89865bee39d7e417fb898c3948696d5d8a38046c449fenglu @Override 89965bee39d7e417fb898c3948696d5d8a38046c449fenglu public void unregisterForLceInfo(Handler h) { 90065bee39d7e417fb898c3948696d5d8a38046c449fenglu if (mLceInfoRegistrant != null && mLceInfoRegistrant.getHandler() == h) { 90165bee39d7e417fb898c3948696d5d8a38046c449fenglu mLceInfoRegistrant.clear(); 90265bee39d7e417fb898c3948696d5d8a38046c449fenglu mLceInfoRegistrant = null; 90365bee39d7e417fb898c3948696d5d8a38046c449fenglu } 90465bee39d7e417fb898c3948696d5d8a38046c449fenglu } 9054b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt 9064b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt @Override 9074b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt public void registerForPcoData(Handler h, int what, Object obj) { 9084b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt mPcoDataRegistrants.add(new Registrant(h, what, obj)); 9094b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt } 9104b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt 9114b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt @Override 9124b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt public void unregisterForPcoData(Handler h) { 9134b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt mPcoDataRegistrants.remove(h); 9144b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt } 9150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 916