1 /*
2  * Copyright (C) 2014 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 
17 package com.android.internal.telecom;
18 
19 import android.content.ComponentName;
20 import android.telecom.PhoneAccountHandle;
21 import android.net.Uri;
22 import android.os.Bundle;
23 import android.telecom.PhoneAccount;
24 
25 /**
26  * Interface used to interact with Telecom. Mostly this is used by TelephonyManager for passing
27  * commands that were previously handled by ITelephony.
28  * {@hide}
29  */
30 interface ITelecomService {
31     /**
32      * Brings the in-call screen to the foreground if there is an active call.
33      *
34      * @param showDialpad if true, make the dialpad visible initially.
35      */
showInCallScreen(boolean showDialpad, String callingPackage)36     void showInCallScreen(boolean showDialpad, String callingPackage);
37 
38     /**
39      * @see TelecomServiceImpl#getDefaultOutgoingPhoneAccount
40      */
getDefaultOutgoingPhoneAccount(in String uriScheme, String callingPackage)41     PhoneAccountHandle getDefaultOutgoingPhoneAccount(in String uriScheme, String callingPackage);
42 
43     /**
44      * @see TelecomServiceImpl#getUserSelectedOutgoingPhoneAccount
45      */
getUserSelectedOutgoingPhoneAccount()46     PhoneAccountHandle getUserSelectedOutgoingPhoneAccount();
47 
48     /**
49      * @see TelecomServiceImpl#setUserSelectedOutgoingPhoneAccount
50      */
setUserSelectedOutgoingPhoneAccount(in PhoneAccountHandle account)51     void setUserSelectedOutgoingPhoneAccount(in PhoneAccountHandle account);
52 
53     /**
54      * @see TelecomServiceImpl#getCallCapablePhoneAccounts
55      */
getCallCapablePhoneAccounts( boolean includeDisabledAccounts, String callingPackage)56     List<PhoneAccountHandle> getCallCapablePhoneAccounts(
57             boolean includeDisabledAccounts, String callingPackage);
58 
59     /**
60      * @see TelecomManager#getPhoneAccountsSupportingScheme
61      */
getPhoneAccountsSupportingScheme(in String uriScheme, String callingPackage)62     List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(in String uriScheme,
63             String callingPackage);
64 
65     /**
66      * @see TelecomManager#getPhoneAccountsForPackage
67      */
getPhoneAccountsForPackage(in String packageName)68     List<PhoneAccountHandle> getPhoneAccountsForPackage(in String packageName);
69 
70     /**
71      * @see TelecomManager#getPhoneAccount
72      */
getPhoneAccount(in PhoneAccountHandle account)73     PhoneAccount getPhoneAccount(in PhoneAccountHandle account);
74 
75     /**
76      * @see TelecomManager#getAllPhoneAccountsCount
77      */
getAllPhoneAccountsCount()78     int getAllPhoneAccountsCount();
79 
80     /**
81      * @see TelecomManager#getAllPhoneAccounts
82      */
getAllPhoneAccounts()83     List<PhoneAccount> getAllPhoneAccounts();
84 
85     /**
86      * @see TelecomManager#getAllPhoneAccountHandles
87      */
getAllPhoneAccountHandles()88     List<PhoneAccountHandle> getAllPhoneAccountHandles();
89 
90     /**
91      * @see TelecomServiceImpl#getSimCallManager
92      */
getSimCallManager()93     PhoneAccountHandle getSimCallManager();
94 
95     /**
96      * @see TelecomServiceImpl#getSimCallManagerForUser
97      */
getSimCallManagerForUser(int userId)98     PhoneAccountHandle getSimCallManagerForUser(int userId);
99 
100     /**
101      * @see TelecomServiceImpl#registerPhoneAccount
102      */
registerPhoneAccount(in PhoneAccount metadata)103     void registerPhoneAccount(in PhoneAccount metadata);
104 
105     /**
106      * @see TelecomServiceImpl#unregisterPhoneAccount
107      */
unregisterPhoneAccount(in PhoneAccountHandle account)108     void unregisterPhoneAccount(in PhoneAccountHandle account);
109 
110     /**
111      * @see TelecomServiceImpl#clearAccounts
112      */
clearAccounts(String packageName)113     void clearAccounts(String packageName);
114 
115     /**
116      * @see TelecomServiceImpl#isVoiceMailNumber
117      */
isVoiceMailNumber(in PhoneAccountHandle accountHandle, String number, String callingPackage)118     boolean isVoiceMailNumber(in PhoneAccountHandle accountHandle, String number,
119             String callingPackage);
120 
121     /**
122      * @see TelecomServiceImpl#getVoiceMailNumber
123      */
getVoiceMailNumber(in PhoneAccountHandle accountHandle, String callingPackage)124     String getVoiceMailNumber(in PhoneAccountHandle accountHandle, String callingPackage);
125 
126     /**
127      * @see TelecomServiceImpl#getLine1Number
128      */
getLine1Number(in PhoneAccountHandle accountHandle, String callingPackage)129     String getLine1Number(in PhoneAccountHandle accountHandle, String callingPackage);
130 
131     /**
132      * @see TelecomServiceImpl#getDefaultPhoneApp
133      */
getDefaultPhoneApp()134     ComponentName getDefaultPhoneApp();
135 
136     /**
137      * @see TelecomServiceImpl#getDefaultDialerPackage
138      */
getDefaultDialerPackage()139     String getDefaultDialerPackage();
140 
141     /**
142      * @see TelecomServiceImpl#getSystemDialerPackage
143      */
getSystemDialerPackage()144     String getSystemDialerPackage();
145 
146     //
147     // Internal system apis relating to call management.
148     //
149 
150     /**
151      * @see TelecomServiceImpl#silenceRinger
152      */
silenceRinger(String callingPackage)153     void silenceRinger(String callingPackage);
154 
155     /**
156      * @see TelecomServiceImpl#isInCall
157      */
isInCall(String callingPackage)158     boolean isInCall(String callingPackage);
159 
160     /**
161      * @see TelecomServiceImpl#isRinging
162      */
isRinging(String callingPackage)163     boolean isRinging(String callingPackage);
164 
165     /**
166      * @see TelecomServiceImpl#getCallState
167      */
getCallState()168     int getCallState();
169 
170     /**
171      * @see TelecomServiceImpl#endCall
172      */
endCall()173     boolean endCall();
174 
175     /**
176      * @see TelecomServiceImpl#acceptRingingCall
177      */
acceptRingingCall()178     void acceptRingingCall();
179 
180     /**
181      * @see TelecomServiceImpl#cancelMissedCallsNotification
182      */
cancelMissedCallsNotification(String callingPackage)183     void cancelMissedCallsNotification(String callingPackage);
184 
185     /**
186      * @see TelecomServiceImpl#handleMmi
187      */
handlePinMmi(String dialString, String callingPackage)188     boolean handlePinMmi(String dialString, String callingPackage);
189 
190     /**
191      * @see TelecomServiceImpl#handleMmi
192      */
handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString, String callingPackage)193     boolean handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString,
194             String callingPackage);
195 
196     /**
197      * @see TelecomServiceImpl#getAdnUriForPhoneAccount
198      */
getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage)199     Uri getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage);
200 
201     /**
202      * @see TelecomServiceImpl#isTtySupported
203      */
isTtySupported(String callingPackage)204     boolean isTtySupported(String callingPackage);
205 
206     /**
207      * @see TelecomServiceImpl#getCurrentTtyMode
208      */
getCurrentTtyMode(String callingPackage)209     int getCurrentTtyMode(String callingPackage);
210 
211     /**
212      * @see TelecomServiceImpl#addNewIncomingCall
213      */
addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras)214     void addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras);
215 
216     /**
217      * @see TelecomServiceImpl#addNewUnknownCall
218      */
addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras)219     void addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras);
220 
221     /**
222      * @see TelecomServiceImpl#placeCall
223      */
placeCall(in Uri handle, in Bundle extras, String callingPackage)224     void placeCall(in Uri handle, in Bundle extras, String callingPackage);
225 
226     /**
227      * @see TelecomServiceImpl#enablePhoneAccount
228      */
enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled)229     boolean enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled);
230 
231     /**
232      * @see TelecomServiceImpl#setDefaultDialer
233      */
setDefaultDialer(in String packageName)234     boolean setDefaultDialer(in String packageName);
235 }
236