1767a662ecde33c3979bf02b793d392aca0403162Wink Saville/*
2767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Copyright (C) 2008 The Android Open Source Project
3767a662ecde33c3979bf02b793d392aca0403162Wink Saville *
4767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
5767a662ecde33c3979bf02b793d392aca0403162Wink Saville * you may not use this file except in compliance with the License.
6767a662ecde33c3979bf02b793d392aca0403162Wink Saville * You may obtain a copy of the License at
7767a662ecde33c3979bf02b793d392aca0403162Wink Saville *
8767a662ecde33c3979bf02b793d392aca0403162Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
9767a662ecde33c3979bf02b793d392aca0403162Wink Saville *
10767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Unless required by applicable law or agreed to in writing, software
11767a662ecde33c3979bf02b793d392aca0403162Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
12767a662ecde33c3979bf02b793d392aca0403162Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13767a662ecde33c3979bf02b793d392aca0403162Wink Saville * See the License for the specific language governing permissions and
14767a662ecde33c3979bf02b793d392aca0403162Wink Saville * limitations under the License.
15767a662ecde33c3979bf02b793d392aca0403162Wink Saville */
16767a662ecde33c3979bf02b793d392aca0403162Wink Saville
17767a662ecde33c3979bf02b793d392aca0403162Wink Savillepackage com.android.internal.telephony;
18767a662ecde33c3979bf02b793d392aca0403162Wink Saville
19767a662ecde33c3979bf02b793d392aca0403162Wink Saville
20767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.app.ActivityManagerNative;
21767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.content.Context;
22767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.content.Intent;
23767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.content.SharedPreferences;
24767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.os.Handler;
25767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.os.Message;
26d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Savilleimport android.os.SystemProperties;
27767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.preference.PreferenceManager;
28767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.telephony.CellLocation;
291c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganeshimport android.telephony.PhoneStateListener;
30767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.telephony.ServiceState;
31e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport android.telephony.SignalStrength;
32767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.util.Log;
33767a662ecde33c3979bf02b793d392aca0403162Wink Saville
34767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport com.android.internal.telephony.cdma.CDMAPhone;
35767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport com.android.internal.telephony.gsm.GSMPhone;
36767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport com.android.internal.telephony.gsm.NetworkInfo;
3702722fbd77fa22f60ed3778b806b1e8f176b88c1Wink Savilleimport com.android.internal.telephony.gsm.GsmDataConnection;
38767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport com.android.internal.telephony.test.SimulatedRadioControl;
39767a662ecde33c3979bf02b793d392aca0403162Wink Saville
40767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport java.util.List;
41767a662ecde33c3979bf02b793d392aca0403162Wink Saville
42767a662ecde33c3979bf02b793d392aca0403162Wink Savillepublic class PhoneProxy extends Handler implements Phone {
43767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public final static Object lockForRadioTechnologyChange = new Object();
44767a662ecde33c3979bf02b793d392aca0403162Wink Saville
45767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private Phone mActivePhone;
46767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private String mOutgoingPhone;
47767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private CommandsInterface mCommandsInterface;
48767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private IccSmsInterfaceManagerProxy mIccSmsInterfaceManagerProxy;
49767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private IccPhoneBookInterfaceManagerProxy mIccPhoneBookInterfaceManagerProxy;
50767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private PhoneSubInfoProxy mPhoneSubInfoProxy;
51767a662ecde33c3979bf02b793d392aca0403162Wink Saville
52d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville    private boolean mResetModemOnRadioTechnologyChange = false;
53d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville
54767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private static final int EVENT_RADIO_TECHNOLOGY_CHANGED = 1;
55767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private static final String LOG_TAG = "PHONE";
56767a662ecde33c3979bf02b793d392aca0403162Wink Saville
57767a662ecde33c3979bf02b793d392aca0403162Wink Saville    //***** Class Methods
58767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public PhoneProxy(Phone phone) {
59767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone = phone;
60d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville        mResetModemOnRadioTechnologyChange = SystemProperties.getBoolean(
61d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville                TelephonyProperties.PROPERTY_RESET_ON_RADIO_TECH_CHANGE, false);
62767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mIccSmsInterfaceManagerProxy = new IccSmsInterfaceManagerProxy(
63767a662ecde33c3979bf02b793d392aca0403162Wink Saville                phone.getIccSmsInterfaceManager());
64767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mIccPhoneBookInterfaceManagerProxy = new IccPhoneBookInterfaceManagerProxy(
65767a662ecde33c3979bf02b793d392aca0403162Wink Saville                phone.getIccPhoneBookInterfaceManager());
66767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mPhoneSubInfoProxy = new PhoneSubInfoProxy(phone.getPhoneSubInfo());
67767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mCommandsInterface = ((PhoneBase)mActivePhone).mCM;
68767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mCommandsInterface.registerForRadioTechnologyChanged(
69767a662ecde33c3979bf02b793d392aca0403162Wink Saville                this, EVENT_RADIO_TECHNOLOGY_CHANGED, null);
70767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
71767a662ecde33c3979bf02b793d392aca0403162Wink Saville
72767a662ecde33c3979bf02b793d392aca0403162Wink Saville    @Override
73767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void handleMessage(Message msg) {
74767a662ecde33c3979bf02b793d392aca0403162Wink Saville        switch(msg.what) {
75767a662ecde33c3979bf02b793d392aca0403162Wink Saville        case EVENT_RADIO_TECHNOLOGY_CHANGED:
76767a662ecde33c3979bf02b793d392aca0403162Wink Saville            //switch Phone from CDMA to GSM or vice versa
77767a662ecde33c3979bf02b793d392aca0403162Wink Saville            mOutgoingPhone = ((PhoneBase)mActivePhone).getPhoneName();
78767a662ecde33c3979bf02b793d392aca0403162Wink Saville            logd("Switching phone from " + mOutgoingPhone + "Phone to " +
79767a662ecde33c3979bf02b793d392aca0403162Wink Saville                    (mOutgoingPhone.equals("GSM") ? "CDMAPhone" : "GSMPhone") );
80d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville            boolean oldPowerState = false; // old power state to off
81d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville            if (mResetModemOnRadioTechnologyChange) {
82d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville                if (mCommandsInterface.getRadioState().isOn()) {
83d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville                    oldPowerState = true;
84d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville                    logd("Setting Radio Power to Off");
85d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville                    mCommandsInterface.setRadioPower(false, null);
86d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville                }
87767a662ecde33c3979bf02b793d392aca0403162Wink Saville            }
88d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville
89767a662ecde33c3979bf02b793d392aca0403162Wink Saville            if(mOutgoingPhone.equals("GSM")) {
90767a662ecde33c3979bf02b793d392aca0403162Wink Saville                logd("Make a new CDMAPhone and destroy the old GSMPhone.");
91767a662ecde33c3979bf02b793d392aca0403162Wink Saville
92767a662ecde33c3979bf02b793d392aca0403162Wink Saville                ((GSMPhone)mActivePhone).dispose();
93767a662ecde33c3979bf02b793d392aca0403162Wink Saville                Phone oldPhone = mActivePhone;
94767a662ecde33c3979bf02b793d392aca0403162Wink Saville
95767a662ecde33c3979bf02b793d392aca0403162Wink Saville                //Give the garbage collector a hint to start the garbage collection asap
96767a662ecde33c3979bf02b793d392aca0403162Wink Saville                // NOTE this has been disabled since radio technology change could happen during
97767a662ecde33c3979bf02b793d392aca0403162Wink Saville                //   e.g. a multimedia playing and could slow the system. Tests needs to be done
98767a662ecde33c3979bf02b793d392aca0403162Wink Saville                //   to see the effects of the GC call here when system is busy.
99767a662ecde33c3979bf02b793d392aca0403162Wink Saville                //System.gc();
100767a662ecde33c3979bf02b793d392aca0403162Wink Saville
101767a662ecde33c3979bf02b793d392aca0403162Wink Saville                mActivePhone = PhoneFactory.getCdmaPhone();
102767a662ecde33c3979bf02b793d392aca0403162Wink Saville                ((GSMPhone)oldPhone).removeReferences();
103767a662ecde33c3979bf02b793d392aca0403162Wink Saville                oldPhone = null;
104767a662ecde33c3979bf02b793d392aca0403162Wink Saville            } else {
105767a662ecde33c3979bf02b793d392aca0403162Wink Saville                logd("Make a new GSMPhone and destroy the old CDMAPhone.");
106767a662ecde33c3979bf02b793d392aca0403162Wink Saville
107767a662ecde33c3979bf02b793d392aca0403162Wink Saville                ((CDMAPhone)mActivePhone).dispose();
108767a662ecde33c3979bf02b793d392aca0403162Wink Saville                //mActivePhone = null;
109767a662ecde33c3979bf02b793d392aca0403162Wink Saville                Phone oldPhone = mActivePhone;
110767a662ecde33c3979bf02b793d392aca0403162Wink Saville
111767a662ecde33c3979bf02b793d392aca0403162Wink Saville                // Give the GC a hint to start the garbage collection asap
112767a662ecde33c3979bf02b793d392aca0403162Wink Saville                // NOTE this has been disabled since radio technology change could happen during
113767a662ecde33c3979bf02b793d392aca0403162Wink Saville                //   e.g. a multimedia playing and could slow the system. Tests needs to be done
114767a662ecde33c3979bf02b793d392aca0403162Wink Saville                //   to see the effects of the GC call here when system is busy.
115767a662ecde33c3979bf02b793d392aca0403162Wink Saville                //System.gc();
116767a662ecde33c3979bf02b793d392aca0403162Wink Saville
117767a662ecde33c3979bf02b793d392aca0403162Wink Saville                mActivePhone = PhoneFactory.getGsmPhone();
118767a662ecde33c3979bf02b793d392aca0403162Wink Saville                ((CDMAPhone)oldPhone).removeReferences();
119767a662ecde33c3979bf02b793d392aca0403162Wink Saville                oldPhone = null;
120767a662ecde33c3979bf02b793d392aca0403162Wink Saville            }
121767a662ecde33c3979bf02b793d392aca0403162Wink Saville
122d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville            if (mResetModemOnRadioTechnologyChange) {
123d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville                logd("Resetting Radio");
124d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville                mCommandsInterface.setRadioPower(oldPowerState, null);
125d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville            }
126d7d6fb39470e212ce53b05fdc1c4dd8a724e9db7Wink Saville
127767a662ecde33c3979bf02b793d392aca0403162Wink Saville            //Set the new interfaces in the proxy's
128767a662ecde33c3979bf02b793d392aca0403162Wink Saville            mIccSmsInterfaceManagerProxy.setmIccSmsInterfaceManager(
129767a662ecde33c3979bf02b793d392aca0403162Wink Saville                    mActivePhone.getIccSmsInterfaceManager());
130767a662ecde33c3979bf02b793d392aca0403162Wink Saville            mIccPhoneBookInterfaceManagerProxy.setmIccPhoneBookInterfaceManager(
131767a662ecde33c3979bf02b793d392aca0403162Wink Saville                    mActivePhone.getIccPhoneBookInterfaceManager());
132767a662ecde33c3979bf02b793d392aca0403162Wink Saville            mPhoneSubInfoProxy.setmPhoneSubInfo(this.mActivePhone.getPhoneSubInfo());
133767a662ecde33c3979bf02b793d392aca0403162Wink Saville            mCommandsInterface = ((PhoneBase)mActivePhone).mCM;
134767a662ecde33c3979bf02b793d392aca0403162Wink Saville
135767a662ecde33c3979bf02b793d392aca0403162Wink Saville            //Send an Intent to the PhoneApp that we had a radio technology change
136767a662ecde33c3979bf02b793d392aca0403162Wink Saville            Intent intent = new Intent(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
1371c633fc89bae9bf0af6fe643ac7ad2e744f27bedDianne Hackborn            intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
138767a662ecde33c3979bf02b793d392aca0403162Wink Saville            intent.putExtra(Phone.PHONE_NAME_KEY, mActivePhone.getPhoneName());
139767a662ecde33c3979bf02b793d392aca0403162Wink Saville            ActivityManagerNative.broadcastStickyIntent(intent, null);
140767a662ecde33c3979bf02b793d392aca0403162Wink Saville            break;
141767a662ecde33c3979bf02b793d392aca0403162Wink Saville        default:
142e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville            Log.e(LOG_TAG,"Error! This handler was not registered for this message type. Message: "
143767a662ecde33c3979bf02b793d392aca0403162Wink Saville                    + msg.what);
144767a662ecde33c3979bf02b793d392aca0403162Wink Saville        break;
145767a662ecde33c3979bf02b793d392aca0403162Wink Saville        }
146767a662ecde33c3979bf02b793d392aca0403162Wink Saville        super.handleMessage(msg);
147767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
148767a662ecde33c3979bf02b793d392aca0403162Wink Saville
149767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private void logv(String msg) {
150767a662ecde33c3979bf02b793d392aca0403162Wink Saville        Log.v(LOG_TAG, "[PhoneProxy] " + msg);
151767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
152767a662ecde33c3979bf02b793d392aca0403162Wink Saville
153767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private void logd(String msg) {
154767a662ecde33c3979bf02b793d392aca0403162Wink Saville        Log.d(LOG_TAG, "[PhoneProxy] " + msg);
155767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
156767a662ecde33c3979bf02b793d392aca0403162Wink Saville
157767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private void logw(String msg) {
158767a662ecde33c3979bf02b793d392aca0403162Wink Saville        Log.w(LOG_TAG, "[PhoneProxy] " + msg);
159767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
160767a662ecde33c3979bf02b793d392aca0403162Wink Saville
161767a662ecde33c3979bf02b793d392aca0403162Wink Saville    private void loge(String msg) {
162767a662ecde33c3979bf02b793d392aca0403162Wink Saville        Log.e(LOG_TAG, "[PhoneProxy] " + msg);
163767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
164767a662ecde33c3979bf02b793d392aca0403162Wink Saville
165767a662ecde33c3979bf02b793d392aca0403162Wink Saville
166767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public ServiceState getServiceState() {
167767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getServiceState();
168767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
169767a662ecde33c3979bf02b793d392aca0403162Wink Saville
170767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public CellLocation getCellLocation() {
171767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getCellLocation();
172767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
173767a662ecde33c3979bf02b793d392aca0403162Wink Saville
174767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public DataState getDataConnectionState() {
175767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getDataConnectionState();
176767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
177767a662ecde33c3979bf02b793d392aca0403162Wink Saville
178767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public DataActivityState getDataActivityState() {
179767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getDataActivityState();
180767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
181767a662ecde33c3979bf02b793d392aca0403162Wink Saville
182767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public Context getContext() {
183767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getContext();
184767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
185767a662ecde33c3979bf02b793d392aca0403162Wink Saville
186767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void disableDnsCheck(boolean b) {
187767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.disableDnsCheck(b);
188767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
189767a662ecde33c3979bf02b793d392aca0403162Wink Saville
190767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean isDnsCheckDisabled() {
191767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.isDnsCheckDisabled();
192767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
193767a662ecde33c3979bf02b793d392aca0403162Wink Saville
194767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public State getState() {
195767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getState();
196767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
197767a662ecde33c3979bf02b793d392aca0403162Wink Saville
198767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getPhoneName() {
199767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getPhoneName();
200767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
201767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2023cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink    public int getPhoneType() {
2033cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink        return mActivePhone.getPhoneType();
2043cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink    }
2053cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink
206767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String[] getActiveApnTypes() {
207767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getActiveApnTypes();
208767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
209767a662ecde33c3979bf02b793d392aca0403162Wink Saville
210767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getActiveApn() {
211767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getActiveApn();
212767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
213767a662ecde33c3979bf02b793d392aca0403162Wink Saville
214e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public SignalStrength getSignalStrength() {
215e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville        return mActivePhone.getSignalStrength();
216767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
217767a662ecde33c3979bf02b793d392aca0403162Wink Saville
218767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForUnknownConnection(Handler h, int what, Object obj) {
219767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForUnknownConnection(h, what, obj);
220767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
221767a662ecde33c3979bf02b793d392aca0403162Wink Saville
222767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForUnknownConnection(Handler h) {
223767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForUnknownConnection(h);
224767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
225767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2261c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh    public void registerForPreciseCallStateChanged(Handler h, int what, Object obj) {
2271c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh        mActivePhone.registerForPreciseCallStateChanged(h, what, obj);
228767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
229767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2301c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh    public void unregisterForPreciseCallStateChanged(Handler h) {
2311c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh        mActivePhone.unregisterForPreciseCallStateChanged(h);
232767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
233767a662ecde33c3979bf02b793d392aca0403162Wink Saville
234767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForNewRingingConnection(Handler h, int what, Object obj) {
235767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForNewRingingConnection(h, what, obj);
236767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
237767a662ecde33c3979bf02b793d392aca0403162Wink Saville
238767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForNewRingingConnection(Handler h) {
239767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForNewRingingConnection(h);
240767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
241767a662ecde33c3979bf02b793d392aca0403162Wink Saville
242767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForIncomingRing(Handler h, int what, Object obj) {
243767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForIncomingRing(h, what, obj);
244767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
245767a662ecde33c3979bf02b793d392aca0403162Wink Saville
246767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForIncomingRing(Handler h) {
247767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForIncomingRing(h);
248767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
249767a662ecde33c3979bf02b793d392aca0403162Wink Saville
250767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForDisconnect(Handler h, int what, Object obj) {
251767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForDisconnect(h, what, obj);
252767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
253767a662ecde33c3979bf02b793d392aca0403162Wink Saville
254767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForDisconnect(Handler h) {
255767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForDisconnect(h);
256767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
257767a662ecde33c3979bf02b793d392aca0403162Wink Saville
258767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForMmiInitiate(Handler h, int what, Object obj) {
259767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForMmiInitiate(h, what, obj);
260767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
261767a662ecde33c3979bf02b793d392aca0403162Wink Saville
262767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForMmiInitiate(Handler h) {
263767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForMmiInitiate(h);
264767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
265767a662ecde33c3979bf02b793d392aca0403162Wink Saville
266767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForMmiComplete(Handler h, int what, Object obj) {
267767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForMmiComplete(h, what, obj);
268767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
269767a662ecde33c3979bf02b793d392aca0403162Wink Saville
270767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForMmiComplete(Handler h) {
271767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForMmiComplete(h);
272767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
273767a662ecde33c3979bf02b793d392aca0403162Wink Saville
274767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public List<? extends MmiCode> getPendingMmiCodes() {
275767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getPendingMmiCodes();
276767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
277767a662ecde33c3979bf02b793d392aca0403162Wink Saville
278767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void sendUssdResponse(String ussdMessge) {
279767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.sendUssdResponse(ussdMessge);
280767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
281767a662ecde33c3979bf02b793d392aca0403162Wink Saville
282767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForServiceStateChanged(Handler h, int what, Object obj) {
283767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForServiceStateChanged(h, what, obj);
284767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
285767a662ecde33c3979bf02b793d392aca0403162Wink Saville
286767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForServiceStateChanged(Handler h) {
287767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForServiceStateChanged(h);
288767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
289767a662ecde33c3979bf02b793d392aca0403162Wink Saville
290767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForSuppServiceNotification(Handler h, int what, Object obj) {
291767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForSuppServiceNotification(h, what, obj);
292767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
293767a662ecde33c3979bf02b793d392aca0403162Wink Saville
294767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForSuppServiceNotification(Handler h) {
295767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForSuppServiceNotification(h);
296767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
297767a662ecde33c3979bf02b793d392aca0403162Wink Saville
298767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForSuppServiceFailed(Handler h, int what, Object obj) {
299767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForSuppServiceFailed(h, what, obj);
300767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
301767a662ecde33c3979bf02b793d392aca0403162Wink Saville
302767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForSuppServiceFailed(Handler h) {
303767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForSuppServiceFailed(h);
304767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
305767a662ecde33c3979bf02b793d392aca0403162Wink Saville
306767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj){
307767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForInCallVoicePrivacyOn(h,what,obj);
308767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
309767a662ecde33c3979bf02b793d392aca0403162Wink Saville
310767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForInCallVoicePrivacyOn(Handler h){
311767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForInCallVoicePrivacyOn(h);
312767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
313767a662ecde33c3979bf02b793d392aca0403162Wink Saville
314767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj){
315767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.registerForInCallVoicePrivacyOff(h,what,obj);
316767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
317767a662ecde33c3979bf02b793d392aca0403162Wink Saville
318767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void unregisterForInCallVoicePrivacyOff(Handler h){
319767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.unregisterForInCallVoicePrivacyOff(h);
320767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
321767a662ecde33c3979bf02b793d392aca0403162Wink Saville
322dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void registerForCdmaOtaStatusChange(Handler h, int what, Object obj) {
323dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.registerForCdmaOtaStatusChange(h,what,obj);
324e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    }
325e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
326dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void unregisterForCdmaOtaStatusChange(Handler h) {
327dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville         mActivePhone.unregisterForCdmaOtaStatusChange(h);
328e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    }
329e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
3309e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    public void registerForSubscriptionInfoReady(Handler h, int what, Object obj) {
3319e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo        mActivePhone.registerForSubscriptionInfoReady(h, what, obj);
3329e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    }
3339e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo
3349e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    public void unregisterForSubscriptionInfoReady(Handler h) {
3359e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo        mActivePhone.unregisterForSubscriptionInfoReady(h);
3369e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    }
3379e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo
33895a1d1a89e383dab893750638c2393dec54833ffWink Saville    public void registerForEcmTimerReset(Handler h, int what, Object obj) {
33995a1d1a89e383dab893750638c2393dec54833ffWink Saville        mActivePhone.registerForEcmTimerReset(h,what,obj);
34095a1d1a89e383dab893750638c2393dec54833ffWink Saville    }
34195a1d1a89e383dab893750638c2393dec54833ffWink Saville
34295a1d1a89e383dab893750638c2393dec54833ffWink Saville    public void unregisterForEcmTimerReset(Handler h) {
34395a1d1a89e383dab893750638c2393dec54833ffWink Saville        mActivePhone.unregisterForEcmTimerReset(h);
34495a1d1a89e383dab893750638c2393dec54833ffWink Saville    }
34595a1d1a89e383dab893750638c2393dec54833ffWink Saville
346bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang    public void registerForRingbackTone(Handler h, int what, Object obj) {
347bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang        mActivePhone.registerForRingbackTone(h,what,obj);
348bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang    }
349bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang
350bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang    public void unregisterForRingbackTone(Handler h) {
351bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang        mActivePhone.unregisterForRingbackTone(h);
352bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang    }
353bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang
3541ccc41ed938ff005ae3d621292580a90601242caJohn Wang    public void registerForResendIncallMute(Handler h, int what, Object obj) {
3551ccc41ed938ff005ae3d621292580a90601242caJohn Wang        mActivePhone.registerForResendIncallMute(h,what,obj);
3561ccc41ed938ff005ae3d621292580a90601242caJohn Wang    }
3571ccc41ed938ff005ae3d621292580a90601242caJohn Wang
3581ccc41ed938ff005ae3d621292580a90601242caJohn Wang    public void unregisterForResendIncallMute(Handler h) {
3591ccc41ed938ff005ae3d621292580a90601242caJohn Wang        mActivePhone.unregisterForResendIncallMute(h);
3601ccc41ed938ff005ae3d621292580a90601242caJohn Wang    }
3611ccc41ed938ff005ae3d621292580a90601242caJohn Wang
362767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean getIccRecordsLoaded() {
363767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getIccRecordsLoaded();
364767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
365767a662ecde33c3979bf02b793d392aca0403162Wink Saville
366767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccCard getIccCard() {
367767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getIccCard();
368767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
369767a662ecde33c3979bf02b793d392aca0403162Wink Saville
370767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void acceptCall() throws CallStateException {
371767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.acceptCall();
372767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
373767a662ecde33c3979bf02b793d392aca0403162Wink Saville
374767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void rejectCall() throws CallStateException {
375767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.rejectCall();
376767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
377767a662ecde33c3979bf02b793d392aca0403162Wink Saville
378767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void switchHoldingAndActive() throws CallStateException {
379767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.switchHoldingAndActive();
380767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
381767a662ecde33c3979bf02b793d392aca0403162Wink Saville
382767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean canConference() {
383767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.canConference();
384767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
385767a662ecde33c3979bf02b793d392aca0403162Wink Saville
386767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void conference() throws CallStateException {
387767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.conference();
388767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
389767a662ecde33c3979bf02b793d392aca0403162Wink Saville
390767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void enableEnhancedVoicePrivacy(boolean enable, Message onComplete) {
391767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.enableEnhancedVoicePrivacy(enable, onComplete);
392767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
393767a662ecde33c3979bf02b793d392aca0403162Wink Saville
394767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void getEnhancedVoicePrivacy(Message onComplete) {
395767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.getEnhancedVoicePrivacy(onComplete);
396767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
397767a662ecde33c3979bf02b793d392aca0403162Wink Saville
398767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean canTransfer() {
399767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.canTransfer();
400767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
401767a662ecde33c3979bf02b793d392aca0403162Wink Saville
402767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void explicitCallTransfer() throws CallStateException {
403767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.explicitCallTransfer();
404767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
405767a662ecde33c3979bf02b793d392aca0403162Wink Saville
406767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void clearDisconnected() {
407767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.clearDisconnected();
408767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
409767a662ecde33c3979bf02b793d392aca0403162Wink Saville
410767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public Call getForegroundCall() {
411767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getForegroundCall();
412767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
413767a662ecde33c3979bf02b793d392aca0403162Wink Saville
414767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public Call getBackgroundCall() {
415767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getBackgroundCall();
416767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
417767a662ecde33c3979bf02b793d392aca0403162Wink Saville
418767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public Call getRingingCall() {
419767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getRingingCall();
420767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
421767a662ecde33c3979bf02b793d392aca0403162Wink Saville
422767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public Connection dial(String dialString) throws CallStateException {
423767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.dial(dialString);
424767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
425767a662ecde33c3979bf02b793d392aca0403162Wink Saville
426767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean handlePinMmi(String dialString) {
427767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.handlePinMmi(dialString);
428767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
429767a662ecde33c3979bf02b793d392aca0403162Wink Saville
430767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean handleInCallMmiCommands(String command) throws CallStateException {
431767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.handleInCallMmiCommands(command);
432767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
433767a662ecde33c3979bf02b793d392aca0403162Wink Saville
434767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void sendDtmf(char c) {
435767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.sendDtmf(c);
436767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
437767a662ecde33c3979bf02b793d392aca0403162Wink Saville
438767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void startDtmf(char c) {
439767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.startDtmf(c);
440767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
441767a662ecde33c3979bf02b793d392aca0403162Wink Saville
442767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void stopDtmf() {
443767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.stopDtmf();
444767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
445767a662ecde33c3979bf02b793d392aca0403162Wink Saville
446767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setRadioPower(boolean power) {
447767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setRadioPower(power);
448767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
449767a662ecde33c3979bf02b793d392aca0403162Wink Saville
450767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean getMessageWaitingIndicator() {
451767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getMessageWaitingIndicator();
452767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
453767a662ecde33c3979bf02b793d392aca0403162Wink Saville
454767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean getCallForwardingIndicator() {
455767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getCallForwardingIndicator();
456767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
457767a662ecde33c3979bf02b793d392aca0403162Wink Saville
458767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getLine1Number() {
459767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getLine1Number();
460767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
461767a662ecde33c3979bf02b793d392aca0403162Wink Saville
462dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public String getCdmaMin() {
463dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        return mActivePhone.getCdmaMin();
464dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
465dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
4669e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    public boolean isMinInfoReady() {
4679e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo        return mActivePhone.isMinInfoReady();
4689e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    }
4699e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo
47022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public String getCdmaPrlVersion() {
47122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        return mActivePhone.getCdmaPrlVersion();
47222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
47322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
474767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getLine1AlphaTag() {
475767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getLine1AlphaTag();
476767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
477767a662ecde33c3979bf02b793d392aca0403162Wink Saville
478767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setLine1Number(String alphaTag, String number, Message onComplete) {
479767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setLine1Number(alphaTag, number, onComplete);
480767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
481767a662ecde33c3979bf02b793d392aca0403162Wink Saville
482767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getVoiceMailNumber() {
483767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getVoiceMailNumber();
484767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
485767a662ecde33c3979bf02b793d392aca0403162Wink Saville
486dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     /** @hide */
487ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    public int getVoiceMessageCount(){
488ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause        return mActivePhone.getVoiceMessageCount();
489dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
490dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
491767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getVoiceMailAlphaTag() {
492767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getVoiceMailAlphaTag();
493767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
494767a662ecde33c3979bf02b793d392aca0403162Wink Saville
495767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setVoiceMailNumber(String alphaTag,String voiceMailNumber,
496767a662ecde33c3979bf02b793d392aca0403162Wink Saville            Message onComplete) {
497767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setVoiceMailNumber(alphaTag, voiceMailNumber, onComplete);
498767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
499767a662ecde33c3979bf02b793d392aca0403162Wink Saville
500767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void getCallForwardingOption(int commandInterfaceCFReason,
501767a662ecde33c3979bf02b793d392aca0403162Wink Saville            Message onComplete) {
502767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.getCallForwardingOption(commandInterfaceCFReason,
503767a662ecde33c3979bf02b793d392aca0403162Wink Saville                onComplete);
504767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
505767a662ecde33c3979bf02b793d392aca0403162Wink Saville
506767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setCallForwardingOption(int commandInterfaceCFReason,
507767a662ecde33c3979bf02b793d392aca0403162Wink Saville            int commandInterfaceCFAction, String dialingNumber,
508767a662ecde33c3979bf02b793d392aca0403162Wink Saville            int timerSeconds, Message onComplete) {
509767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setCallForwardingOption(commandInterfaceCFReason,
510767a662ecde33c3979bf02b793d392aca0403162Wink Saville            commandInterfaceCFAction, dialingNumber, timerSeconds, onComplete);
511767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
512767a662ecde33c3979bf02b793d392aca0403162Wink Saville
513767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void getOutgoingCallerIdDisplay(Message onComplete) {
514767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.getOutgoingCallerIdDisplay(onComplete);
515767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
516767a662ecde33c3979bf02b793d392aca0403162Wink Saville
517767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setOutgoingCallerIdDisplay(int commandInterfaceCLIRMode,
518767a662ecde33c3979bf02b793d392aca0403162Wink Saville            Message onComplete) {
519767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setOutgoingCallerIdDisplay(commandInterfaceCLIRMode,
520767a662ecde33c3979bf02b793d392aca0403162Wink Saville                onComplete);
521767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
522767a662ecde33c3979bf02b793d392aca0403162Wink Saville
523767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void getCallWaiting(Message onComplete) {
524767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.getCallWaiting(onComplete);
525767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
526767a662ecde33c3979bf02b793d392aca0403162Wink Saville
527767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setCallWaiting(boolean enable, Message onComplete) {
528767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setCallWaiting(enable, onComplete);
529767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
530767a662ecde33c3979bf02b793d392aca0403162Wink Saville
531767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void getAvailableNetworks(Message response) {
532767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.getAvailableNetworks(response);
533767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
534767a662ecde33c3979bf02b793d392aca0403162Wink Saville
535767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setNetworkSelectionModeAutomatic(Message response) {
536767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setNetworkSelectionModeAutomatic(response);
537767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
538767a662ecde33c3979bf02b793d392aca0403162Wink Saville
539767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void selectNetworkManually(NetworkInfo network, Message response) {
540767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.selectNetworkManually(network, response);
541767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
542767a662ecde33c3979bf02b793d392aca0403162Wink Saville
543767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setPreferredNetworkType(int networkType, Message response) {
544767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setPreferredNetworkType(networkType, response);
545767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
546767a662ecde33c3979bf02b793d392aca0403162Wink Saville
547767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void getPreferredNetworkType(Message response) {
548767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.getPreferredNetworkType(response);
549767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
550767a662ecde33c3979bf02b793d392aca0403162Wink Saville
551767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void getNeighboringCids(Message response) {
552767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.getNeighboringCids(response);
553767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
554767a662ecde33c3979bf02b793d392aca0403162Wink Saville
555767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setOnPostDialCharacter(Handler h, int what, Object obj) {
556767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setOnPostDialCharacter(h, what, obj);
557767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
558767a662ecde33c3979bf02b793d392aca0403162Wink Saville
559767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setMute(boolean muted) {
560767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setMute(muted);
561767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
562767a662ecde33c3979bf02b793d392aca0403162Wink Saville
563767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean getMute() {
564767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getMute();
565767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
566767a662ecde33c3979bf02b793d392aca0403162Wink Saville
567767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void invokeOemRilRequestRaw(byte[] data, Message response) {
568767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.invokeOemRilRequestRaw(data, response);
569767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
570767a662ecde33c3979bf02b793d392aca0403162Wink Saville
571767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void invokeOemRilRequestStrings(String[] strings, Message response) {
572767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.invokeOemRilRequestStrings(strings, response);
573767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
574767a662ecde33c3979bf02b793d392aca0403162Wink Saville
575767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void getDataCallList(Message response) {
576767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.getDataCallList(response);
577767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
578767a662ecde33c3979bf02b793d392aca0403162Wink Saville
579767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public List<DataConnection> getCurrentDataConnectionList() {
580767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getCurrentDataConnectionList();
581767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
582767a662ecde33c3979bf02b793d392aca0403162Wink Saville
5837a043b351b43e963605afef6ab76a52ae3a9270eTammo Spalink    public void updateServiceLocation() {
5847a043b351b43e963605afef6ab76a52ae3a9270eTammo Spalink        mActivePhone.updateServiceLocation();
585767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
586767a662ecde33c3979bf02b793d392aca0403162Wink Saville
587767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void enableLocationUpdates() {
588767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.enableLocationUpdates();
589767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
590767a662ecde33c3979bf02b793d392aca0403162Wink Saville
591767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void disableLocationUpdates() {
592767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.disableLocationUpdates();
593767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
594767a662ecde33c3979bf02b793d392aca0403162Wink Saville
595767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setUnitTestMode(boolean f) {
596767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setUnitTestMode(f);
597767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
598767a662ecde33c3979bf02b793d392aca0403162Wink Saville
599767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean getUnitTestMode() {
600767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getUnitTestMode();
601767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
602767a662ecde33c3979bf02b793d392aca0403162Wink Saville
603767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setBandMode(int bandMode, Message response) {
604767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setBandMode(bandMode, response);
605767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
606767a662ecde33c3979bf02b793d392aca0403162Wink Saville
607767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void queryAvailableBandMode(Message response) {
608767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.queryAvailableBandMode(response);
609767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
610767a662ecde33c3979bf02b793d392aca0403162Wink Saville
611767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean getDataRoamingEnabled() {
612767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getDataRoamingEnabled();
613767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
614767a662ecde33c3979bf02b793d392aca0403162Wink Saville
615767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setDataRoamingEnabled(boolean enable) {
616767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setDataRoamingEnabled(enable);
617767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
618767a662ecde33c3979bf02b793d392aca0403162Wink Saville
619767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void queryCdmaRoamingPreference(Message response) {
620767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.queryCdmaRoamingPreference(response);
621767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
622767a662ecde33c3979bf02b793d392aca0403162Wink Saville
623767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setCdmaRoamingPreference(int cdmaRoamingType, Message response) {
624767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setCdmaRoamingPreference(cdmaRoamingType, response);
625767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
626767a662ecde33c3979bf02b793d392aca0403162Wink Saville
627767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setCdmaSubscription(int cdmaSubscriptionType, Message response) {
628767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setCdmaSubscription(cdmaSubscriptionType, response);
629767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
630767a662ecde33c3979bf02b793d392aca0403162Wink Saville
631767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public SimulatedRadioControl getSimulatedRadioControl() {
632767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getSimulatedRadioControl();
633767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
634767a662ecde33c3979bf02b793d392aca0403162Wink Saville
635767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean enableDataConnectivity() {
636767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.enableDataConnectivity();
637767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
638767a662ecde33c3979bf02b793d392aca0403162Wink Saville
639767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean disableDataConnectivity() {
640767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.disableDataConnectivity();
641767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
642767a662ecde33c3979bf02b793d392aca0403162Wink Saville
643767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public int enableApnType(String type) {
644767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.enableApnType(type);
645767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
646767a662ecde33c3979bf02b793d392aca0403162Wink Saville
647767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public int disableApnType(String type) {
648767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.disableApnType(type);
649767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
650767a662ecde33c3979bf02b793d392aca0403162Wink Saville
651c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville    public boolean isDataConnectivityEnabled() {
652c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville        return mActivePhone.isDataConnectivityEnabled();
653c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville    }
654c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville
655767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public boolean isDataConnectivityPossible() {
656767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.isDataConnectivityPossible();
657767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
658767a662ecde33c3979bf02b793d392aca0403162Wink Saville
659767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getInterfaceName(String apnType) {
660767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getInterfaceName(apnType);
661767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
662767a662ecde33c3979bf02b793d392aca0403162Wink Saville
663767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getIpAddress(String apnType) {
664767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getIpAddress(apnType);
665767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
666767a662ecde33c3979bf02b793d392aca0403162Wink Saville
667767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getGateway(String apnType) {
668767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getGateway(apnType);
669767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
670767a662ecde33c3979bf02b793d392aca0403162Wink Saville
671767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String[] getDnsServers(String apnType) {
672767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getDnsServers(apnType);
673767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
674767a662ecde33c3979bf02b793d392aca0403162Wink Saville
675767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getDeviceId() {
676767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getDeviceId();
677767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
678767a662ecde33c3979bf02b793d392aca0403162Wink Saville
679767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getDeviceSvn() {
680767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getDeviceSvn();
681767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
682767a662ecde33c3979bf02b793d392aca0403162Wink Saville
683767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getSubscriberId() {
684767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getSubscriberId();
685767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
686767a662ecde33c3979bf02b793d392aca0403162Wink Saville
687767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getIccSerialNumber() {
688767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getIccSerialNumber();
689767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
690767a662ecde33c3979bf02b793d392aca0403162Wink Saville
691767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getEsn() {
692767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getEsn();
693767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
694767a662ecde33c3979bf02b793d392aca0403162Wink Saville
695767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public String getMeid() {
696767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getMeid();
697767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
698767a662ecde33c3979bf02b793d392aca0403162Wink Saville
699767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public PhoneSubInfo getPhoneSubInfo(){
700767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getPhoneSubInfo();
701767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
702767a662ecde33c3979bf02b793d392aca0403162Wink Saville
703767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccSmsInterfaceManager getIccSmsInterfaceManager(){
704767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getIccSmsInterfaceManager();
705767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
706767a662ecde33c3979bf02b793d392aca0403162Wink Saville
707767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager(){
708767a662ecde33c3979bf02b793d392aca0403162Wink Saville        return mActivePhone.getIccPhoneBookInterfaceManager();
709767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
710767a662ecde33c3979bf02b793d392aca0403162Wink Saville
711e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public void setTTYMode(int ttyMode, Message onComplete) {
712e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville        mActivePhone.setTTYMode(ttyMode, onComplete);
713e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    }
714e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
715e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public void queryTTYMode(Message onComplete) {
716e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville        mActivePhone.queryTTYMode(onComplete);
717767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
718767a662ecde33c3979bf02b793d392aca0403162Wink Saville
719767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void activateCellBroadcastSms(int activate, Message response) {
720767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.activateCellBroadcastSms(activate, response);
721767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
722767a662ecde33c3979bf02b793d392aca0403162Wink Saville
723767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void getCellBroadcastSmsConfig(Message response) {
724767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.getCellBroadcastSmsConfig(response);
725767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
726767a662ecde33c3979bf02b793d392aca0403162Wink Saville
727767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response) {
728767a662ecde33c3979bf02b793d392aca0403162Wink Saville        mActivePhone.setCellBroadcastSmsConfig(configValuesArray, response);
729767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
730767a662ecde33c3979bf02b793d392aca0403162Wink Saville
731767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void notifyDataActivity() {
732767a662ecde33c3979bf02b793d392aca0403162Wink Saville         mActivePhone.notifyDataActivity();
733767a662ecde33c3979bf02b793d392aca0403162Wink Saville    }
734c06ce125408696fd49c7fa9e1189ecb61804007ajsh
735c06ce125408696fd49c7fa9e1189ecb61804007ajsh    public void getSmscAddress(Message result) {
736c06ce125408696fd49c7fa9e1189ecb61804007ajsh        mActivePhone.getSmscAddress(result);
737c06ce125408696fd49c7fa9e1189ecb61804007ajsh    }
738c06ce125408696fd49c7fa9e1189ecb61804007ajsh
739c06ce125408696fd49c7fa9e1189ecb61804007ajsh    public void setSmscAddress(String address, Message result) {
740c06ce125408696fd49c7fa9e1189ecb61804007ajsh        mActivePhone.setSmscAddress(address, result);
741c06ce125408696fd49c7fa9e1189ecb61804007ajsh    }
742e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
743e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public int getCdmaEriIconIndex() {
744e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville         return mActivePhone.getCdmaEriIconIndex();
745e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    }
746e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
747dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     public String getCdmaEriText() {
748dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville         return mActivePhone.getCdmaEriText();
749dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     }
750dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
751e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public int getCdmaEriIconMode() {
752e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville         return mActivePhone.getCdmaEriIconMode();
753e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    }
754e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
755dafa22a3ef9328c72319aeec605f6a6d20e46080jsh    public void sendBurstDtmf(String dtmfString, int on, int off, Message onComplete){
756dafa22a3ef9328c72319aeec605f6a6d20e46080jsh        mActivePhone.sendBurstDtmf(dtmfString, on, off, onComplete);
757dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
758dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
759dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void exitEmergencyCallbackMode(){
760dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.exitEmergencyCallbackMode();
761dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
762dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
763dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public boolean isOtaSpNumber(String dialStr){
764dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        return mActivePhone.isOtaSpNumber(dialStr);
765dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
766dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
767dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void registerForCallWaiting(Handler h, int what, Object obj){
768dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.registerForCallWaiting(h,what,obj);
769dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
770dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
771dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void unregisterForCallWaiting(Handler h){
772dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.unregisterForCallWaiting(h);
773dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
774dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
775dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void registerForSignalInfo(Handler h, int what, Object obj) {
776dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.registerForSignalInfo(h,what,obj);
777e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    }
778767a662ecde33c3979bf02b793d392aca0403162Wink Saville
779dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void unregisterForSignalInfo(Handler h) {
780dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.unregisterForSignalInfo(h);
781dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
782dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
783dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void registerForDisplayInfo(Handler h, int what, Object obj) {
784dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.registerForDisplayInfo(h,what,obj);
785dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
786dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
787dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void unregisterForDisplayInfo(Handler h) {
788dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.unregisterForDisplayInfo(h);
789dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
790dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
79122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void registerForNumberInfo(Handler h, int what, Object obj) {
79222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.registerForNumberInfo(h, what, obj);
79322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
79422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
79522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void unregisterForNumberInfo(Handler h) {
79622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.unregisterForNumberInfo(h);
79722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
79822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
79922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void registerForRedirectedNumberInfo(Handler h, int what, Object obj) {
80022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.registerForRedirectedNumberInfo(h, what, obj);
80122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
80222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
80322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void unregisterForRedirectedNumberInfo(Handler h) {
80422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.unregisterForRedirectedNumberInfo(h);
80522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
80622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
80722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void registerForLineControlInfo(Handler h, int what, Object obj) {
80822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.registerForLineControlInfo( h, what, obj);
80922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
81022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
81122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void unregisterForLineControlInfo(Handler h) {
81222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.unregisterForLineControlInfo(h);
81322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
81422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
81522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void registerFoT53ClirlInfo(Handler h, int what, Object obj) {
81622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.registerFoT53ClirlInfo(h, what, obj);
81722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
81822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
81922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void unregisterForT53ClirInfo(Handler h) {
82022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.unregisterForT53ClirInfo(h);
82122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
82222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
82322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void registerForT53AudioControlInfo(Handler h, int what, Object obj) {
82422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.registerForT53AudioControlInfo( h, what, obj);
82522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
82622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
82722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    public void unregisterForT53AudioControlInfo(Handler h) {
82822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville        mActivePhone.unregisterForT53AudioControlInfo(h);
82922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    }
83022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
831dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void setOnEcbModeExitResponse(Handler h, int what, Object obj){
832dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.setOnEcbModeExitResponse(h,what,obj);
833dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
834dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
835dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public void unsetOnEcbModeExitResponse(Handler h){
836dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville        mActivePhone.unsetOnEcbModeExitResponse(h);
837dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    }
838dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville}
839