Home | History | Annotate | Download | only in telecom
      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.TelecomAnalytics;
     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      */
     38     void showInCallScreen(boolean showDialpad, String callingPackage);
     39 
     40     /**
     41      * @see TelecomServiceImpl#getDefaultOutgoingPhoneAccount
     42      */
     43     PhoneAccountHandle getDefaultOutgoingPhoneAccount(in String uriScheme, String callingPackage);
     44 
     45     /**
     46      * @see TelecomServiceImpl#getUserSelectedOutgoingPhoneAccount
     47      */
     48     PhoneAccountHandle getUserSelectedOutgoingPhoneAccount(String callingPackage);
     49 
     50     /**
     51      * @see TelecomServiceImpl#setUserSelectedOutgoingPhoneAccount
     52      */
     53     void setUserSelectedOutgoingPhoneAccount(in PhoneAccountHandle account);
     54 
     55     /**
     56      * @see TelecomServiceImpl#getCallCapablePhoneAccounts
     57      */
     58     List<PhoneAccountHandle> getCallCapablePhoneAccounts(
     59             boolean includeDisabledAccounts, String callingPackage);
     60 
     61     /**
     62      * @see TelecomServiceImpl#getSelfManagedPhoneAccounts
     63      */
     64     List<PhoneAccountHandle> getSelfManagedPhoneAccounts(String callingPackage);
     65 
     66     /**
     67      * @see TelecomManager#getPhoneAccountsSupportingScheme
     68      */
     69     List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(in String uriScheme,
     70             String callingPackage);
     71 
     72     /**
     73      * @see TelecomManager#getPhoneAccountsForPackage
     74      */
     75     List<PhoneAccountHandle> getPhoneAccountsForPackage(in String packageName);
     76 
     77     /**
     78      * @see TelecomManager#getPhoneAccount
     79      */
     80     PhoneAccount getPhoneAccount(in PhoneAccountHandle account);
     81 
     82     /**
     83      * @see TelecomManager#getAllPhoneAccountsCount
     84      */
     85     int getAllPhoneAccountsCount();
     86 
     87     /**
     88      * @see TelecomManager#getAllPhoneAccounts
     89      */
     90     List<PhoneAccount> getAllPhoneAccounts();
     91 
     92     /**
     93      * @see TelecomManager#getAllPhoneAccountHandles
     94      */
     95     List<PhoneAccountHandle> getAllPhoneAccountHandles();
     96 
     97     /**
     98      * @see TelecomServiceImpl#getSimCallManager
     99      */
    100     PhoneAccountHandle getSimCallManager(int subId);
    101 
    102     /**
    103      * @see TelecomServiceImpl#getSimCallManagerForUser
    104      */
    105     PhoneAccountHandle getSimCallManagerForUser(int userId);
    106 
    107     /**
    108      * @see TelecomServiceImpl#registerPhoneAccount
    109      */
    110     void registerPhoneAccount(in PhoneAccount metadata);
    111 
    112     /**
    113      * @see TelecomServiceImpl#unregisterPhoneAccount
    114      */
    115     void unregisterPhoneAccount(in PhoneAccountHandle account);
    116 
    117     /**
    118      * @see TelecomServiceImpl#clearAccounts
    119      */
    120     void clearAccounts(String packageName);
    121 
    122     /**
    123      * @see TelecomServiceImpl#isVoiceMailNumber
    124      */
    125     boolean isVoiceMailNumber(in PhoneAccountHandle accountHandle, String number,
    126             String callingPackage);
    127 
    128     /**
    129      * @see TelecomServiceImpl#getVoiceMailNumber
    130      */
    131     String getVoiceMailNumber(in PhoneAccountHandle accountHandle, String callingPackage);
    132 
    133     /**
    134      * @see TelecomServiceImpl#getLine1Number
    135      */
    136     String getLine1Number(in PhoneAccountHandle accountHandle, String callingPackage);
    137 
    138     /**
    139      * @see TelecomServiceImpl#getDefaultPhoneApp
    140      */
    141     ComponentName getDefaultPhoneApp();
    142 
    143     /**
    144      * @see TelecomServiceImpl#getDefaultDialerPackage
    145      */
    146     String getDefaultDialerPackage();
    147 
    148     /**
    149      * @see TelecomServiceImpl#getSystemDialerPackage
    150      */
    151     String getSystemDialerPackage();
    152 
    153     /**
    154     * @see TelecomServiceImpl#dumpCallAnalytics
    155     */
    156     TelecomAnalytics dumpCallAnalytics();
    157 
    158     //
    159     // Internal system apis relating to call management.
    160     //
    161 
    162     /**
    163      * @see TelecomServiceImpl#silenceRinger
    164      */
    165     void silenceRinger(String callingPackage);
    166 
    167     /**
    168      * @see TelecomServiceImpl#isInCall
    169      */
    170     boolean isInCall(String callingPackage);
    171 
    172     /**
    173      * @see TelecomServiceImpl#isInManagedCall
    174      */
    175     boolean isInManagedCall(String callingPackage);
    176 
    177     /**
    178      * @see TelecomServiceImpl#isRinging
    179      */
    180     boolean isRinging(String callingPackage);
    181 
    182     /**
    183      * @see TelecomServiceImpl#getCallState
    184      */
    185     @UnsupportedAppUsage
    186     int getCallState();
    187 
    188     /**
    189      * @see TelecomServiceImpl#endCall
    190      */
    191     boolean endCall(String callingPackage);
    192 
    193     /**
    194      * @see TelecomServiceImpl#acceptRingingCall
    195      */
    196     void acceptRingingCall(String callingPackage);
    197 
    198     /**
    199      * @see TelecomServiceImpl#acceptRingingCallWithVideoState(int)
    200      */
    201     void acceptRingingCallWithVideoState(String callingPackage, int videoState);
    202 
    203     /**
    204      * @see TelecomServiceImpl#cancelMissedCallsNotification
    205      */
    206     void cancelMissedCallsNotification(String callingPackage);
    207 
    208     /**
    209      * @see TelecomServiceImpl#handleMmi
    210      */
    211     boolean handlePinMmi(String dialString, String callingPackage);
    212 
    213     /**
    214      * @see TelecomServiceImpl#handleMmi
    215      */
    216     boolean handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString,
    217             String callingPackage);
    218 
    219     /**
    220      * @see TelecomServiceImpl#getAdnUriForPhoneAccount
    221      */
    222     Uri getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage);
    223 
    224     /**
    225      * @see TelecomServiceImpl#isTtySupported
    226      */
    227     boolean isTtySupported(String callingPackage);
    228 
    229     /**
    230      * @see TelecomServiceImpl#getCurrentTtyMode
    231      */
    232     int getCurrentTtyMode(String callingPackage);
    233 
    234     /**
    235      * @see TelecomServiceImpl#addNewIncomingCall
    236      */
    237     void addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras);
    238 
    239     /**
    240      * @see TelecomServiceImpl#addNewUnknownCall
    241      */
    242     void addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras);
    243 
    244     /**
    245      * @see TelecomServiceImpl#placeCall
    246      */
    247     void placeCall(in Uri handle, in Bundle extras, String callingPackage);
    248 
    249     /**
    250      * @see TelecomServiceImpl#enablePhoneAccount
    251      */
    252     boolean enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled);
    253 
    254     /**
    255      * @see TelecomServiceImpl#setDefaultDialer
    256      */
    257     boolean setDefaultDialer(in String packageName);
    258 
    259     /**
    260     * @see TelecomServiceImpl#createManageBlockedNumbersIntent
    261     **/
    262     Intent createManageBlockedNumbersIntent();
    263 
    264     /**
    265      * @see TelecomServiceImpl#isIncomingCallPermitted
    266      */
    267     boolean isIncomingCallPermitted(in PhoneAccountHandle phoneAccountHandle);
    268 
    269     /**
    270      * @see TelecomServiceImpl#isOutgoingCallPermitted
    271      */
    272     boolean isOutgoingCallPermitted(in PhoneAccountHandle phoneAccountHandle);
    273 
    274     /**
    275      * @see TelecomServiceImpl#waitOnHandler
    276      */
    277     void waitOnHandlers();
    278 
    279     /**
    280      * @see TelecomServiceImpl#acceptHandover
    281      */
    282     void acceptHandover(in Uri srcAddr, int videoState, in PhoneAccountHandle destAcct);
    283 
    284     /**
    285      * @see TelecomServiceImpl#isInEmergencyCall
    286      */
    287     boolean isInEmergencyCall();
    288 
    289     /**
    290      * @see TelecomServiceImpl#handleCallIntent
    291      */
    292     void handleCallIntent(in Intent intent);
    293 
    294     void setTestDefaultCallRedirectionApp(String packageName);
    295 
    296     void setTestPhoneAcctSuggestionComponent(String flattenedComponentName);
    297 
    298     void setTestDefaultCallScreeningApp(String packageName);
    299 
    300     void addOrRemoveTestCallCompanionApp(String packageName, boolean isAdded);
    301 
    302     void setTestAutoModeApp(String packageName);
    303 
    304     /**
    305      * @see TelecomServiceImpl#setTestDefaultDialer
    306      */
    307     void setTestDefaultDialer(in String packageName);
    308 
    309 }
    310