10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2008 The Android Open Source Project 30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License. 60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at 70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software 110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and 140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License. 150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony; 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.app.ActivityManagerNative; 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Context; 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Intent; 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.LinkCapabilities; 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.LinkProperties; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.AsyncResult; 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Handler; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Message; 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.SystemProperties; 29cbbf6deee30d702e398939f4bb464f5e821f5e6cDianne Hackbornimport android.os.UserHandle; 30ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Savilleimport android.telephony.CellInfo; 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.CellLocation; 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.ServiceState; 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.SignalStrength; 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.util.Log; 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.cdma.CDMAPhone; 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.gsm.GSMPhone; 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.gsm.UsimServiceTable; 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.ims.IsimRecords; 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.test.SimulatedRadioControl; 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.CallManager; 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.List; 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class PhoneProxy extends Handler implements Phone { 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public final static Object lockForRadioTechnologyChange = new Object(); 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private Phone mActivePhone; 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private CommandsInterface mCommandsInterface; 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private IccSmsInterfaceManagerProxy mIccSmsInterfaceManagerProxy; 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private IccPhoneBookInterfaceManagerProxy mIccPhoneBookInterfaceManagerProxy; 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private PhoneSubInfoProxy mPhoneSubInfoProxy; 53e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka private IccCardProxy mIccCardProxy; 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private boolean mResetModemOnRadioTechnologyChange = false; 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private int mRilVersion; 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final int EVENT_VOICE_RADIO_TECH_CHANGED = 1; 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final int EVENT_RADIO_ON = 2; 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final int EVENT_REQUEST_VOICE_RADIO_TECH_DONE = 3; 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final int EVENT_RIL_CONNECTED = 4; 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final String LOG_TAG = "PHONE"; 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //***** Class Methods 67e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka public PhoneProxy(PhoneBase phone) { 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone = phone; 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mResetModemOnRadioTechnologyChange = SystemProperties.getBoolean( 700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville TelephonyProperties.PROPERTY_RESET_ON_RADIO_TECH_CHANGE, false); 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccSmsInterfaceManagerProxy = new IccSmsInterfaceManagerProxy( 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville phone.getIccSmsInterfaceManager()); 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccPhoneBookInterfaceManagerProxy = new IccPhoneBookInterfaceManagerProxy( 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville phone.getIccPhoneBookInterfaceManager()); 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mPhoneSubInfoProxy = new PhoneSubInfoProxy(phone.getPhoneSubInfo()); 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface = ((PhoneBase)mActivePhone).mCM; 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface.registerForRilConnected(this, EVENT_RIL_CONNECTED, null); 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface.registerForOn(this, EVENT_RADIO_ON, null); 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface.registerForVoiceRadioTechChanged( 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this, EVENT_VOICE_RADIO_TECH_CHANGED, null); 82e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka mIccCardProxy = new IccCardProxy(phone.getContext(), mCommandsInterface); 83e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) { 84e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka // For the purpose of IccCardProxy we only care about the technology family 85e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka mIccCardProxy.setVoiceRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_UMTS); 86e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } else if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) { 87e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka mIccCardProxy.setVoiceRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT); 88e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void handleMessage(Message msg) { 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville AsyncResult ar = (AsyncResult) msg.obj; 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch(msg.what) { 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EVENT_RADIO_ON: 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /* Proactively query voice radio technologies */ 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface.getVoiceRadioTechnology( 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.obtainMessage(EVENT_REQUEST_VOICE_RADIO_TECH_DONE)); 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EVENT_RIL_CONNECTED: 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (ar.exception == null && ar.result != null) { 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRilVersion = (Integer) ar.result; 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville logd("Unexpected exception on EVENT_RIL_CONNECTED"); 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRilVersion = -1; 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EVENT_VOICE_RADIO_TECH_CHANGED: 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EVENT_REQUEST_VOICE_RADIO_TECH_DONE: 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (ar.exception == null) { 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((ar.result != null) && (((int[]) ar.result).length != 0)) { 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int newVoiceTech = ((int[]) ar.result)[0]; 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville updatePhoneObject(newVoiceTech); 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville loge("Voice Radio Technology event " + msg.what + " has no tech!"); 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville loge("Voice Radio Technology event " + msg.what + " exception!" + ar.exception); 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville loge("Error! This handler was not registered for this message type. Message: " 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + msg.what); 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville super.handleMessage(msg); 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static void logd(String msg) { 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Log.d(LOG_TAG, "[PhoneProxy] " + msg); 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void logw(String msg) { 1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Log.w(LOG_TAG, "[PhoneProxy] " + msg); 1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void loge(String msg) { 1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Log.e(LOG_TAG, "[PhoneProxy] " + msg); 1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void updatePhoneObject(int newVoiceRadioTech) { 1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mActivePhone != null) { 1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if(mRilVersion == 6 && getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE) { 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /* 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * On v6 RIL, when LTE_ON_CDMA is TRUE, always create CDMALTEPhone 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * irrespective of the voice radio tech reported. 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mActivePhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) { 1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville logd("LTE ON CDMA property is set. Use CDMA Phone" + 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville " newVoiceRadioTech = " + newVoiceRadioTech + 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville " Active Phone = " + mActivePhone.getPhoneName()); 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return; 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville logd("LTE ON CDMA property is set. Switch to CDMALTEPhone" + 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville " newVoiceRadioTech = " + newVoiceRadioTech + 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville " Active Phone = " + mActivePhone.getPhoneName()); 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville newVoiceRadioTech = ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT; 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((ServiceState.isCdma(newVoiceRadioTech) && 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) || 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville (ServiceState.isGsm(newVoiceRadioTech) && 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM)) { 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Nothing changed. Keep phone as it is. 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville logd("Ignoring voice radio technology changed message." + 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville " newVoiceRadioTech = " + newVoiceRadioTech + 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville " Active Phone = " + mActivePhone.getPhoneName()); 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return; 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (newVoiceRadioTech == ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN) { 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // We need some voice phone object to be active always, so never 1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // delete the phone without anything to replace it with! 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville logd("Ignoring voice radio technology changed message. newVoiceRadioTech = Unknown." 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + " Active Phone = " + mActivePhone.getPhoneName()); 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return; 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean oldPowerState = false; // old power state to off 1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mResetModemOnRadioTechnologyChange) { 1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mCommandsInterface.getRadioState().isOn()) { 1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville oldPowerState = true; 1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville logd("Setting Radio Power to Off"); 1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface.setRadioPower(false, null); 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville deleteAndCreatePhone(newVoiceRadioTech); 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mResetModemOnRadioTechnologyChange && oldPowerState) { // restore power state 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville logd("Resetting Radio"); 1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface.setRadioPower(oldPowerState, null); 2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Set the new interfaces in the proxy's 2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccSmsInterfaceManagerProxy.setmIccSmsInterfaceManager( 2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getIccSmsInterfaceManager()); 2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mIccPhoneBookInterfaceManagerProxy.setmIccPhoneBookInterfaceManager(mActivePhone 2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville .getIccPhoneBookInterfaceManager()); 2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mPhoneSubInfoProxy.setmPhoneSubInfo(this.mActivePhone.getPhoneSubInfo()); 2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface = ((PhoneBase)mActivePhone).mCM; 210e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka mIccCardProxy.setVoiceRadioTech(newVoiceRadioTech); 2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Send an Intent to the PhoneApp that we had a radio technology change 2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Intent intent = new Intent(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED); 2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING); 2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville intent.putExtra(PhoneConstants.PHONE_NAME_KEY, mActivePhone.getPhoneName()); 216cbbf6deee30d702e398939f4bb464f5e821f5e6cDianne Hackborn ActivityManagerNative.broadcastStickyIntent(intent, null, UserHandle.USER_ALL); 2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void deleteAndCreatePhone(int newVoiceRadioTech) { 2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String outgoingPhoneName = "Unknown"; 2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Phone oldPhone = mActivePhone; 2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (oldPhone != null) { 2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville outgoingPhoneName = ((PhoneBase) oldPhone).getPhoneName(); 2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville logd("Switching Voice Phone : " + outgoingPhoneName + " >>> " 2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + (ServiceState.isGsm(newVoiceRadioTech) ? "GSM" : "CDMA")); 2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (oldPhone != null) { 2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CallManager.getInstance().unregisterPhone(oldPhone); 2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville logd("Disposing old phone.."); 2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville oldPhone.dispose(); 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Give the garbage collector a hint to start the garbage collection 2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // asap NOTE this has been disabled since radio technology change could 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // happen during e.g. a multimedia playing and could slow the system. 2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Tests needs to be done to see the effects of the GC call here when 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system is busy. 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // System.gc(); 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (ServiceState.isCdma(newVoiceRadioTech)) { 2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone = PhoneFactory.getCdmaPhone(); 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else if (ServiceState.isGsm(newVoiceRadioTech)) { 2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone = PhoneFactory.getGsmPhone(); 2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (oldPhone != null) { 2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville oldPhone.removeReferences(); 2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if(mActivePhone != null) { 2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CallManager.getInstance().registerPhone(mActivePhone); 2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville oldPhone = null; 2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public ServiceState getServiceState() { 2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getServiceState(); 2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public CellLocation getCellLocation() { 2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getCellLocation(); 2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 270ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville /** 271ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville * @return all available cell information or null if none. 272ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville */ 273ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville @Override 274ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville public List<CellInfo> getAllCellInfo() { 275ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville return mActivePhone.getAllCellInfo(); 276ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville } 277ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public PhoneConstants.DataState getDataConnectionState() { 2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getDataConnectionState(PhoneConstants.APN_TYPE_DEFAULT); 2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public PhoneConstants.DataState getDataConnectionState(String apnType) { 2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getDataConnectionState(apnType); 2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public DataActivityState getDataActivityState() { 2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getDataActivityState(); 2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Context getContext() { 2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getContext(); 2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void disableDnsCheck(boolean b) { 2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.disableDnsCheck(b); 2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isDnsCheckDisabled() { 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.isDnsCheckDisabled(); 3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public PhoneConstants.State getState() { 3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getState(); 3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getPhoneName() { 3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getPhoneName(); 3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getPhoneType() { 3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getPhoneType(); 3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String[] getActiveApnTypes() { 3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getActiveApnTypes(); 3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getActiveApnHost(String apnType) { 3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getActiveApnHost(apnType); 3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public LinkProperties getLinkProperties(String apnType) { 3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getLinkProperties(apnType); 3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public LinkCapabilities getLinkCapabilities(String apnType) { 3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getLinkCapabilities(apnType); 3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public SignalStrength getSignalStrength() { 3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getSignalStrength(); 3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForUnknownConnection(Handler h, int what, Object obj) { 3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForUnknownConnection(h, what, obj); 3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForUnknownConnection(Handler h) { 3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForUnknownConnection(h); 3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForPreciseCallStateChanged(Handler h, int what, Object obj) { 3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForPreciseCallStateChanged(h, what, obj); 3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForPreciseCallStateChanged(Handler h) { 3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForPreciseCallStateChanged(h); 3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForNewRingingConnection(Handler h, int what, Object obj) { 3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForNewRingingConnection(h, what, obj); 3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForNewRingingConnection(Handler h) { 3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForNewRingingConnection(h); 3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForIncomingRing(Handler h, int what, Object obj) { 3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForIncomingRing(h, what, obj); 3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForIncomingRing(Handler h) { 3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForIncomingRing(h); 3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForDisconnect(Handler h, int what, Object obj) { 3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForDisconnect(h, what, obj); 3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForDisconnect(Handler h) { 3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForDisconnect(h); 3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForMmiInitiate(Handler h, int what, Object obj) { 3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForMmiInitiate(h, what, obj); 3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForMmiInitiate(Handler h) { 3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForMmiInitiate(h); 3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForMmiComplete(Handler h, int what, Object obj) { 3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForMmiComplete(h, what, obj); 3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForMmiComplete(Handler h) { 3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForMmiComplete(h); 3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public List<? extends MmiCode> getPendingMmiCodes() { 3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getPendingMmiCodes(); 3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void sendUssdResponse(String ussdMessge) { 3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.sendUssdResponse(ussdMessge); 3960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForServiceStateChanged(Handler h, int what, Object obj) { 3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForServiceStateChanged(h, what, obj); 4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForServiceStateChanged(Handler h) { 4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForServiceStateChanged(h); 4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForSuppServiceNotification(Handler h, int what, Object obj) { 4070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForSuppServiceNotification(h, what, obj); 4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForSuppServiceNotification(Handler h) { 4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForSuppServiceNotification(h); 4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForSuppServiceFailed(Handler h, int what, Object obj) { 4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForSuppServiceFailed(h, what, obj); 4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForSuppServiceFailed(Handler h) { 4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForSuppServiceFailed(h); 4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj){ 4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForInCallVoicePrivacyOn(h,what,obj); 4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForInCallVoicePrivacyOn(Handler h){ 4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForInCallVoicePrivacyOn(h); 4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj){ 4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForInCallVoicePrivacyOff(h,what,obj); 4320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForInCallVoicePrivacyOff(Handler h){ 4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForInCallVoicePrivacyOff(h); 4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCdmaOtaStatusChange(Handler h, int what, Object obj) { 4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForCdmaOtaStatusChange(h,what,obj); 4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCdmaOtaStatusChange(Handler h) { 4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForCdmaOtaStatusChange(h); 4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForSubscriptionInfoReady(Handler h, int what, Object obj) { 4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForSubscriptionInfoReady(h, what, obj); 4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForSubscriptionInfoReady(Handler h) { 4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForSubscriptionInfoReady(h); 4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForEcmTimerReset(Handler h, int what, Object obj) { 4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForEcmTimerReset(h,what,obj); 4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForEcmTimerReset(Handler h) { 4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForEcmTimerReset(h); 4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRingbackTone(Handler h, int what, Object obj) { 4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForRingbackTone(h,what,obj); 4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRingbackTone(Handler h) { 4670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForRingbackTone(h); 4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForResendIncallMute(Handler h, int what, Object obj) { 4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForResendIncallMute(h,what,obj); 4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForResendIncallMute(Handler h) { 4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForResendIncallMute(h); 4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean getIccRecordsLoaded() { 479e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka return mIccCardProxy.getIccRecordsLoaded(); 4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public IccCard getIccCard() { 483e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka return mIccCardProxy; 4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void acceptCall() throws CallStateException { 4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.acceptCall(); 4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void rejectCall() throws CallStateException { 4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.rejectCall(); 4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void switchHoldingAndActive() throws CallStateException { 4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.switchHoldingAndActive(); 4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean canConference() { 4990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.canConference(); 5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void conference() throws CallStateException { 5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.conference(); 5040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void enableEnhancedVoicePrivacy(boolean enable, Message onComplete) { 5070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.enableEnhancedVoicePrivacy(enable, onComplete); 5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getEnhancedVoicePrivacy(Message onComplete) { 5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getEnhancedVoicePrivacy(onComplete); 5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean canTransfer() { 5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.canTransfer(); 5160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void explicitCallTransfer() throws CallStateException { 5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.explicitCallTransfer(); 5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void clearDisconnected() { 5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.clearDisconnected(); 5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Call getForegroundCall() { 5270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getForegroundCall(); 5280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Call getBackgroundCall() { 5310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getBackgroundCall(); 5320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Call getRingingCall() { 5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getRingingCall(); 5360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Connection dial(String dialString) throws CallStateException { 5390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.dial(dialString); 5400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Connection dial(String dialString, UUSInfo uusInfo) throws CallStateException { 5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.dial(dialString, uusInfo); 5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean handlePinMmi(String dialString) { 5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.handlePinMmi(dialString); 5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean handleInCallMmiCommands(String command) throws CallStateException { 5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.handleInCallMmiCommands(command); 5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void sendDtmf(char c) { 5550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.sendDtmf(c); 5560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void startDtmf(char c) { 5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.startDtmf(c); 5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void stopDtmf() { 5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.stopDtmf(); 5640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setRadioPower(boolean power) { 5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setRadioPower(power); 5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean getMessageWaitingIndicator() { 5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getMessageWaitingIndicator(); 5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean getCallForwardingIndicator() { 5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getCallForwardingIndicator(); 5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getLine1Number() { 5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getLine1Number(); 5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getCdmaMin() { 5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getCdmaMin(); 5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isMinInfoReady() { 5870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.isMinInfoReady(); 5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getCdmaPrlVersion() { 5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getCdmaPrlVersion(); 5920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getLine1AlphaTag() { 5950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getLine1AlphaTag(); 5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setLine1Number(String alphaTag, String number, Message onComplete) { 5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setLine1Number(alphaTag, number, onComplete); 6000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getVoiceMailNumber() { 6030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getVoiceMailNumber(); 6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** @hide */ 6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getVoiceMessageCount(){ 6080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getVoiceMessageCount(); 6090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getVoiceMailAlphaTag() { 6120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getVoiceMailAlphaTag(); 6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setVoiceMailNumber(String alphaTag,String voiceMailNumber, 6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message onComplete) { 6170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setVoiceMailNumber(alphaTag, voiceMailNumber, onComplete); 6180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getCallForwardingOption(int commandInterfaceCFReason, 6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message onComplete) { 6220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getCallForwardingOption(commandInterfaceCFReason, 6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville onComplete); 6240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setCallForwardingOption(int commandInterfaceCFReason, 6270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int commandInterfaceCFAction, String dialingNumber, 6280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int timerSeconds, Message onComplete) { 6290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setCallForwardingOption(commandInterfaceCFReason, 6300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville commandInterfaceCFAction, dialingNumber, timerSeconds, onComplete); 6310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getOutgoingCallerIdDisplay(Message onComplete) { 6340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getOutgoingCallerIdDisplay(onComplete); 6350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOutgoingCallerIdDisplay(int commandInterfaceCLIRMode, 6380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message onComplete) { 6390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setOutgoingCallerIdDisplay(commandInterfaceCLIRMode, 6400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville onComplete); 6410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getCallWaiting(Message onComplete) { 6440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getCallWaiting(onComplete); 6450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setCallWaiting(boolean enable, Message onComplete) { 6480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setCallWaiting(enable, onComplete); 6490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getAvailableNetworks(Message response) { 6520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getAvailableNetworks(response); 6530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setNetworkSelectionModeAutomatic(Message response) { 6560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setNetworkSelectionModeAutomatic(response); 6570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void selectNetworkManually(OperatorInfo network, Message response) { 6600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.selectNetworkManually(network, response); 6610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setPreferredNetworkType(int networkType, Message response) { 6640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setPreferredNetworkType(networkType, response); 6650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getPreferredNetworkType(Message response) { 6680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getPreferredNetworkType(response); 6690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getNeighboringCids(Message response) { 6720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getNeighboringCids(response); 6730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnPostDialCharacter(Handler h, int what, Object obj) { 6760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setOnPostDialCharacter(h, what, obj); 6770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setMute(boolean muted) { 6800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setMute(muted); 6810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean getMute() { 6840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getMute(); 6850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setEchoSuppressionEnabled(boolean enabled) { 6880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setEchoSuppressionEnabled(enabled); 6890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void invokeOemRilRequestRaw(byte[] data, Message response) { 6920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.invokeOemRilRequestRaw(data, response); 6930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void invokeOemRilRequestStrings(String[] strings, Message response) { 6960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.invokeOemRilRequestStrings(strings, response); 6970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getDataCallList(Message response) { 7000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getDataCallList(response); 7010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void updateServiceLocation() { 7040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.updateServiceLocation(); 7050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void enableLocationUpdates() { 7080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.enableLocationUpdates(); 7090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void disableLocationUpdates() { 7120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.disableLocationUpdates(); 7130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setUnitTestMode(boolean f) { 7160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setUnitTestMode(f); 7170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean getUnitTestMode() { 7200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getUnitTestMode(); 7210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setBandMode(int bandMode, Message response) { 7240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setBandMode(bandMode, response); 7250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void queryAvailableBandMode(Message response) { 7280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.queryAvailableBandMode(response); 7290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean getDataRoamingEnabled() { 7320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getDataRoamingEnabled(); 7330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setDataRoamingEnabled(boolean enable) { 7360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setDataRoamingEnabled(enable); 7370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void queryCdmaRoamingPreference(Message response) { 7400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.queryCdmaRoamingPreference(response); 7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setCdmaRoamingPreference(int cdmaRoamingType, Message response) { 7440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setCdmaRoamingPreference(cdmaRoamingType, response); 7450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setCdmaSubscription(int cdmaSubscriptionType, Message response) { 7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setCdmaSubscription(cdmaSubscriptionType, response); 7490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public SimulatedRadioControl getSimulatedRadioControl() { 7520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getSimulatedRadioControl(); 7530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int enableApnType(String type) { 7560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.enableApnType(type); 7570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int disableApnType(String type) { 7600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.disableApnType(type); 7610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isDataConnectivityPossible() { 7640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.isDataConnectivityPossible(PhoneConstants.APN_TYPE_DEFAULT); 7650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isDataConnectivityPossible(String apnType) { 7680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.isDataConnectivityPossible(apnType); 7690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getDeviceId() { 7720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getDeviceId(); 7730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getDeviceSvn() { 7760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getDeviceSvn(); 7770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getSubscriberId() { 7800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getSubscriberId(); 7810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getIccSerialNumber() { 7840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getIccSerialNumber(); 7850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getEsn() { 7880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getEsn(); 7890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getMeid() { 7920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getMeid(); 7930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getMsisdn() { 7960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getMsisdn(); 7970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 7980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getImei() { 8000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getImei(); 8010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public PhoneSubInfo getPhoneSubInfo(){ 8040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getPhoneSubInfo(); 8050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public IccSmsInterfaceManager getIccSmsInterfaceManager(){ 8080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getIccSmsInterfaceManager(); 8090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager(){ 8120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getIccPhoneBookInterfaceManager(); 8130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setTTYMode(int ttyMode, Message onComplete) { 8160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setTTYMode(ttyMode, onComplete); 8170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void queryTTYMode(Message onComplete) { 8200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.queryTTYMode(onComplete); 8210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void activateCellBroadcastSms(int activate, Message response) { 8240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.activateCellBroadcastSms(activate, response); 8250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getCellBroadcastSmsConfig(Message response) { 8280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getCellBroadcastSmsConfig(response); 8290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response) { 8320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setCellBroadcastSmsConfig(configValuesArray, response); 8330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyDataActivity() { 8360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.notifyDataActivity(); 8370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void getSmscAddress(Message result) { 8400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.getSmscAddress(result); 8410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setSmscAddress(String address, Message result) { 8440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setSmscAddress(address, result); 8450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getCdmaEriIconIndex() { 8480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getCdmaEriIconIndex(); 8490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getCdmaEriText() { 8520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getCdmaEriText(); 8530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getCdmaEriIconMode() { 8560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getCdmaEriIconMode(); 8570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Phone getActivePhone() { 8600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone; 8610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void sendBurstDtmf(String dtmfString, int on, int off, Message onComplete){ 8640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.sendBurstDtmf(dtmfString, on, off, onComplete); 8650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void exitEmergencyCallbackMode(){ 8680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.exitEmergencyCallbackMode(); 8690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean needsOtaServiceProvisioning(){ 8720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.needsOtaServiceProvisioning(); 8730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isOtaSpNumber(String dialStr){ 8760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.isOtaSpNumber(dialStr); 8770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForCallWaiting(Handler h, int what, Object obj){ 8800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForCallWaiting(h,what,obj); 8810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForCallWaiting(Handler h){ 8840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForCallWaiting(h); 8850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForSignalInfo(Handler h, int what, Object obj) { 8880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForSignalInfo(h,what,obj); 8890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForSignalInfo(Handler h) { 8920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForSignalInfo(h); 8930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForDisplayInfo(Handler h, int what, Object obj) { 8960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForDisplayInfo(h,what,obj); 8970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 8980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForDisplayInfo(Handler h) { 9000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForDisplayInfo(h); 9010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForNumberInfo(Handler h, int what, Object obj) { 9040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForNumberInfo(h, what, obj); 9050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForNumberInfo(Handler h) { 9080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForNumberInfo(h); 9090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForRedirectedNumberInfo(Handler h, int what, Object obj) { 9120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForRedirectedNumberInfo(h, what, obj); 9130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForRedirectedNumberInfo(Handler h) { 9160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForRedirectedNumberInfo(h); 9170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForLineControlInfo(Handler h, int what, Object obj) { 9200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForLineControlInfo( h, what, obj); 9210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForLineControlInfo(Handler h) { 9240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForLineControlInfo(h); 9250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerFoT53ClirlInfo(Handler h, int what, Object obj) { 9280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerFoT53ClirlInfo(h, what, obj); 9290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForT53ClirInfo(Handler h) { 9320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForT53ClirInfo(h); 9330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void registerForT53AudioControlInfo(Handler h, int what, Object obj) { 9360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.registerForT53AudioControlInfo( h, what, obj); 9370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unregisterForT53AudioControlInfo(Handler h) { 9400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unregisterForT53AudioControlInfo(h); 9410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setOnEcbModeExitResponse(Handler h, int what, Object obj){ 9440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setOnEcbModeExitResponse(h,what,obj); 9450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void unsetOnEcbModeExitResponse(Handler h){ 9480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.unsetOnEcbModeExitResponse(h); 9490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isCspPlmnEnabled() { 9520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.isCspPlmnEnabled(); 9530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public IsimRecords getIsimRecords() { 9560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getIsimRecords(); 9570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void requestIsimAuthentication(String nonce, Message response) { 9600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.requestIsimAuthentication(nonce, response); 9610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 9640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@inheritDoc} 9650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 9660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 9670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getLteOnCdmaMode() { 9680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getLteOnCdmaMode(); 9690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 9720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setVoiceMessageWaiting(int line, int countWaiting) { 9730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone.setVoiceMessageWaiting(line, countWaiting); 9740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 9770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public UsimServiceTable getUsimServiceTable() { 9780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mActivePhone.getUsimServiceTable(); 9790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void dispose() { 9820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface.unregisterForOn(this); 9830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface.unregisterForVoiceRadioTechChanged(this); 9840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface.unregisterForRilConnected(this); 9850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void removeReferences() { 9880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mActivePhone = null; 9890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCommandsInterface = null; 9900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 992