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(); 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; 9409b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja protected Registrant mCatCcAlphaRegistrant; 9509b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja protected Registrant mSsRegistrant; 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Preferred network type received from PhoneFactory. 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // This is used when establishing a connection to the 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // vendor ril so it starts up in the correct mode. 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mPreferredNetworkType; 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // CDMA subscription received from PhoneFactory 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mCdmaSubscription; 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Type of Phone, GSM or CDMA. Set by CDMAPhone or GSMPhone. 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mPhoneType; 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // RIL Version 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected int mRilVersion = -1; 1077e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scott // Supported Radio Access Family 1087e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scott protected int mSupportedRaf = RadioAccessFamily.RAF_UNKNOWN; 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public BaseCommands(Context context) { 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext = context; // May be null (if so we won't log statistics) 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //***** CommandsInterface implementation 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 116cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public RadioState getRadioState() { 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mState; 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 121cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRadioStateChanged(Handler h, int what, Object obj) { 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRadioStateChangedRegistrants.add(r); 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(); 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 131cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRadioStateChanged(Handler h) { 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRadioStateChangedRegistrants.remove(h); 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1381260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa public void registerForImsNetworkStateChanged(Handler h, int what, Object obj) { 1391260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa Registrant r = new Registrant (h, what, obj); 1401260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa mImsNetworkStateChangedRegistrants.add(r); 1411260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa } 1421260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa 1431260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa public void unregisterForImsNetworkStateChanged(Handler h) { 1441260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa mImsNetworkStateChangedRegistrants.remove(h); 1451260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa } 1461260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa 147cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForOn(Handler h, int what, Object obj) { 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOnRegistrants.add(r); 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isOn()) { 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 159cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForOn(Handler h) { 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOnRegistrants.remove(h); 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 167cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForAvailable(Handler h, int what, Object obj) { 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mAvailRegistrants.add(r); 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isAvailable()) { 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 180cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForAvailable(Handler h) { 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized(mStateMonitor) { 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mAvailRegistrants.remove(h); 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 187cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForNotAvailable(Handler h, int what, Object obj) { 1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNotAvailRegistrants.add(r); 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (!mState.isAvailable()) { 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 200cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForNotAvailable(Handler h) { 2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNotAvailRegistrants.remove(h); 2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 207cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForOffOrNotAvailable(Handler h, int what, Object obj) { 2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOffOrNotAvailRegistrants.add(r); 2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState == RadioState.RADIO_OFF || !mState.isAvailable()) { 2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, null, null)); 2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 219cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForOffOrNotAvailable(Handler h) { 2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized(mStateMonitor) { 2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOffOrNotAvailRegistrants.remove(h); 2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 226cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCallStateChanged(Handler h, int what, Object obj) { 2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallStateRegistrants.add(r); 2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 233cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCallStateChanged(Handler h) { 2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallStateRegistrants.remove(h); 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 238cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForVoiceNetworkStateChanged(Handler h, int what, Object obj) { 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceNetworkStateRegistrants.add(r); 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 245cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForVoiceNetworkStateChanged(Handler h) { 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceNetworkStateRegistrants.remove(h); 2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 250cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForDataNetworkStateChanged(Handler h, int what, Object obj) { 2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDataNetworkStateRegistrants.add(r); 2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 257cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForDataNetworkStateChanged(Handler h) { 2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDataNetworkStateRegistrants.remove(h); 2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 262cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForVoiceRadioTechChanged(Handler h, int what, Object obj) { 2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceRadioTechChangedRegistrants.add(r); 2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 268cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForVoiceRadioTechChanged(Handler h) { 2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoiceRadioTechChangedRegistrants.remove(h); 2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 273cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForIccStatusChanged(Handler h, int what, Object obj) { 2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccStatusChangedRegistrants.add(r); 2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 279cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForIccStatusChanged(Handler h) { 2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccStatusChangedRegistrants.remove(h); 2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 284cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNewGsmSms(Handler h, int what, Object obj) { 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mGsmSmsRegistrant = new Registrant (h, what, obj); 2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 289cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNewGsmSms(Handler h) { 2918756c83413829be5b6530d122772959ad8414698Etan Cohen if (mGsmSmsRegistrant != null && mGsmSmsRegistrant.getHandler() == h) { 2928756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmSmsRegistrant.clear(); 2938756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmSmsRegistrant = null; 2948756c83413829be5b6530d122772959ad8414698Etan Cohen } 2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 297cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNewCdmaSms(Handler h, int what, Object obj) { 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaSmsRegistrant = new Registrant (h, what, obj); 3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 302cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNewCdmaSms(Handler h) { 3048756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCdmaSmsRegistrant != null && mCdmaSmsRegistrant.getHandler() == h) { 3058756c83413829be5b6530d122772959ad8414698Etan Cohen mCdmaSmsRegistrant.clear(); 3068756c83413829be5b6530d122772959ad8414698Etan Cohen mCdmaSmsRegistrant = null; 3078756c83413829be5b6530d122772959ad8414698Etan Cohen } 3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 310cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNewGsmBroadcastSms(Handler h, int what, Object obj) { 3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mGsmBroadcastSmsRegistrant = new Registrant (h, what, obj); 3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 315cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNewGsmBroadcastSms(Handler h) { 3178756c83413829be5b6530d122772959ad8414698Etan Cohen if (mGsmBroadcastSmsRegistrant != null && mGsmBroadcastSmsRegistrant.getHandler() == h) { 3188756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmBroadcastSmsRegistrant.clear(); 3198756c83413829be5b6530d122772959ad8414698Etan Cohen mGsmBroadcastSmsRegistrant = null; 3208756c83413829be5b6530d122772959ad8414698Etan Cohen } 3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 323cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSmsOnSim(Handler h, int what, Object obj) { 3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSmsOnSimRegistrant = new Registrant (h, what, obj); 3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 328cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSmsOnSim(Handler h) { 3308756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSmsOnSimRegistrant != null && mSmsOnSimRegistrant.getHandler() == h) { 3318756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsOnSimRegistrant.clear(); 3328756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsOnSimRegistrant = null; 3338756c83413829be5b6530d122772959ad8414698Etan Cohen } 3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 336cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSmsStatus(Handler h, int what, Object obj) { 3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSmsStatusRegistrant = new Registrant (h, what, obj); 3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 341cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSmsStatus(Handler h) { 3438756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSmsStatusRegistrant != null && mSmsStatusRegistrant.getHandler() == h) { 3448756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsStatusRegistrant.clear(); 3458756c83413829be5b6530d122772959ad8414698Etan Cohen mSmsStatusRegistrant = null; 3468756c83413829be5b6530d122772959ad8414698Etan Cohen } 3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 349cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSignalStrengthUpdate(Handler h, int what, Object obj) { 3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSignalStrengthRegistrant = new Registrant (h, what, obj); 3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 354cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSignalStrengthUpdate(Handler h) { 3568756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSignalStrengthRegistrant != null && mSignalStrengthRegistrant.getHandler() == h) { 3578756c83413829be5b6530d122772959ad8414698Etan Cohen mSignalStrengthRegistrant.clear(); 3588756c83413829be5b6530d122772959ad8414698Etan Cohen mSignalStrengthRegistrant = null; 3598756c83413829be5b6530d122772959ad8414698Etan Cohen } 3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 362cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnNITZTime(Handler h, int what, Object obj) { 3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNITZTimeRegistrant = new Registrant (h, what, obj); 3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 367cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnNITZTime(Handler h) { 3698756c83413829be5b6530d122772959ad8414698Etan Cohen if (mNITZTimeRegistrant != null && mNITZTimeRegistrant.getHandler() == h) { 3708756c83413829be5b6530d122772959ad8414698Etan Cohen mNITZTimeRegistrant.clear(); 3718756c83413829be5b6530d122772959ad8414698Etan Cohen mNITZTimeRegistrant = null; 3728756c83413829be5b6530d122772959ad8414698Etan Cohen } 3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 375cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnUSSD(Handler h, int what, Object obj) { 3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mUSSDRegistrant = new Registrant (h, what, obj); 3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 380cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnUSSD(Handler h) { 3828756c83413829be5b6530d122772959ad8414698Etan Cohen if (mUSSDRegistrant != null && mUSSDRegistrant.getHandler() == h) { 3838756c83413829be5b6530d122772959ad8414698Etan Cohen mUSSDRegistrant.clear(); 3848756c83413829be5b6530d122772959ad8414698Etan Cohen mUSSDRegistrant = null; 3858756c83413829be5b6530d122772959ad8414698Etan Cohen } 3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 388cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnSuppServiceNotification(Handler h, int what, Object obj) { 3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSsnRegistrant = new Registrant (h, what, obj); 3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 393cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 3940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnSuppServiceNotification(Handler h) { 3958756c83413829be5b6530d122772959ad8414698Etan Cohen if (mSsnRegistrant != null && mSsnRegistrant.getHandler() == h) { 3968756c83413829be5b6530d122772959ad8414698Etan Cohen mSsnRegistrant.clear(); 3978756c83413829be5b6530d122772959ad8414698Etan Cohen mSsnRegistrant = null; 3988756c83413829be5b6530d122772959ad8414698Etan Cohen } 3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 401cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatSessionEnd(Handler h, int what, Object obj) { 4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatSessionEndRegistrant = new Registrant (h, what, obj); 4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 406cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatSessionEnd(Handler h) { 4088756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatSessionEndRegistrant != null && mCatSessionEndRegistrant.getHandler() == h) { 4098756c83413829be5b6530d122772959ad8414698Etan Cohen mCatSessionEndRegistrant.clear(); 4108756c83413829be5b6530d122772959ad8414698Etan Cohen mCatSessionEndRegistrant = null; 4118756c83413829be5b6530d122772959ad8414698Etan Cohen } 4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 414cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatProactiveCmd(Handler h, int what, Object obj) { 4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatProCmdRegistrant = new Registrant (h, what, obj); 4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 419cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatProactiveCmd(Handler h) { 4218756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatProCmdRegistrant != null && mCatProCmdRegistrant.getHandler() == h) { 4228756c83413829be5b6530d122772959ad8414698Etan Cohen mCatProCmdRegistrant.clear(); 4238756c83413829be5b6530d122772959ad8414698Etan Cohen mCatProCmdRegistrant = null; 4248756c83413829be5b6530d122772959ad8414698Etan Cohen } 4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 427cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatEvent(Handler h, int what, Object obj) { 4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatEventRegistrant = new Registrant (h, what, obj); 4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 432cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatEvent(Handler h) { 4348756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatEventRegistrant != null && mCatEventRegistrant.getHandler() == h) { 4358756c83413829be5b6530d122772959ad8414698Etan Cohen mCatEventRegistrant.clear(); 4368756c83413829be5b6530d122772959ad8414698Etan Cohen mCatEventRegistrant = null; 4378756c83413829be5b6530d122772959ad8414698Etan Cohen } 4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 440cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCatCallSetUp(Handler h, int what, Object obj) { 4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCatCallSetUpRegistrant = new Registrant (h, what, obj); 4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 445cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCatCallSetUp(Handler h) { 4478756c83413829be5b6530d122772959ad8414698Etan Cohen if (mCatCallSetUpRegistrant != null && mCatCallSetUpRegistrant.getHandler() == h) { 4488756c83413829be5b6530d122772959ad8414698Etan Cohen mCatCallSetUpRegistrant.clear(); 4498756c83413829be5b6530d122772959ad8414698Etan Cohen mCatCallSetUpRegistrant = null; 4508756c83413829be5b6530d122772959ad8414698Etan Cohen } 4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 453cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnIccSmsFull(Handler h, int what, Object obj) { 4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccSmsFullRegistrant = new Registrant (h, what, obj); 4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 458cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnIccSmsFull(Handler h) { 4608756c83413829be5b6530d122772959ad8414698Etan Cohen if (mIccSmsFullRegistrant != null && mIccSmsFullRegistrant.getHandler() == h) { 4618756c83413829be5b6530d122772959ad8414698Etan Cohen mIccSmsFullRegistrant.clear(); 4628756c83413829be5b6530d122772959ad8414698Etan Cohen mIccSmsFullRegistrant = null; 4638756c83413829be5b6530d122772959ad8414698Etan Cohen } 4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 466cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForIccRefresh(Handler h, int what, Object obj) { 4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccRefreshRegistrants.add(r); 4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 471cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnIccRefresh(Handler h, int what, Object obj) { 4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville registerForIccRefresh(h, what, obj); 4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 476cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setEmergencyCallbackMode(Handler h, int what, Object obj) { 4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEmergencyCallbackModeRegistrant = new Registrant (h, what, obj); 4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 481cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForIccRefresh(Handler h) { 4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccRefreshRegistrants.remove(h); 4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 485cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unsetOnIccRefresh(Handler h) { 4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville unregisterForIccRefresh(h); 4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 490cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnCallRing(Handler h, int what, Object obj) { 4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRingRegistrant = new Registrant (h, what, obj); 4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 495cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnCallRing(Handler h) { 4978756c83413829be5b6530d122772959ad8414698Etan Cohen if (mRingRegistrant != null && mRingRegistrant.getHandler() == h) { 4988756c83413829be5b6530d122772959ad8414698Etan Cohen mRingRegistrant.clear(); 4998756c83413829be5b6530d122772959ad8414698Etan Cohen mRingRegistrant = null; 5008756c83413829be5b6530d122772959ad8414698Etan Cohen } 5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 503cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 50409b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja public void setOnSs(Handler h, int what, Object obj) { 50509b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja mSsRegistrant = new Registrant (h, what, obj); 50609b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja } 50709b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja 50809b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja @Override 50909b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja public void unSetOnSs(Handler h) { 51009b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja mSsRegistrant.clear(); 51109b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja } 51209b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja 51309b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja @Override 51409b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja public void setOnCatCcAlphaNotify(Handler h, int what, Object obj) { 51509b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja mCatCcAlphaRegistrant = new Registrant (h, what, obj); 51609b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja } 51709b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja 51809b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja @Override 51909b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja public void unSetOnCatCcAlphaNotify(Handler h) { 52009b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja mCatCcAlphaRegistrant.clear(); 52109b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja } 52209b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja 52309b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja @Override 5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj) { 5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOnRegistrants.add(r); 5270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 529cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForInCallVoicePrivacyOn(Handler h){ 5310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOnRegistrants.remove(h); 5320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 534cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj) { 5360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOffRegistrants.add(r); 5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 540cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForInCallVoicePrivacyOff(Handler h){ 5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mVoicePrivacyOffRegistrants.remove(h); 5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 545cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnRestrictedStateChanged(Handler h, int what, Object obj) { 5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRestrictedStateRegistrant = new Registrant (h, what, obj); 5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 550cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnRestrictedStateChanged(Handler h) { 5528756c83413829be5b6530d122772959ad8414698Etan Cohen if (mRestrictedStateRegistrant != null && mRestrictedStateRegistrant.getHandler() != h) { 5538756c83413829be5b6530d122772959ad8414698Etan Cohen mRestrictedStateRegistrant.clear(); 5548756c83413829be5b6530d122772959ad8414698Etan Cohen mRestrictedStateRegistrant = null; 5558756c83413829be5b6530d122772959ad8414698Etan Cohen } 5560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 558cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForDisplayInfo(Handler h, int what, Object obj) { 5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDisplayInfoRegistrants.add(r); 5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 564cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForDisplayInfo(Handler h) { 5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mDisplayInfoRegistrants.remove(h); 5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 569cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCallWaitingInfo(Handler h, int what, Object obj) { 5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallWaitingInfoRegistrants.add(r); 5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 575cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCallWaitingInfo(Handler h) { 5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallWaitingInfoRegistrants.remove(h); 5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 580cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForSignalInfo(Handler h, int what, Object obj) { 5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSignalInfoRegistrants.add(r); 5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnUnsolOemHookRaw(Handler h, int what, Object obj) { 5870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mUnsolOemHookRawRegistrant = new Registrant (h, what, obj); 5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unSetOnUnsolOemHookRaw(Handler h) { 5918756c83413829be5b6530d122772959ad8414698Etan Cohen if (mUnsolOemHookRawRegistrant != null && mUnsolOemHookRawRegistrant.getHandler() == h) { 5928756c83413829be5b6530d122772959ad8414698Etan Cohen mUnsolOemHookRawRegistrant.clear(); 5938756c83413829be5b6530d122772959ad8414698Etan Cohen mUnsolOemHookRawRegistrant = null; 5948756c83413829be5b6530d122772959ad8414698Etan Cohen } 5950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 597cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 5980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForSignalInfo(Handler h) { 5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mSignalInfoRegistrants.remove(h); 6000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 602cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaOtaProvision(Handler h,int what, Object obj){ 6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOtaProvisionRegistrants.add(r); 6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 608cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaOtaProvision(Handler h){ 6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOtaProvisionRegistrants.remove(h); 6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 613cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForNumberInfo(Handler h,int what, Object obj) { 6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNumberInfoRegistrants.add(r); 6170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 619cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForNumberInfo(Handler h){ 6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNumberInfoRegistrants.remove(h); 6220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 624cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 625cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville public void registerForRedirectedNumberInfo(Handler h,int what, Object obj) { 6260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRedirNumInfoRegistrants.add(r); 6280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 630cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRedirectedNumberInfo(Handler h) { 6320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRedirNumInfoRegistrants.remove(h); 6330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 635cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForLineControlInfo(Handler h, int what, Object obj) { 6370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mLineControlInfoRegistrants.add(r); 6390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 641cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForLineControlInfo(Handler h) { 6430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mLineControlInfoRegistrants.remove(h); 6440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 646cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerFoT53ClirlInfo(Handler h,int what, Object obj) { 6480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53ClirInfoRegistrants.add(r); 6500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 652cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForT53ClirInfo(Handler h) { 6540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53ClirInfoRegistrants.remove(h); 6550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 657cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForT53AudioControlInfo(Handler h,int what, Object obj) { 6590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53AudCntrlInfoRegistrants.add(r); 6610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 663cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForT53AudioControlInfo(Handler h) { 6650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mT53AudCntrlInfoRegistrants.remove(h); 6660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 668cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRingbackTone(Handler h, int what, Object obj) { 6700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRingbackToneRegistrants.add(r); 6720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 674cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRingbackTone(Handler h) { 6760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRingbackToneRegistrants.remove(h); 6770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 679cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForResendIncallMute(Handler h, int what, Object obj) { 6810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mResendIncallMuteRegistrants.add(r); 6830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 685cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 6860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForResendIncallMute(Handler h) { 6870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mResendIncallMuteRegistrants.remove(h); 6880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaSubscriptionChanged(Handler h, int what, Object obj) { 6920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 6930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaSubscriptionChangedRegistrants.add(r); 6940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 6970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaSubscriptionChanged(Handler h) { 6980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaSubscriptionChangedRegistrants.remove(h); 6990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaPrlChanged(Handler h, int what, Object obj) { 7030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 7040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaPrlChangedRegistrants.add(r); 7050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaPrlChanged(Handler h) { 7090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCdmaPrlChangedRegistrants.remove(h); 7100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForExitEmergencyCallbackMode(Handler h, int what, Object obj) { 7140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 7150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mExitEmergencyCallbackModeRegistrants.add(r); 7160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForExitEmergencyCallbackMode(Handler h) { 7200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mExitEmergencyCallbackModeRegistrants.remove(h); 7210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 723a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 724a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForHardwareConfigChanged(Handler h, int what, Object obj) { 725a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Registrant r = new Registrant (h, what, obj); 726a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mHardwareConfigChangeRegistrants.add(r); 727a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 728a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 729a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 730a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForHardwareConfigChanged(Handler h) { 731a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mHardwareConfigChangeRegistrants.remove(h); 732a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 733a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 7340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@inheritDoc} 7360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 7370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRilConnected(Handler h, int what, Object obj) { 7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Registrant r = new Registrant (h, what, obj); 7400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRilConnectedRegistrants.add(r); 7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mRilVersion != -1) { 7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.notifyRegistrant(new AsyncResult(null, new Integer(mRilVersion), null)); 7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRilConnected(Handler h) { 7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRilConnectedRegistrants.remove(h); 7490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 751a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForSubscriptionStatusChanged(Handler h, int what, Object obj) { 752a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Registrant r = new Registrant (h, what, obj); 753a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSubscriptionStatusRegistrants.add(r); 754a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 755a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 756a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForSubscriptionStatusChanged(Handler h) { 757a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSubscriptionStatusRegistrants.remove(h); 758a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 759a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 7600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //***** Protected Methods 7610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Store new RadioState and send notification based on the changes 7630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * This function is called only by RIL.java when receiving unsolicited 7650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED 7660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * RadioState has 3 values : RADIO_OFF, RADIO_UNAVAILABLE, RADIO_ON. 7680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param newState new RadioState decoded from RIL_UNSOL_RADIO_STATE_CHANGED 7700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 7710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected void setRadioState(RadioState newState) { 7720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville RadioState oldState; 7730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville synchronized (mStateMonitor) { 7750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville oldState = mState; 7760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mState = newState; 7770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (oldState == mState) { 7790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // no state transition 7800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return; 7810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRadioStateChangedRegistrants.notifyRegistrants(); 7840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isAvailable() && !oldState.isAvailable()) { 7860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mAvailRegistrants.notifyRegistrants(); 7870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville onRadioAvailable(); 7880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (!mState.isAvailable() && oldState.isAvailable()) { 7910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mNotAvailRegistrants.notifyRegistrants(); 7920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mState.isOn() && !oldState.isOn()) { 7950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOnRegistrants.notifyRegistrants(); 7960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((!mState.isOn() || !mState.isAvailable()) 7990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville && !((!oldState.isOn() || !oldState.isAvailable())) 8000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ) { 8010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mOffOrNotAvailRegistrants.notifyRegistrants(); 8020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected void onRadioAvailable() { 8070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 8100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@inheritDoc} 8110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 8120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 8130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getLteOnCdmaMode() { 8140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.getLteOnCdmaModeStatic(); 8150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8175fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville /** 8185fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville * {@inheritDoc} 8195fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville */ 8205fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville @Override 8215fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville public void registerForCellInfoList(Handler h, int what, Object obj) { 8225fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville Registrant r = new Registrant (h, what, obj); 8235fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville mRilCellInfoListRegistrants.add(r); 8245fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville } 8255fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville @Override 8265fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville public void unregisterForCellInfoList(Handler h) { 8275fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville mRilCellInfoListRegistrants.remove(h); 8285fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville } 8295fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville 8300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 831a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForSrvccStateChanged(Handler h, int what, Object obj) { 832a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Registrant r = new Registrant (h, what, obj); 833a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 834a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSrvccStateRegistrants.add(r); 835a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 836a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 837a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 838a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForSrvccStateChanged(Handler h) { 839a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSrvccStateRegistrants.remove(h); 840a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 841a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 842a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 8430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void testingEmergencyCall() {} 8441de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville 8451de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville @Override 8461de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville public int getRilVersion() { 8471de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville return mRilVersion; 8481de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville } 849a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 8507e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scott @Override 8517e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scott public int getSupportedRadioAccessFamily() { 8527e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scott return mSupportedRaf; 8537e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scott } 8547e7d2b34010bf24a70bbf40303c7a4606c438adaStuart Scott 855a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setUiccSubscription(int slotId, int appIndex, int subId, int subStatus, 856a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Message response) { 857a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 858a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 859a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setDataAllowed(boolean allowed, Message response) { 860a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 86103586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla 86203586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla @Override 86303586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla public void requestShutdown(Message result) { 86403586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla } 8652b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8662b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8672b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void getRadioCapability(Message result) { 8682b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8692b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8702b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8712b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void setRadioCapability(RadioCapability rc, Message response) { 8722b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8732b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8742b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8752b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void registerForRadioCapabilityChanged(Handler h, int what, Object obj) { 8762b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville Registrant r = new Registrant(h, what, obj); 8772b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville mPhoneRadioCapabilityChangedRegistrants.add(r); 8782b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8792b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville 8802b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville @Override 8812b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville public void unregisterForRadioCapabilityChanged(Handler h) { 8822b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville mPhoneRadioCapabilityChangedRegistrants.remove(h); 8832b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville } 8840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 885