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