10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2008 The Android Open Source Project
36f2a3e1ea86ae7ae2e04eb95582e54eec7a2f864Sukanya Rajkhowa * Copyright (c) 2013, The Linux Foundation. All rights reserved.
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 Saville
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.app.ActivityManagerNative;
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Context;
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Intent;
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.LinkCapabilities;
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.LinkProperties;
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.AsyncResult;
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Handler;
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Message;
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.SystemProperties;
30cbbf6deee30d702e398939f4bb464f5e821f5e6cDianne Hackbornimport android.os.UserHandle;
31ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Savilleimport android.telephony.CellInfo;
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.CellLocation;
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.ServiceState;
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.SignalStrength;
35ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Savilleimport android.telephony.Rlog;
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.test.SimulatedRadioControl;
38d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenkaimport com.android.internal.telephony.uicc.IccCardProxy;
39d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenkaimport com.android.internal.telephony.uicc.IsimRecords;
40d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenkaimport com.android.internal.telephony.uicc.UsimServiceTable;
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;
506f2a3e1ea86ae7ae2e04eb95582e54eec7a2f864Sukanya Rajkhowa    private IccSmsInterfaceManager mIccSmsInterfaceManager;
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;
63b54cd09892e0676d719e6df00e60c77b663f993cWink Saville    private static final int EVENT_UPDATE_PHONE_OBJECT = 5;
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
65cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    private static final String LOG_TAG = "PhoneProxy";
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    //***** Class Methods
68e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka    public PhoneProxy(PhoneBase phone) {
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone = phone;
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mResetModemOnRadioTechnologyChange = SystemProperties.getBoolean(
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                TelephonyProperties.PROPERTY_RESET_ON_RADIO_TECH_CHANGE, false);
726f2a3e1ea86ae7ae2e04eb95582e54eec7a2f864Sukanya Rajkhowa        mIccSmsInterfaceManager =
736f2a3e1ea86ae7ae2e04eb95582e54eec7a2f864Sukanya Rajkhowa                new IccSmsInterfaceManager((PhoneBase) this.mActivePhone);
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mIccPhoneBookInterfaceManagerProxy = new IccPhoneBookInterfaceManagerProxy(
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                phone.getIccPhoneBookInterfaceManager());
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mPhoneSubInfoProxy = new PhoneSubInfoProxy(phone.getPhoneSubInfo());
7722d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville        mCommandsInterface = ((PhoneBase)mActivePhone).mCi;
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCommandsInterface.registerForRilConnected(this, EVENT_RIL_CONNECTED, null);
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCommandsInterface.registerForOn(this, EVENT_RADIO_ON, null);
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCommandsInterface.registerForVoiceRadioTechChanged(
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                             this, EVENT_VOICE_RADIO_TECH_CHANGED, null);
83e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka        mIccCardProxy = new IccCardProxy(phone.getContext(), mCommandsInterface);
84e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka        if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) {
85e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka            // For the purpose of IccCardProxy we only care about the technology family
86e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka            mIccCardProxy.setVoiceRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_UMTS);
87e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka        } else if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
88e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka            mIccCardProxy.setVoiceRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT);
89e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka        }
900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Override
930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void handleMessage(Message msg) {
940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        AsyncResult ar = (AsyncResult) msg.obj;
950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        switch(msg.what) {
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case EVENT_RADIO_ON:
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /* Proactively query voice radio technologies */
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mCommandsInterface.getVoiceRadioTechnology(
9922d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville                    obtainMessage(EVENT_REQUEST_VOICE_RADIO_TECH_DONE));
1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            break;
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case EVENT_RIL_CONNECTED:
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (ar.exception == null && ar.result != null) {
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                mRilVersion = (Integer) ar.result;
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            } else {
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                logd("Unexpected exception on EVENT_RIL_CONNECTED");
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                mRilVersion = -1;
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            break;
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case EVENT_VOICE_RADIO_TECH_CHANGED:
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case EVENT_REQUEST_VOICE_RADIO_TECH_DONE:
113b54cd09892e0676d719e6df00e60c77b663f993cWink Saville            String what = (msg.what == EVENT_VOICE_RADIO_TECH_CHANGED) ?
114b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                    "EVENT_VOICE_RADIO_TECH_CHANGED" : "EVENT_REQUEST_VOICE_RADIO_TECH_DONE";
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (ar.exception == null) {
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                if ((ar.result != null) && (((int[]) ar.result).length != 0)) {
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    int newVoiceTech = ((int[]) ar.result)[0];
118b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                    logd(what + ": newVoiceTech=" + newVoiceTech);
119b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                    phoneObjectUpdater(newVoiceTech);
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                } else {
121b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                    loge(what + ": has no tech!");
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            } else {
124b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                loge(what + ": exception=" + ar.exception);
1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            break;
1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
128b54cd09892e0676d719e6df00e60c77b663f993cWink Saville        case EVENT_UPDATE_PHONE_OBJECT:
129b54cd09892e0676d719e6df00e60c77b663f993cWink Saville            phoneObjectUpdater(msg.arg1);
130b54cd09892e0676d719e6df00e60c77b663f993cWink Saville            break;
131b54cd09892e0676d719e6df00e60c77b663f993cWink Saville
1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        default:
1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            loge("Error! This handler was not registered for this message type. Message: "
1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    + msg.what);
1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            break;
1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        super.handleMessage(msg);
1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static void logd(String msg) {
141ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Saville        Rlog.d(LOG_TAG, "[PhoneProxy] " + msg);
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private void loge(String msg) {
145ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Saville        Rlog.e(LOG_TAG, "[PhoneProxy] " + msg);
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
148b54cd09892e0676d719e6df00e60c77b663f993cWink Saville    private void phoneObjectUpdater(int newVoiceRadioTech) {
149b54cd09892e0676d719e6df00e60c77b663f993cWink Saville        logd("phoneObjectUpdater: newVoiceRadioTech=" + newVoiceRadioTech);
1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (mActivePhone != null) {
152b54cd09892e0676d719e6df00e60c77b663f993cWink Saville            // Check for a voice over lte replacement
153b54cd09892e0676d719e6df00e60c77b663f993cWink Saville            if ((newVoiceRadioTech == ServiceState.RIL_RADIO_TECHNOLOGY_LTE)) {
154b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                int volteReplacementRat = mActivePhone.getContext().getResources().getInteger(
155b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                        com.android.internal.R.integer.config_volte_replacement_rat);
156b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                logd("phoneObjectUpdater: volteReplacementRat=" + volteReplacementRat);
157b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                if (volteReplacementRat != ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN) {
158b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                    newVoiceRadioTech = volteReplacementRat;
159b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                }
160b54cd09892e0676d719e6df00e60c77b663f993cWink Saville            }
161b54cd09892e0676d719e6df00e60c77b663f993cWink Saville
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if(mRilVersion == 6 && getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE) {
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                /*
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                 * On v6 RIL, when LTE_ON_CDMA is TRUE, always create CDMALTEPhone
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                 * irrespective of the voice radio tech reported.
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                 */
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                if (mActivePhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
168b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                    logd("phoneObjectUpdater: LTE ON CDMA property is set. Use CDMA Phone" +
169b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                            " newVoiceRadioTech=" + newVoiceRadioTech +
170b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                            " mActivePhone=" + mActivePhone.getPhoneName());
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    return;
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                } else {
173b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                    logd("phoneObjectUpdater: LTE ON CDMA property is set. Switch to CDMALTEPhone" +
174b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                            " newVoiceRadioTech=" + newVoiceRadioTech +
175b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                            " mActivePhone=" + mActivePhone.getPhoneName());
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    newVoiceRadioTech = ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT;
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            } else {
1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                if ((ServiceState.isCdma(newVoiceRadioTech) &&
1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        mActivePhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) ||
1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        (ServiceState.isGsm(newVoiceRadioTech) &&
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                mActivePhone.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM)) {
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    // Nothing changed. Keep phone as it is.
184b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                    logd("phoneObjectUpdater: No change ignore," +
185b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                            " newVoiceRadioTech=" + newVoiceRadioTech +
186b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                            " mActivePhone=" + mActivePhone.getPhoneName());
1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    return;
1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (newVoiceRadioTech == ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN) {
1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // We need some voice phone object to be active always, so never
1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // delete the phone without anything to replace it with!
195b54cd09892e0676d719e6df00e60c77b663f993cWink Saville            logd("phoneObjectUpdater: Unknown rat ignore, "
196b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                    + " newVoiceRadioTech=Unknown. mActivePhone=" + mActivePhone.getPhoneName());
1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return;
1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        boolean oldPowerState = false; // old power state to off
2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (mResetModemOnRadioTechnologyChange) {
2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (mCommandsInterface.getRadioState().isOn()) {
2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                oldPowerState = true;
204b54cd09892e0676d719e6df00e60c77b663f993cWink Saville                logd("phoneObjectUpdater: Setting Radio Power to Off");
2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                mCommandsInterface.setRadioPower(false, null);
2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        deleteAndCreatePhone(newVoiceRadioTech);
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (mResetModemOnRadioTechnologyChange && oldPowerState) { // restore power state
212b54cd09892e0676d719e6df00e60c77b663f993cWink Saville            logd("phoneObjectUpdater: Resetting Radio");
2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mCommandsInterface.setRadioPower(oldPowerState, null);
2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Set the new interfaces in the proxy's
2176f2a3e1ea86ae7ae2e04eb95582e54eec7a2f864Sukanya Rajkhowa        mIccSmsInterfaceManager.updatePhoneObject((PhoneBase) mActivePhone);
2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mIccPhoneBookInterfaceManagerProxy.setmIccPhoneBookInterfaceManager(mActivePhone
2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                .getIccPhoneBookInterfaceManager());
22022d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville        mPhoneSubInfoProxy.setmPhoneSubInfo(mActivePhone.getPhoneSubInfo());
2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22222d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville        mCommandsInterface = ((PhoneBase)mActivePhone).mCi;
223e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka        mIccCardProxy.setVoiceRadioTech(newVoiceRadioTech);
2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Send an Intent to the PhoneApp that we had a radio technology change
2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        Intent intent = new Intent(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        intent.putExtra(PhoneConstants.PHONE_NAME_KEY, mActivePhone.getPhoneName());
229cbbf6deee30d702e398939f4bb464f5e821f5e6cDianne Hackborn        ActivityManagerNative.broadcastStickyIntent(intent, null, UserHandle.USER_ALL);
2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private void deleteAndCreatePhone(int newVoiceRadioTech) {
2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        String outgoingPhoneName = "Unknown";
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        Phone oldPhone = mActivePhone;
2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (oldPhone != null) {
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            outgoingPhoneName = ((PhoneBase) oldPhone).getPhoneName();
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        logd("Switching Voice Phone : " + outgoingPhoneName + " >>> "
2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                + (ServiceState.isGsm(newVoiceRadioTech) ? "GSM" : "CDMA"));
2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (oldPhone != null) {
2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            CallManager.getInstance().unregisterPhone(oldPhone);
2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            logd("Disposing old phone..");
2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            oldPhone.dispose();
2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Give the garbage collector a hint to start the garbage collection
2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // asap NOTE this has been disabled since radio technology change could
2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // happen during e.g. a multimedia playing and could slow the system.
2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Tests needs to be done to see the effects of the GC call here when
2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // system is busy.
2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // System.gc();
2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (ServiceState.isCdma(newVoiceRadioTech)) {
2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mActivePhone = PhoneFactory.getCdmaPhone();
2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else if (ServiceState.isGsm(newVoiceRadioTech)) {
2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mActivePhone = PhoneFactory.getGsmPhone();
2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (oldPhone != null) {
2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            oldPhone.removeReferences();
2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if(mActivePhone != null) {
2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            CallManager.getInstance().registerPhone(mActivePhone);
2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        oldPhone = null;
2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
275cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
276b54cd09892e0676d719e6df00e60c77b663f993cWink Saville    public void updatePhoneObject(int voiceRadioTech) {
277b54cd09892e0676d719e6df00e60c77b663f993cWink Saville        logd("updatePhoneObject: radioTechnology=" + voiceRadioTech);
278b54cd09892e0676d719e6df00e60c77b663f993cWink Saville        sendMessage(obtainMessage(EVENT_UPDATE_PHONE_OBJECT, voiceRadioTech, 0, null));
279b54cd09892e0676d719e6df00e60c77b663f993cWink Saville    }
280b54cd09892e0676d719e6df00e60c77b663f993cWink Saville
281b54cd09892e0676d719e6df00e60c77b663f993cWink Saville    @Override
2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public ServiceState getServiceState() {
2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getServiceState();
2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
286cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public CellLocation getCellLocation() {
2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getCellLocation();
2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
291ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville    /**
292ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville     * @return all available cell information or null if none.
293ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville     */
294ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville    @Override
295ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville    public List<CellInfo> getAllCellInfo() {
296ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville        return mActivePhone.getAllCellInfo();
297ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville    }
298ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville
2995fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    /**
3005fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * {@inheritDoc}
3015fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     */
3025fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    @Override
3035fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    public void setCellInfoListRate(int rateInMillis) {
3045fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville        mActivePhone.setCellInfoListRate(rateInMillis);
3055fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    }
3065fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville
307cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public PhoneConstants.DataState getDataConnectionState() {
3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getDataConnectionState(PhoneConstants.APN_TYPE_DEFAULT);
3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
312cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public PhoneConstants.DataState getDataConnectionState(String apnType) {
3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getDataConnectionState(apnType);
3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
317cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public DataActivityState getDataActivityState() {
3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getDataActivityState();
3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
322cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public Context getContext() {
3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getContext();
3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
327cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void disableDnsCheck(boolean b) {
3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.disableDnsCheck(b);
3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
332cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isDnsCheckDisabled() {
3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.isDnsCheckDisabled();
3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
337cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public PhoneConstants.State getState() {
3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getState();
3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
342cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getPhoneName() {
3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getPhoneName();
3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
347cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getPhoneType() {
3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getPhoneType();
3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
352cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String[] getActiveApnTypes() {
3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getActiveApnTypes();
3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
357cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getActiveApnHost(String apnType) {
3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getActiveApnHost(apnType);
3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
362cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public LinkProperties getLinkProperties(String apnType) {
3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getLinkProperties(apnType);
3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
367cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public LinkCapabilities getLinkCapabilities(String apnType) {
3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getLinkCapabilities(apnType);
3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
372cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public SignalStrength getSignalStrength() {
3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getSignalStrength();
3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
377cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForUnknownConnection(Handler h, int what, Object obj) {
3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForUnknownConnection(h, what, obj);
3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
382cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForUnknownConnection(Handler h) {
3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForUnknownConnection(h);
3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
387cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForPreciseCallStateChanged(Handler h, int what, Object obj) {
3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForPreciseCallStateChanged(h, what, obj);
3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
392cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForPreciseCallStateChanged(Handler h) {
3940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForPreciseCallStateChanged(h);
3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
397cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForNewRingingConnection(Handler h, int what, Object obj) {
3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForNewRingingConnection(h, what, obj);
4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
402cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForNewRingingConnection(Handler h) {
4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForNewRingingConnection(h);
4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
407cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForIncomingRing(Handler h, int what, Object obj) {
4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForIncomingRing(h, what, obj);
4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
412cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForIncomingRing(Handler h) {
4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForIncomingRing(h);
4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
417cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForDisconnect(Handler h, int what, Object obj) {
4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForDisconnect(h, what, obj);
4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
422cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForDisconnect(Handler h) {
4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForDisconnect(h);
4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
427cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForMmiInitiate(Handler h, int what, Object obj) {
4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForMmiInitiate(h, what, obj);
4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
432cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForMmiInitiate(Handler h) {
4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForMmiInitiate(h);
4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
437cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForMmiComplete(Handler h, int what, Object obj) {
4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForMmiComplete(h, what, obj);
4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
442cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForMmiComplete(Handler h) {
4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForMmiComplete(h);
4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
447cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public List<? extends MmiCode> getPendingMmiCodes() {
4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getPendingMmiCodes();
4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
452cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void sendUssdResponse(String ussdMessge) {
4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.sendUssdResponse(ussdMessge);
4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
457cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForServiceStateChanged(Handler h, int what, Object obj) {
4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForServiceStateChanged(h, what, obj);
4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
462cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForServiceStateChanged(Handler h) {
4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForServiceStateChanged(h);
4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
467cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForSuppServiceNotification(Handler h, int what, Object obj) {
4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForSuppServiceNotification(h, what, obj);
4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
472cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForSuppServiceNotification(Handler h) {
4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForSuppServiceNotification(h);
4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
477cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForSuppServiceFailed(Handler h, int what, Object obj) {
4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForSuppServiceFailed(h, what, obj);
4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
482cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForSuppServiceFailed(Handler h) {
4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForSuppServiceFailed(h);
4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
487cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj){
4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForInCallVoicePrivacyOn(h,what,obj);
4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
492cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForInCallVoicePrivacyOn(Handler h){
4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForInCallVoicePrivacyOn(h);
4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
497cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
4980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj){
4990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForInCallVoicePrivacyOff(h,what,obj);
5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
502cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForInCallVoicePrivacyOff(Handler h){
5040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForInCallVoicePrivacyOff(h);
5050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
507cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForCdmaOtaStatusChange(Handler h, int what, Object obj) {
5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForCdmaOtaStatusChange(h,what,obj);
5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
512cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForCdmaOtaStatusChange(Handler h) {
5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         mActivePhone.unregisterForCdmaOtaStatusChange(h);
5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
517cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForSubscriptionInfoReady(Handler h, int what, Object obj) {
5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForSubscriptionInfoReady(h, what, obj);
5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
522cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForSubscriptionInfoReady(Handler h) {
5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForSubscriptionInfoReady(h);
5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
527cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForEcmTimerReset(Handler h, int what, Object obj) {
5290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForEcmTimerReset(h,what,obj);
5300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
532cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForEcmTimerReset(Handler h) {
5340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForEcmTimerReset(h);
5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
537cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForRingbackTone(Handler h, int what, Object obj) {
5390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForRingbackTone(h,what,obj);
5400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
542cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForRingbackTone(Handler h) {
5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForRingbackTone(h);
5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
547cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForResendIncallMute(Handler h, int what, Object obj) {
5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForResendIncallMute(h,what,obj);
5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
552cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForResendIncallMute(Handler h) {
5540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForResendIncallMute(h);
5550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
557cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean getIccRecordsLoaded() {
559e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka        return mIccCardProxy.getIccRecordsLoaded();
5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
562cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public IccCard getIccCard() {
564e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka        return mIccCardProxy;
5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
567cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void acceptCall() throws CallStateException {
5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.acceptCall();
5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
572cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void rejectCall() throws CallStateException {
5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.rejectCall();
5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
577cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void switchHoldingAndActive() throws CallStateException {
5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.switchHoldingAndActive();
5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
582cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean canConference() {
5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.canConference();
5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
587cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void conference() throws CallStateException {
5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.conference();
5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
592cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void enableEnhancedVoicePrivacy(boolean enable, Message onComplete) {
5940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.enableEnhancedVoicePrivacy(enable, onComplete);
5950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
597cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
5980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getEnhancedVoicePrivacy(Message onComplete) {
5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getEnhancedVoicePrivacy(onComplete);
6000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
602cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean canTransfer() {
6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.canTransfer();
6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
607cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void explicitCallTransfer() throws CallStateException {
6090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.explicitCallTransfer();
6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
612cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void clearDisconnected() {
6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.clearDisconnected();
6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
617cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public Call getForegroundCall() {
6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getForegroundCall();
6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
622cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public Call getBackgroundCall() {
6240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getBackgroundCall();
6250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
627cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public Call getRingingCall() {
6290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getRingingCall();
6300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
632cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public Connection dial(String dialString) throws CallStateException {
6340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.dial(dialString);
6350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
637cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public Connection dial(String dialString, UUSInfo uusInfo) throws CallStateException {
6390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.dial(dialString, uusInfo);
6400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
642cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean handlePinMmi(String dialString) {
6440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.handlePinMmi(dialString);
6450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
647cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean handleInCallMmiCommands(String command) throws CallStateException {
6490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.handleInCallMmiCommands(command);
6500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
652cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void sendDtmf(char c) {
6540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.sendDtmf(c);
6550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
657cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void startDtmf(char c) {
6590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.startDtmf(c);
6600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
662cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void stopDtmf() {
6640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.stopDtmf();
6650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
667cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setRadioPower(boolean power) {
6690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setRadioPower(power);
6700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
672cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean getMessageWaitingIndicator() {
6740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getMessageWaitingIndicator();
6750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
677cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean getCallForwardingIndicator() {
6790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getCallForwardingIndicator();
6800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
682cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getLine1Number() {
6840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getLine1Number();
6850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
687cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getCdmaMin() {
6890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getCdmaMin();
6900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
692cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isMinInfoReady() {
6940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.isMinInfoReady();
6950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
697cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
6980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getCdmaPrlVersion() {
6990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getCdmaPrlVersion();
7000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
702cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getLine1AlphaTag() {
7040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getLine1AlphaTag();
7050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
707cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setLine1Number(String alphaTag, String number, Message onComplete) {
7090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setLine1Number(alphaTag, number, onComplete);
7100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
712cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getVoiceMailNumber() {
7140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getVoiceMailNumber();
7150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /** @hide */
718cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getVoiceMessageCount(){
7200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getVoiceMessageCount();
7210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
723cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getVoiceMailAlphaTag() {
7250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getVoiceMailAlphaTag();
7260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
728cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setVoiceMailNumber(String alphaTag,String voiceMailNumber,
7300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Message onComplete) {
7310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setVoiceMailNumber(alphaTag, voiceMailNumber, onComplete);
7320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
734cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getCallForwardingOption(int commandInterfaceCFReason,
7360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Message onComplete) {
7370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getCallForwardingOption(commandInterfaceCFReason,
7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                onComplete);
7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
741cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setCallForwardingOption(int commandInterfaceCFReason,
7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            int commandInterfaceCFAction, String dialingNumber,
7440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            int timerSeconds, Message onComplete) {
7450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setCallForwardingOption(commandInterfaceCFReason,
7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            commandInterfaceCFAction, dialingNumber, timerSeconds, onComplete);
7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
749cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getOutgoingCallerIdDisplay(Message onComplete) {
7510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getOutgoingCallerIdDisplay(onComplete);
7520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
754cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setOutgoingCallerIdDisplay(int commandInterfaceCLIRMode,
7560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Message onComplete) {
7570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setOutgoingCallerIdDisplay(commandInterfaceCLIRMode,
7580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                onComplete);
7590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
761cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getCallWaiting(Message onComplete) {
7630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getCallWaiting(onComplete);
7640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
766cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setCallWaiting(boolean enable, Message onComplete) {
7680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setCallWaiting(enable, onComplete);
7690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
771cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getAvailableNetworks(Message response) {
7730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getAvailableNetworks(response);
7740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
776cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setNetworkSelectionModeAutomatic(Message response) {
7780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setNetworkSelectionModeAutomatic(response);
7790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
781cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void selectNetworkManually(OperatorInfo network, Message response) {
7830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.selectNetworkManually(network, response);
7840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
786cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setPreferredNetworkType(int networkType, Message response) {
7880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setPreferredNetworkType(networkType, response);
7890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
791cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getPreferredNetworkType(Message response) {
7930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getPreferredNetworkType(response);
7940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
7950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
796cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
7970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getNeighboringCids(Message response) {
7980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getNeighboringCids(response);
7990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
801cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setOnPostDialCharacter(Handler h, int what, Object obj) {
8030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setOnPostDialCharacter(h, what, obj);
8040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
806cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setMute(boolean muted) {
8080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setMute(muted);
8090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
811cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean getMute() {
8130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getMute();
8140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
816cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setEchoSuppressionEnabled(boolean enabled) {
8180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setEchoSuppressionEnabled(enabled);
8190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
821cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void invokeOemRilRequestRaw(byte[] data, Message response) {
8230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.invokeOemRilRequestRaw(data, response);
8240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
826cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void invokeOemRilRequestStrings(String[] strings, Message response) {
8280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.invokeOemRilRequestStrings(strings, response);
8290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
831cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getDataCallList(Message response) {
8330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getDataCallList(response);
8340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
836cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void updateServiceLocation() {
8380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.updateServiceLocation();
8390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
841cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void enableLocationUpdates() {
8430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.enableLocationUpdates();
8440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
846cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void disableLocationUpdates() {
8480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.disableLocationUpdates();
8490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
851cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setUnitTestMode(boolean f) {
8530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setUnitTestMode(f);
8540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
856cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean getUnitTestMode() {
8580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getUnitTestMode();
8590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
861cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setBandMode(int bandMode, Message response) {
8630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setBandMode(bandMode, response);
8640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
866cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void queryAvailableBandMode(Message response) {
8680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.queryAvailableBandMode(response);
8690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
871cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean getDataRoamingEnabled() {
8730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getDataRoamingEnabled();
8740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
876cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setDataRoamingEnabled(boolean enable) {
8780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setDataRoamingEnabled(enable);
8790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
881cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void queryCdmaRoamingPreference(Message response) {
8830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.queryCdmaRoamingPreference(response);
8840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
886cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setCdmaRoamingPreference(int cdmaRoamingType, Message response) {
8880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setCdmaRoamingPreference(cdmaRoamingType, response);
8890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
891cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setCdmaSubscription(int cdmaSubscriptionType, Message response) {
8930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setCdmaSubscription(cdmaSubscriptionType, response);
8940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
8950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
896cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
8970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public SimulatedRadioControl getSimulatedRadioControl() {
8980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getSimulatedRadioControl();
8990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
901cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int enableApnType(String type) {
9030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.enableApnType(type);
9040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
906cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int disableApnType(String type) {
9080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.disableApnType(type);
9090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
911cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isDataConnectivityPossible() {
9130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.isDataConnectivityPossible(PhoneConstants.APN_TYPE_DEFAULT);
9140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
916cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isDataConnectivityPossible(String apnType) {
9180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.isDataConnectivityPossible(apnType);
9190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
921cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getDeviceId() {
9230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getDeviceId();
9240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
926cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getDeviceSvn() {
9280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getDeviceSvn();
9290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
931cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getSubscriberId() {
9330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getSubscriberId();
9340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
936cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9370e4abef0d7e978d4c3dea5199f451a1c69158d03Sungmin Choi    public String getGroupIdLevel1() {
9380e4abef0d7e978d4c3dea5199f451a1c69158d03Sungmin Choi        return mActivePhone.getGroupIdLevel1();
9390e4abef0d7e978d4c3dea5199f451a1c69158d03Sungmin Choi    }
9400e4abef0d7e978d4c3dea5199f451a1c69158d03Sungmin Choi
9410e4abef0d7e978d4c3dea5199f451a1c69158d03Sungmin Choi    @Override
9420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getIccSerialNumber() {
9430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getIccSerialNumber();
9440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
946cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getEsn() {
9480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getEsn();
9490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
951cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getMeid() {
9530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getMeid();
9540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
956cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getMsisdn() {
9580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getMsisdn();
9590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
961cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getImei() {
9630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getImei();
9640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
966cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public PhoneSubInfo getPhoneSubInfo(){
9680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getPhoneSubInfo();
9690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
971cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager(){
9730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getIccPhoneBookInterfaceManager();
9740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
976cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setTTYMode(int ttyMode, Message onComplete) {
9780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setTTYMode(ttyMode, onComplete);
9790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
981cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void queryTTYMode(Message onComplete) {
9830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.queryTTYMode(onComplete);
9840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
986cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void activateCellBroadcastSms(int activate, Message response) {
9880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.activateCellBroadcastSms(activate, response);
9890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
991cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getCellBroadcastSmsConfig(Message response) {
9930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getCellBroadcastSmsConfig(response);
9940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
996cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
9970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response) {
9980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setCellBroadcastSmsConfig(configValuesArray, response);
9990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1001cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifyDataActivity() {
10030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         mActivePhone.notifyDataActivity();
10040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1006cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getSmscAddress(Message result) {
10080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.getSmscAddress(result);
10090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1011cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setSmscAddress(String address, Message result) {
10130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setSmscAddress(address, result);
10140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1016cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getCdmaEriIconIndex() {
10180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getCdmaEriIconIndex();
10190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1021cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getCdmaEriText() {
10230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getCdmaEriText();
10240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1026cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getCdmaEriIconMode() {
10280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getCdmaEriIconMode();
10290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public Phone getActivePhone() {
10320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone;
10330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1035cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void sendBurstDtmf(String dtmfString, int on, int off, Message onComplete){
10370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.sendBurstDtmf(dtmfString, on, off, onComplete);
10380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1040cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void exitEmergencyCallbackMode(){
10420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.exitEmergencyCallbackMode();
10430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1045cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean needsOtaServiceProvisioning(){
10470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.needsOtaServiceProvisioning();
10480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1050cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isOtaSpNumber(String dialStr){
10520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.isOtaSpNumber(dialStr);
10530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1055cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForCallWaiting(Handler h, int what, Object obj){
10570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForCallWaiting(h,what,obj);
10580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1060cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForCallWaiting(Handler h){
10620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForCallWaiting(h);
10630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1065cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForSignalInfo(Handler h, int what, Object obj) {
10670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForSignalInfo(h,what,obj);
10680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1070cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForSignalInfo(Handler h) {
10720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForSignalInfo(h);
10730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1075cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForDisplayInfo(Handler h, int what, Object obj) {
10770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForDisplayInfo(h,what,obj);
10780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1080cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForDisplayInfo(Handler h) {
10820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForDisplayInfo(h);
10830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1085cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForNumberInfo(Handler h, int what, Object obj) {
10870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForNumberInfo(h, what, obj);
10880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1090cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForNumberInfo(Handler h) {
10920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForNumberInfo(h);
10930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1095cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
10960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForRedirectedNumberInfo(Handler h, int what, Object obj) {
10970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForRedirectedNumberInfo(h, what, obj);
10980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1100cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForRedirectedNumberInfo(Handler h) {
11020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForRedirectedNumberInfo(h);
11030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1105cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForLineControlInfo(Handler h, int what, Object obj) {
11070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForLineControlInfo( h, what, obj);
11080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1110cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForLineControlInfo(Handler h) {
11120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForLineControlInfo(h);
11130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1115cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerFoT53ClirlInfo(Handler h, int what, Object obj) {
11170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerFoT53ClirlInfo(h, what, obj);
11180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1120cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForT53ClirInfo(Handler h) {
11220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForT53ClirInfo(h);
11230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1125cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void registerForT53AudioControlInfo(Handler h, int what, Object obj) {
11270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.registerForT53AudioControlInfo( h, what, obj);
11280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1130cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unregisterForT53AudioControlInfo(Handler h) {
11320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unregisterForT53AudioControlInfo(h);
11330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1135cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setOnEcbModeExitResponse(Handler h, int what, Object obj){
11370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setOnEcbModeExitResponse(h,what,obj);
11380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1140cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void unsetOnEcbModeExitResponse(Handler h){
11420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.unsetOnEcbModeExitResponse(h);
11430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1145cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isCspPlmnEnabled() {
11470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.isCspPlmnEnabled();
11480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1150cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public IsimRecords getIsimRecords() {
11520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getIsimRecords();
11530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1155cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void requestIsimAuthentication(String nonce, Message response) {
11570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.requestIsimAuthentication(nonce, response);
11580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * {@inheritDoc}
11620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Override
11640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getLteOnCdmaMode() {
11650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getLteOnCdmaMode();
11660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Override
11690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setVoiceMessageWaiting(int line, int countWaiting) {
11700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone.setVoiceMessageWaiting(line, countWaiting);
11710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Override
11740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public UsimServiceTable getUsimServiceTable() {
11750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mActivePhone.getUsimServiceTable();
11760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1178cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void dispose() {
11800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCommandsInterface.unregisterForOn(this);
11810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCommandsInterface.unregisterForVoiceRadioTechChanged(this);
11820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCommandsInterface.unregisterForRilConnected(this);
11830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1185cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
11860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void removeReferences() {
11870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mActivePhone = null;
11880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCommandsInterface = null;
11890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
1191