1/*
2 * Copyright (C) 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.internal.telephony;
18
19import android.content.Context;
20import android.os.AsyncResult;
21import android.os.Bundle;
22import android.os.Handler;
23import android.os.Message;
24import android.os.Messenger;
25import android.os.Registrant;
26import android.os.RegistrantList;
27import android.net.LinkProperties;
28import android.net.NetworkCapabilities;
29import android.telephony.CellInfo;
30import android.telephony.CellLocation;
31import android.telephony.DataConnectionRealTimeInfo;
32import android.telephony.ServiceState;
33import android.telephony.SignalStrength;
34import android.telephony.VoLteServiceState;
35
36import com.android.internal.annotations.VisibleForTesting;
37import com.android.internal.telephony.PhoneConstants.DataState;
38import com.android.internal.telephony.test.SimulatedRadioControl;
39import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType;
40import com.android.internal.telephony.uicc.IccFileHandler;
41import com.android.internal.telephony.uicc.IsimRecords;
42import com.android.internal.telephony.uicc.UiccCard;
43import com.android.internal.telephony.uicc.UsimServiceTable;
44
45import java.io.FileDescriptor;
46import java.io.PrintWriter;
47import java.util.ArrayList;
48import java.util.List;
49import java.util.Locale;
50import java.util.concurrent.atomic.AtomicBoolean;
51
52/**
53 * (<em>Not for SDK use</em>)
54 * A base implementation for the com.android.internal.telephony.Phone interface.
55 *
56 * Note that implementations of Phone.java are expected to be used
57 * from a single application thread. This should be the same thread that
58 * originally called PhoneFactory to obtain the interface.
59 *
60 *  {@hide}
61 *
62 */
63
64public class PhoneMock extends Phone {
65    private static final String LOG_TAG = "PhoneMock";
66
67    protected PhoneMock(String name, PhoneNotifier notifier, Context context, CommandsInterface ci,
68            boolean unitTestMode) {
69        super(name, notifier, context, ci, unitTestMode);
70        throw new RuntimeException("not implemented");
71    }
72
73    protected PhoneMock(String name, PhoneNotifier notifier, Context context, CommandsInterface ci,
74            boolean unitTestMode, int phoneId,
75            TelephonyComponentFactory telephonyComponentFactory) {
76        super(name, notifier, context, ci, unitTestMode, phoneId, telephonyComponentFactory);
77        throw new RuntimeException("not implemented");
78    }
79
80    public String getPhoneName() {
81        throw new RuntimeException("not implemented");
82    }
83
84    protected void setPhoneName(String name) {
85        throw new RuntimeException("not implemented");
86    }
87
88    public String getNai(){
89        throw new RuntimeException("not implemented");
90    }
91
92    public String getActionDetached() {
93        return "phonemock.action.detached.not.implemented";
94    }
95
96    public String getActionAttached() {
97        return "phonemock.action.attached.not.implemented";
98    }
99
100    public void setSystemProperty(String property, String value) {
101        throw new RuntimeException("not implemented");
102    }
103
104    public String getSystemProperty(String property, String defValue) {
105        throw new RuntimeException("not implemented");
106    }
107
108    protected final RegistrantList mPreciseCallStateRegistrants
109            = new RegistrantList();
110
111    protected final RegistrantList mHandoverRegistrants
112             = new RegistrantList();
113
114    protected final RegistrantList mNewRingingConnectionRegistrants
115            = new RegistrantList();
116
117    protected final RegistrantList mIncomingRingRegistrants
118            = new RegistrantList();
119
120    protected final RegistrantList mDisconnectRegistrants
121            = new RegistrantList();
122
123    protected final RegistrantList mServiceStateRegistrants
124            = new RegistrantList();
125
126    protected final RegistrantList mMmiCompleteRegistrants
127            = new RegistrantList();
128
129    protected final RegistrantList mMmiRegistrants
130            = new RegistrantList();
131
132    protected final RegistrantList mUnknownConnectionRegistrants
133            = new RegistrantList();
134
135    protected final RegistrantList mSuppServiceFailedRegistrants
136            = new RegistrantList();
137
138    protected final RegistrantList mRadioOffOrNotAvailableRegistrants
139            = new RegistrantList();
140
141    protected final RegistrantList mSimRecordsLoadedRegistrants
142            = new RegistrantList();
143
144    protected final RegistrantList mVideoCapabilityChangedRegistrants
145            = new RegistrantList();
146
147    protected final RegistrantList mEmergencyCallToggledRegistrants
148            = new RegistrantList();
149
150
151    public void startMonitoringImsService() {
152        throw new RuntimeException("not implemented");
153    }
154
155    @Override
156    public void handleMessage(Message msg) {
157        throw new RuntimeException("not implemented");
158    }
159
160    public ArrayList<Connection> getHandoverConnection() {
161        throw new RuntimeException("not implemented");
162    }
163
164    public void notifySrvccState(Call.SrvccState state) {
165        throw new RuntimeException("not implemented");
166    }
167
168    public void registerForSilentRedial(Handler h, int what, Object obj) {
169        throw new RuntimeException("not implemented");
170    }
171
172    public void unregisterForSilentRedial(Handler h) {
173        throw new RuntimeException("not implemented");
174    }
175
176    public Context getContext() {
177        return mContext;
178    }
179
180    protected void onUpdateIccAvailability() {
181        throw new RuntimeException("not implemented");
182    }
183
184    public void disableDnsCheck(boolean b) {
185        throw new RuntimeException("not implemented");
186    }
187
188    public boolean isDnsCheckDisabled() {
189        throw new RuntimeException("not implemented");
190    }
191
192    public void registerForPreciseCallStateChanged(Handler h, int what, Object obj) {
193        mPreciseCallStateRegistrants.addUnique(h, what, obj);
194    }
195
196    public void unregisterForPreciseCallStateChanged(Handler h) {
197        mPreciseCallStateRegistrants.remove(h);
198    }
199
200    protected void notifyPreciseCallStateChangedP() {
201        AsyncResult ar = new AsyncResult(null, this, null);
202        mPreciseCallStateRegistrants.notifyRegistrants(ar);
203
204        mNotifier.notifyPreciseCallState(this);
205    }
206
207    public void registerForHandoverStateChanged(Handler h, int what, Object obj) {
208        mHandoverRegistrants.addUnique(h, what, obj);
209    }
210
211    public void unregisterForHandoverStateChanged(Handler h) {
212        mHandoverRegistrants.remove(h);
213    }
214
215    public void notifyHandoverStateChanged(Connection cn) {
216       AsyncResult ar = new AsyncResult(null, cn, null);
217       mHandoverRegistrants.notifyRegistrants(ar);
218    }
219
220    public void migrateFrom(Phone from) {
221        throw new RuntimeException("not implemented");
222    }
223
224    public void migrate(RegistrantList to, RegistrantList from) {
225        throw new RuntimeException("not implemented");
226    }
227
228    public void registerForUnknownConnection(Handler h, int what, Object obj) {
229        mUnknownConnectionRegistrants.addUnique(h, what, obj);
230    }
231
232    public void unregisterForUnknownConnection(Handler h) {
233        mUnknownConnectionRegistrants.remove(h);
234    }
235
236    public void registerForNewRingingConnection(
237            Handler h, int what, Object obj) {
238        mNewRingingConnectionRegistrants.addUnique(h, what, obj);
239    }
240
241    public void unregisterForNewRingingConnection(Handler h) {
242        mNewRingingConnectionRegistrants.remove(h);
243    }
244
245    public void registerForVideoCapabilityChanged(
246            Handler h, int what, Object obj) {
247        mVideoCapabilityChangedRegistrants.addUnique(h, what, obj);
248        notifyForVideoCapabilityChanged(mIsVideoCapable);
249    }
250
251    public void unregisterForVideoCapabilityChanged(Handler h) {
252        mVideoCapabilityChangedRegistrants.remove(h);
253    }
254
255    public void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj){
256        throw new RuntimeException("not implemented");
257    }
258
259    public void unregisterForInCallVoicePrivacyOn(Handler h){
260        throw new RuntimeException("not implemented");
261    }
262
263    public void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj){
264        throw new RuntimeException("not implemented");
265    }
266
267    public void unregisterForInCallVoicePrivacyOff(Handler h){
268        throw new RuntimeException("not implemented");
269    }
270
271    public void registerForIncomingRing(
272            Handler h, int what, Object obj) {
273        mIncomingRingRegistrants.addUnique(h, what, obj);
274    }
275
276    public void unregisterForIncomingRing(Handler h) {
277        mIncomingRingRegistrants.remove(h);
278    }
279
280    public void registerForDisconnect(Handler h, int what, Object obj) {
281        mDisconnectRegistrants.addUnique(h, what, obj);
282    }
283
284    public void unregisterForDisconnect(Handler h) {
285        mDisconnectRegistrants.remove(h);
286    }
287
288    public void registerForSuppServiceFailed(Handler h, int what, Object obj) {
289        mSuppServiceFailedRegistrants.addUnique(h, what, obj);
290    }
291
292    public void unregisterForSuppServiceFailed(Handler h) {
293        mSuppServiceFailedRegistrants.remove(h);
294    }
295
296    public void registerForMmiInitiate(Handler h, int what, Object obj) {
297        mMmiRegistrants.addUnique(h, what, obj);
298    }
299
300    public void unregisterForMmiInitiate(Handler h) {
301        mMmiRegistrants.remove(h);
302    }
303
304    public void registerForMmiComplete(Handler h, int what, Object obj) {
305        mMmiCompleteRegistrants.addUnique(h, what, obj);
306    }
307
308    public void unregisterForMmiComplete(Handler h) {
309        mMmiCompleteRegistrants.remove(h);
310    }
311
312    public void registerForSimRecordsLoaded(Handler h, int what, Object obj) {
313        throw new RuntimeException("not implemented");
314    }
315
316    public void unregisterForSimRecordsLoaded(Handler h) {
317        throw new RuntimeException("not implemented");
318    }
319
320    public void registerForTtyModeReceived(Handler h, int what, Object obj) {
321        throw new RuntimeException("not implemented");
322    }
323
324    public void unregisterForTtyModeReceived(Handler h) {
325        throw new RuntimeException("not implemented");
326    }
327
328    public void setNetworkSelectionModeAutomatic(Message response) {
329        throw new RuntimeException("not implemented");
330    }
331
332    public void getNetworkSelectionMode(Message message) {
333        throw new RuntimeException("not implemented");
334    }
335
336    public void selectNetworkManually(OperatorInfo network, boolean persistSelection,
337            Message response) {
338        throw new RuntimeException("not implemented");
339    }
340
341    public void registerForEmergencyCallToggle(Handler h, int what, Object obj) {
342        Registrant r = new Registrant(h, what, obj);
343        mEmergencyCallToggledRegistrants.add(r);
344    }
345
346    public void unregisterForEmergencyCallToggle(Handler h) {
347        mEmergencyCallToggledRegistrants.remove(h);
348    }
349
350    public void restoreSavedNetworkSelection(Message response) {
351        throw new RuntimeException("not implemented");
352    }
353
354    public void saveClirSetting(int commandInterfaceCLIRMode) {
355        throw new RuntimeException("not implemented");
356    }
357
358    public void registerForServiceStateChanged(Handler h, int what, Object obj) {
359        mServiceStateRegistrants.add(h, what, obj);
360        throw new RuntimeException("not implemented");
361    }
362
363    public void unregisterForServiceStateChanged(Handler h) {
364        mServiceStateRegistrants.remove(h);
365        throw new RuntimeException("not implemented");
366    }
367
368    public void registerForRingbackTone(Handler h, int what, Object obj) {
369        throw new RuntimeException("not implemented");
370    }
371
372    public void unregisterForRingbackTone(Handler h) {
373        throw new RuntimeException("not implemented");
374    }
375
376    public void registerForOnHoldTone(Handler h, int what, Object obj) {
377        throw new RuntimeException("not implemented");
378    }
379
380    public void unregisterForOnHoldTone(Handler h) {
381        throw new RuntimeException("not implemented");
382    }
383
384    public void registerForResendIncallMute(Handler h, int what, Object obj) {
385        throw new RuntimeException("not implemented");
386    }
387
388    public void unregisterForResendIncallMute(Handler h) {
389        throw new RuntimeException("not implemented");
390    }
391
392    public void setEchoSuppressionEnabled() {
393        throw new RuntimeException("not implemented");
394    }
395
396    public SimulatedRadioControl getSimulatedRadioControl() {
397        throw new RuntimeException("not implemented");
398    }
399
400    public PhoneConstants.State getState() {
401        throw new RuntimeException("not implemented");
402    }
403
404    public IccFileHandler getIccFileHandler(){
405        throw new RuntimeException("not implemented");
406    }
407
408    public Handler getHandler() {
409        return this;
410    }
411
412    public void updatePhoneObject(int voiceRadioTech) {
413        throw new RuntimeException("not implemented");
414    }
415
416    public ServiceStateTracker getServiceStateTracker() {
417        throw new RuntimeException("not implemented");
418    }
419
420    public CallTracker getCallTracker() {
421        throw new RuntimeException("not implemented");
422    }
423
424    public AppType getCurrentUiccAppType() {
425        throw new RuntimeException("not implemented");
426    }
427
428    public IccCard getIccCard() {
429        throw new RuntimeException("not implemented");
430    }
431
432    public String getIccSerialNumber() {
433        throw new RuntimeException("not implemented");
434    }
435
436    public boolean getIccRecordsLoaded() {
437        throw new RuntimeException("not implemented");
438    }
439
440    public List<CellInfo> getAllCellInfo() {
441        throw new RuntimeException("not implemented");
442    }
443
444    public void setCellInfoListRate(int rateInMillis) {
445        throw new RuntimeException("not implemented");
446    }
447
448    public boolean getMessageWaitingIndicator() {
449        throw new RuntimeException("not implemented");
450    }
451
452    public void setVoiceCallForwardingFlag(int line, boolean enable, String number) {
453        throw new RuntimeException("not implemented");
454    }
455
456    public boolean getCallForwardingIndicator() {
457        throw new RuntimeException("not implemented");
458    }
459
460    public void queryCdmaRoamingPreference(Message response) {
461        throw new RuntimeException("not implemented");
462    }
463
464    public SignalStrength getSignalStrength() {
465        throw new RuntimeException("not implemented");
466    }
467
468    public void setCdmaRoamingPreference(int cdmaRoamingType, Message response) {
469        throw new RuntimeException("not implemented");
470    }
471
472    public void setCdmaSubscription(int cdmaSubscriptionType, Message response) {
473        throw new RuntimeException("not implemented");
474    }
475
476    public void setPreferredNetworkType(int networkType, Message response) {
477        throw new RuntimeException("not implemented");
478    }
479
480    public void getPreferredNetworkType(Message response) {
481        throw new RuntimeException("not implemented");
482    }
483
484    public void getSmscAddress(Message result) {
485        throw new RuntimeException("not implemented");
486    }
487
488    public void setSmscAddress(String address, Message result) {
489        throw new RuntimeException("not implemented");
490    }
491
492    public void setTTYMode(int ttyMode, Message onComplete) {
493        throw new RuntimeException("not implemented");
494    }
495
496    public void setUiTTYMode(int uiTtyMode, Message onComplete) {
497        throw new RuntimeException("not implemented");
498    }
499
500    public void queryTTYMode(Message onComplete) {
501        throw new RuntimeException("not implemented");
502    }
503
504    public void enableEnhancedVoicePrivacy(boolean enable, Message onComplete) {
505        throw new RuntimeException("not implemented");
506    }
507
508    public void getEnhancedVoicePrivacy(Message onComplete) {
509        throw new RuntimeException("not implemented");
510    }
511
512    public void setBandMode(int bandMode, Message response) {
513        throw new RuntimeException("not implemented");
514    }
515
516    public void queryAvailableBandMode(Message response) {
517        throw new RuntimeException("not implemented");
518    }
519
520    public void invokeOemRilRequestRaw(byte[] data, Message response) {
521        throw new RuntimeException("not implemented");
522    }
523
524    public void invokeOemRilRequestStrings(String[] strings, Message response) {
525        throw new RuntimeException("not implemented");
526    }
527
528    public void nvReadItem(int itemID, Message response) {
529        throw new RuntimeException("not implemented");
530    }
531
532    public void nvWriteItem(int itemID, String itemValue, Message response) {
533        throw new RuntimeException("not implemented");
534    }
535
536    public void nvWriteCdmaPrl(byte[] preferredRoamingList, Message response) {
537        throw new RuntimeException("not implemented");
538    }
539
540    public void nvResetConfig(int resetType, Message response) {
541        throw new RuntimeException("not implemented");
542    }
543
544    public void notifyDataActivity() {
545        throw new RuntimeException("not implemented");
546    }
547
548    public void notifyMessageWaitingIndicator() {
549        throw new RuntimeException("not implemented");
550    }
551
552    public void notifyDataConnection(String reason, String apnType,
553            PhoneConstants.DataState state) {
554        throw new RuntimeException("not implemented");
555    }
556
557    public void notifyDataConnection(String reason, String apnType) {
558        throw new RuntimeException("not implemented");
559    }
560
561    public void notifyDataConnection(String reason) {
562        throw new RuntimeException("not implemented");
563    }
564
565    public void notifyOtaspChanged(int otaspMode) {
566        throw new RuntimeException("not implemented");
567    }
568
569    public void notifySignalStrength() {
570        throw new RuntimeException("not implemented");
571    }
572
573    public void notifyCellInfo(List<CellInfo> cellInfo) {
574        throw new RuntimeException("not implemented");
575    }
576
577    public void notifyDataConnectionRealTimeInfo(DataConnectionRealTimeInfo dcRtInfo) {
578        throw new RuntimeException("not implemented");
579    }
580
581    public void notifyVoLteServiceStateChanged(VoLteServiceState lteState) {
582        throw new RuntimeException("not implemented");
583    }
584
585    private final AtomicBoolean mInEmergencyCall = new AtomicBoolean(false);
586
587    public boolean isInEmergencyCall() {
588        return mInEmergencyCall.get();
589    }
590
591    @VisibleForTesting
592    public void setInEmergencyCall(boolean value) {
593        final boolean oldValue = mInEmergencyCall.getAndSet(value);
594        if (oldValue != value) {
595            mEmergencyCallToggledRegistrants.notifyRegistrants();
596        }
597    }
598
599    private final AtomicBoolean mInEcm = new AtomicBoolean(false);
600
601    public boolean isInEcm() {
602        return mInEcm.get();
603    }
604
605    @VisibleForTesting
606    public void setInEcm(boolean value) {
607        final boolean oldValue = mInEcm.getAndSet(value);
608        if (oldValue != value) {
609            mEmergencyCallToggledRegistrants.notifyRegistrants();
610        }
611    }
612
613    public boolean isVideoCallPresent() {
614        throw new RuntimeException("not implemented");
615    }
616
617    public int getPhoneType() {
618        return PhoneConstants.PHONE_TYPE_GSM;
619    }
620
621    public int getPrecisePhoneType() {
622        throw new RuntimeException("not implemented");
623    }
624
625    public int getVoiceMessageCount(){
626        throw new RuntimeException("not implemented");
627    }
628
629    public void setVoiceMessageCount(int countWaiting) {
630        throw new RuntimeException("not implemented");
631    }
632
633    public int getCdmaEriIconIndex() {
634        throw new RuntimeException("not implemented");
635    }
636
637    public int getCdmaEriIconMode() {
638        throw new RuntimeException("not implemented");
639    }
640
641    public String getCdmaEriText() {
642        throw new RuntimeException("not implemented");
643    }
644
645    public String getCdmaMin() {
646        throw new RuntimeException("not implemented");
647    }
648
649    public boolean isMinInfoReady() {
650        throw new RuntimeException("not implemented");
651    }
652
653    public String getCdmaPrlVersion(){
654        throw new RuntimeException("not implemented");
655    }
656
657    public void sendBurstDtmf(String dtmfString, int on, int off, Message onComplete) {
658        throw new RuntimeException("not implemented");
659    }
660
661    public void exitEmergencyCallbackMode() {
662        throw new RuntimeException("not implemented");
663    }
664
665    public void registerForCdmaOtaStatusChange(Handler h, int what, Object obj) {
666        throw new RuntimeException("not implemented");
667    }
668
669    public void unregisterForCdmaOtaStatusChange(Handler h) {
670        throw new RuntimeException("not implemented");
671    }
672
673    public void registerForSubscriptionInfoReady(Handler h, int what, Object obj) {
674        throw new RuntimeException("not implemented");
675    }
676
677    public void unregisterForSubscriptionInfoReady(Handler h) {
678        throw new RuntimeException("not implemented");
679    }
680
681    public boolean needsOtaServiceProvisioning() {
682        throw new RuntimeException("not implemented");
683    }
684
685    public  boolean isOtaSpNumber(String dialStr) {
686        throw new RuntimeException("not implemented");
687    }
688
689    public void registerForCallWaiting(Handler h, int what, Object obj){
690        throw new RuntimeException("not implemented");
691    }
692
693    public void unregisterForCallWaiting(Handler h){
694        throw new RuntimeException("not implemented");
695    }
696
697    public void registerForEcmTimerReset(Handler h, int what, Object obj) {
698        throw new RuntimeException("not implemented");
699    }
700
701    public void unregisterForEcmTimerReset(Handler h) {
702        throw new RuntimeException("not implemented");
703    }
704
705    public void registerForSignalInfo(Handler h, int what, Object obj) {
706        throw new RuntimeException("not implemented");
707    }
708
709    public void unregisterForSignalInfo(Handler h) {
710        throw new RuntimeException("not implemented");
711    }
712
713    public void registerForDisplayInfo(Handler h, int what, Object obj) {
714        throw new RuntimeException("not implemented");
715    }
716
717    public void unregisterForDisplayInfo(Handler h) {
718        throw new RuntimeException("not implemented");
719    }
720
721    public void registerForNumberInfo(Handler h, int what, Object obj) {
722        throw new RuntimeException("not implemented");
723    }
724
725    public void unregisterForNumberInfo(Handler h) {
726        throw new RuntimeException("not implemented");
727    }
728
729    public void registerForRedirectedNumberInfo(Handler h, int what, Object obj) {
730        throw new RuntimeException("not implemented");
731    }
732
733    public void unregisterForRedirectedNumberInfo(Handler h) {
734        throw new RuntimeException("not implemented");
735    }
736
737    public void registerForLineControlInfo(Handler h, int what, Object obj) {
738        throw new RuntimeException("not implemented");
739    }
740
741    public void unregisterForLineControlInfo(Handler h) {
742        throw new RuntimeException("not implemented");
743    }
744
745    public void registerFoT53ClirlInfo(Handler h, int what, Object obj) {
746        throw new RuntimeException("not implemented");
747    }
748
749    public void unregisterForT53ClirInfo(Handler h) {
750        throw new RuntimeException("not implemented");
751    }
752
753    public void registerForT53AudioControlInfo(Handler h, int what, Object obj) {
754        throw new RuntimeException("not implemented");
755    }
756
757    public void unregisterForT53AudioControlInfo(Handler h) {
758        throw new RuntimeException("not implemented");
759    }
760
761    public void setOnEcbModeExitResponse(Handler h, int what, Object obj){
762        throw new RuntimeException("not implemented");
763    }
764
765    public void unsetOnEcbModeExitResponse(Handler h){
766        throw new RuntimeException("not implemented");
767    }
768
769    public void registerForRadioOffOrNotAvailable(Handler h, int what, Object obj) {
770        throw new RuntimeException("not implemented");
771    }
772
773    public void unregisterForRadioOffOrNotAvailable(Handler h) {
774        throw new RuntimeException("not implemented");
775    }
776
777    public String[] getActiveApnTypes() {
778        throw new RuntimeException("not implemented");
779    }
780
781    public boolean hasMatchedTetherApnSetting() {
782        throw new RuntimeException("not implemented");
783    }
784
785    public String getActiveApnHost(String apnType) {
786        throw new RuntimeException("not implemented");
787    }
788
789    public LinkProperties getLinkProperties(String apnType) {
790        throw new RuntimeException("not implemented");
791    }
792
793    public NetworkCapabilities getNetworkCapabilities(String apnType) {
794        throw new RuntimeException("not implemented");
795    }
796
797    public boolean isDataConnectivityPossible() {
798        throw new RuntimeException("not implemented");
799    }
800
801    public boolean isDataConnectivityPossible(String apnType) {
802        throw new RuntimeException("not implemented");
803    }
804
805    public void notifyNewRingingConnectionP(Connection cn) {
806        throw new RuntimeException("not implemented");
807    }
808
809    public void notifyUnknownConnectionP(Connection cn) {
810        throw new RuntimeException("not implemented");
811    }
812
813    public void notifyForVideoCapabilityChanged(boolean isVideoCallCapable) {
814        throw new RuntimeException("not implemented");
815    }
816
817    public boolean isCspPlmnEnabled() {
818        throw new RuntimeException("not implemented");
819    }
820
821    public IsimRecords getIsimRecords() {
822        throw new RuntimeException("not implemented");
823    }
824
825    public String getMsisdn() {
826        throw new RuntimeException("not implemented");
827    }
828
829    public PhoneConstants.DataState getDataConnectionState() {
830        throw new RuntimeException("not implemented");
831    }
832
833    public void notifyCallForwardingIndicator() {
834        throw new RuntimeException("not implemented");
835    }
836
837    public void notifyDataConnectionFailed(String reason, String apnType) {
838        throw new RuntimeException("not implemented");
839    }
840
841    public void notifyPreciseDataConnectionFailed(String reason, String apnType, String apn,
842            String failCause) {
843        throw new RuntimeException("not implemented");
844    }
845
846    public int getLteOnCdmaMode() {
847        throw new RuntimeException("not implemented");
848    }
849
850    public void setVoiceMessageWaiting(int line, int countWaiting) {
851        throw new RuntimeException("not implemented");
852    }
853
854    public UsimServiceTable getUsimServiceTable() {
855        throw new RuntimeException("not implemented");
856    }
857
858    public UiccCard getUiccCard() {
859        throw new RuntimeException("not implemented");
860    }
861
862    public String[] getPcscfAddress(String apnType) {
863        throw new RuntimeException("not implemented");
864    }
865
866    public void setImsRegistrationState(boolean registered) {
867        throw new RuntimeException("not implemented");
868    }
869
870    public Phone getImsPhone() {
871        throw new RuntimeException("not implemented");
872    }
873
874    public boolean isUtEnabled() {
875        throw new RuntimeException("not implemented");
876    }
877
878    public void dispose() {
879        throw new RuntimeException("not implemented");
880    }
881
882    public int getSubId() {
883        throw new RuntimeException("not implemented");
884    }
885
886    public int getPhoneId() {
887        throw new RuntimeException("not implemented");
888    }
889
890    public int getVoicePhoneServiceState() {
891        throw new RuntimeException("not implemented");
892    }
893
894    public boolean setOperatorBrandOverride(String brand) {
895        throw new RuntimeException("not implemented");
896    }
897
898    public boolean setRoamingOverride(List<String> gsmRoamingList,
899            List<String> gsmNonRoamingList, List<String> cdmaRoamingList,
900            List<String> cdmaNonRoamingList) {
901        throw new RuntimeException("not implemented");
902    }
903
904    public boolean isMccMncMarkedAsRoaming(String mccMnc) {
905        throw new RuntimeException("not implemented");
906    }
907
908    public boolean isMccMncMarkedAsNonRoaming(String mccMnc) {
909        throw new RuntimeException("not implemented");
910    }
911
912    public boolean isSidMarkedAsRoaming(int SID) {
913        throw new RuntimeException("not implemented");
914    }
915
916    public boolean isSidMarkedAsNonRoaming(int SID) {
917        throw new RuntimeException("not implemented");
918    }
919
920    public boolean isImsRegistered() {
921        throw new RuntimeException("not implemented");
922    }
923
924    public boolean isWifiCallingEnabled() {
925        throw new RuntimeException("not implemented");
926    }
927
928    public boolean isVolteEnabled() {
929        throw new RuntimeException("not implemented");
930    }
931
932    public boolean isRadioAvailable() {
933        throw new RuntimeException("not implemented");
934    }
935
936    public boolean isRadioOn() {
937        throw new RuntimeException("not implemented");
938    }
939
940    public void shutdownRadio() {
941        throw new RuntimeException("not implemented");
942    }
943
944    public boolean isShuttingDown() {
945        throw new RuntimeException("not implemented");
946    }
947
948    public void setRadioCapability(RadioCapability rc, Message response) {
949        throw new RuntimeException("not implemented");
950    }
951
952    public int getRadioAccessFamily() {
953        throw new RuntimeException("not implemented");
954    }
955
956    public String getModemUuId() {
957        throw new RuntimeException("not implemented");
958    }
959
960    public RadioCapability getRadioCapability() {
961        throw new RuntimeException("not implemented");
962    }
963
964    public void radioCapabilityUpdated(RadioCapability rc) {
965        throw new RuntimeException("not implemented");
966    }
967
968    public void sendSubscriptionSettings(boolean restoreNetworkSelection) {
969        throw new RuntimeException("not implemented");
970    }
971
972    public void registerForRadioCapabilityChanged(Handler h, int what, Object obj) {
973        throw new RuntimeException("not implemented");
974    }
975
976    public void unregisterForRadioCapabilityChanged(Handler h) {
977        throw new RuntimeException("not implemented");
978    }
979
980    public boolean isImsUseEnabled() {
981        throw new RuntimeException("not implemented");
982    }
983
984    public boolean isVideoEnabled() {
985        throw new RuntimeException("not implemented");
986    }
987
988    public int getLceStatus() {
989        throw new RuntimeException("not implemented");
990    }
991
992    public void getModemActivityInfo(Message response)  {
993        throw new RuntimeException("not implemented");
994    }
995
996    public void startLceAfterRadioIsAvailable() {
997        throw new RuntimeException("not implemented");
998    }
999
1000    public Locale getLocaleFromSimAndCarrierPrefs() {
1001        throw new RuntimeException("not implemented");
1002    }
1003
1004    public void updateDataConnectionTracker() {
1005        throw new RuntimeException("not implemented");
1006    }
1007
1008    public void setInternalDataEnabled(boolean enable, Message onCompleteMsg) {
1009        throw new RuntimeException("not implemented");
1010    }
1011
1012    public boolean updateCurrentCarrierInProvider() {
1013        throw new RuntimeException("not implemented");
1014    }
1015
1016    public void registerForAllDataDisconnected(Handler h, int what, Object obj) {
1017        throw new RuntimeException("not implemented");
1018    }
1019
1020    public void unregisterForAllDataDisconnected(Handler h) {
1021        throw new RuntimeException("not implemented");
1022    }
1023
1024    public IccSmsInterfaceManager getIccSmsInterfaceManager(){
1025        throw new RuntimeException("not implemented");
1026    }
1027
1028    public static void checkWfcWifiOnlyModeBeforeDial(Phone imsPhone, Context context) {
1029        throw new RuntimeException("not implemented");
1030    }
1031
1032    public void startRingbackTone() {
1033        throw new RuntimeException("not implemented");
1034    }
1035
1036    public void stopRingbackTone() {
1037        throw new RuntimeException("not implemented");
1038    }
1039
1040    public void callEndCleanupHandOverCallIfAny() {
1041        throw new RuntimeException("not implemented");
1042    }
1043
1044    public void cancelUSSD() {
1045        throw new RuntimeException("not implemented");
1046    }
1047
1048    public void setBroadcastEmergencyCallStateChanges(boolean broadcast) {
1049        throw new RuntimeException("not implemented");
1050    }
1051
1052    public void sendEmergencyCallStateChange(boolean callActive) {
1053        throw new RuntimeException("not implemented");
1054    }
1055
1056    public Phone getDefaultPhone() {
1057        throw new RuntimeException("not implemented");
1058    }
1059
1060    /** From PhoneInternalInterface - man this class has alot of functions */
1061    public ServiceState getServiceState() {
1062        throw new RuntimeException("not implemented");
1063    }
1064
1065    public CellLocation getCellLocation() {
1066        throw new RuntimeException("not implemented");
1067    }
1068
1069    public DataState getDataConnectionState(String apnType) {
1070        throw new RuntimeException("not implemented");
1071    }
1072
1073    public DataActivityState getDataActivityState() {
1074        throw new RuntimeException("not implemented");
1075    }
1076
1077    public List<? extends MmiCode> getPendingMmiCodes() {
1078        throw new RuntimeException("not implemented");
1079    }
1080
1081    public void sendUssdResponse(String ussdMessge) {
1082        throw new RuntimeException("not implemented");
1083    }
1084
1085    public void registerForSuppServiceNotification(Handler h, int what, Object obj) {
1086        throw new RuntimeException("not implemented");
1087    }
1088
1089    public void unregisterForSuppServiceNotification(Handler h) {
1090        throw new RuntimeException("not implemented");
1091    }
1092
1093    public void acceptCall(int videoState) throws CallStateException {
1094        throw new RuntimeException("not implemented");
1095    }
1096
1097    public void rejectCall() throws CallStateException {
1098        throw new RuntimeException("not implemented");
1099    }
1100
1101    public void switchHoldingAndActive() throws CallStateException {
1102        throw new RuntimeException("not implemented");
1103    }
1104
1105    public boolean canConference() {
1106        throw new RuntimeException("not implemented");
1107    }
1108
1109    public void conference() throws CallStateException {
1110        throw new RuntimeException("not implemented");
1111    }
1112
1113    public boolean canTransfer() {
1114        throw new RuntimeException("not implemented");
1115    }
1116
1117    public void explicitCallTransfer() throws CallStateException {
1118        throw new RuntimeException("not implemented");
1119    }
1120
1121    public void clearDisconnected() {
1122        throw new RuntimeException("not implemented");
1123    }
1124
1125    public Call getForegroundCall() {
1126        throw new RuntimeException("not implemented");
1127    }
1128
1129    public Call getBackgroundCall() {
1130        throw new RuntimeException("not implemented");
1131    }
1132
1133    public Call getRingingCall() {
1134        throw new RuntimeException("not implemented");
1135    }
1136
1137    public Connection dial(String dialString, int videoState) throws CallStateException {
1138        throw new RuntimeException("not implemented");
1139    }
1140
1141    public Connection dial(String dialString, UUSInfo uusInfo, int videoState, Bundle intentExtras)
1142            throws CallStateException {
1143        throw new RuntimeException("not implemented");
1144    }
1145
1146    public boolean handlePinMmi(String dialString) {
1147        throw new RuntimeException("not implemented");
1148    }
1149
1150    public boolean handleInCallMmiCommands(String command) throws CallStateException {
1151        throw new RuntimeException("not implemented");
1152    }
1153
1154    public void sendDtmf(char c) {
1155        throw new RuntimeException("not implemented");
1156    }
1157
1158    public void startDtmf(char c) {
1159        throw new RuntimeException("not implemented");
1160    }
1161
1162    public void stopDtmf() {
1163        throw new RuntimeException("not implemented");
1164    }
1165
1166    public void setRadioPower(boolean power) {
1167        throw new RuntimeException("not implemented");
1168    }
1169
1170    public String getLine1Number() {
1171        throw new RuntimeException("not implemented");
1172    }
1173
1174    public String getLine1AlphaTag() {
1175        throw new RuntimeException("not implemented");
1176    }
1177
1178    public boolean setLine1Number(String alphaTag, String number, Message onComplete) {
1179        throw new RuntimeException("not implemented");
1180    }
1181
1182    public String getVoiceMailNumber() {
1183        throw new RuntimeException("not implemented");
1184    }
1185
1186    public String getVoiceMailAlphaTag() {
1187        throw new RuntimeException("not implemented");
1188    }
1189
1190    public void setVoiceMailNumber(String alphaTag, String voiceMailNumber, Message onComplete) {
1191        throw new RuntimeException("not implemented");
1192    }
1193
1194    public void getCallForwardingOption(int commandInterfaceCFReason, Message onComplete) {
1195        throw new RuntimeException("not implemented");
1196    }
1197
1198    public void setCallForwardingOption(int commandInterfaceCFReason, int commandInterfaceCFAction,
1199            String dialingNumber, int timerSeconds, Message onComplete) {
1200        throw new RuntimeException("not implemented");
1201    }
1202
1203    public void getOutgoingCallerIdDisplay(Message onComplete) {
1204        throw new RuntimeException("not implemented");
1205    }
1206
1207    public void setOutgoingCallerIdDisplay(int commandInterfaceCLIRMode, Message onComplete) {
1208        throw new RuntimeException("not implemented");
1209    }
1210
1211    public void getCallWaiting(Message onComplete) {
1212        throw new RuntimeException("not implemented");
1213    }
1214
1215    public void setCallWaiting(boolean enable, Message onComplete) {
1216        throw new RuntimeException("not implemented");
1217    }
1218
1219    public void getAvailableNetworks(Message response) {
1220        throw new RuntimeException("not implemented");
1221    }
1222
1223    public void getNeighboringCids(Message response) {
1224        throw new RuntimeException("not implemented");
1225    }
1226
1227    public void setOnPostDialCharacter(Handler h, int what, Object obj) {
1228        throw new RuntimeException("not implemented");
1229    }
1230
1231    public void setMute(boolean muted) {
1232        throw new RuntimeException("not implemented");
1233    }
1234
1235    public boolean getMute() {
1236        throw new RuntimeException("not implemented");
1237    }
1238
1239    public void getDataCallList(Message response) {
1240        throw new RuntimeException("not implemented");
1241    }
1242
1243    public void updateServiceLocation() {
1244        throw new RuntimeException("not implemented");
1245    }
1246
1247    public void enableLocationUpdates() {
1248        throw new RuntimeException("not implemented");
1249    }
1250
1251    public void disableLocationUpdates() {
1252        throw new RuntimeException("not implemented");
1253    }
1254
1255    public boolean getDataRoamingEnabled() {
1256        throw new RuntimeException("not implemented");
1257    }
1258
1259    public void setDataRoamingEnabled(boolean enable) {
1260        throw new RuntimeException("not implemented");
1261    }
1262
1263    public boolean getDataEnabled() {
1264        throw new RuntimeException("not implemented");
1265    }
1266
1267    public void setDataEnabled(boolean enable) {
1268        throw new RuntimeException("not implemented");
1269    }
1270
1271    public String getDeviceId() {
1272        throw new RuntimeException("not implemented");
1273    }
1274
1275    public String getDeviceSvn() {
1276        throw new RuntimeException("not implemented");
1277    }
1278
1279    public String getSubscriberId() {
1280        throw new RuntimeException("not implemented");
1281    }
1282
1283    public String getGroupIdLevel1() {
1284        throw new RuntimeException("not implemented");
1285    }
1286
1287    public String getGroupIdLevel2() {
1288        throw new RuntimeException("not implemented");
1289    }
1290
1291    public String getEsn() {
1292        throw new RuntimeException("not implemented");
1293    }
1294
1295    public String getMeid() {
1296        throw new RuntimeException("not implemented");
1297    }
1298
1299    public String getImei() {
1300        throw new RuntimeException("not implemented");
1301    }
1302
1303    public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager() {
1304        throw new RuntimeException("not implemented");
1305    }
1306
1307    public void activateCellBroadcastSms(int activate, Message response) {
1308        throw new RuntimeException("not implemented");
1309    }
1310
1311    public void getCellBroadcastSmsConfig(Message response) {
1312        throw new RuntimeException("not implemented");
1313    }
1314
1315    public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response) {
1316        throw new RuntimeException("not implemented");
1317    }
1318
1319    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
1320        throw new RuntimeException("not implemented");
1321    }
1322}
1323