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();
     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 TelecomManager#getPhoneAccountsSupportingScheme
     63      */
     64     List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(in String uriScheme,
     65             String callingPackage);
     66 
     67     /**
     68      * @see TelecomManager#getPhoneAccountsForPackage
     69      */
     70     List<PhoneAccountHandle> getPhoneAccountsForPackage(in String packageName);
     71 
     72     /**
     73      * @see TelecomManager#getPhoneAccount
     74      */
     75     PhoneAccount getPhoneAccount(in PhoneAccountHandle account);
     76 
     77     /**
     78      * @see TelecomManager#getAllPhoneAccountsCount
     79      */
     80     int getAllPhoneAccountsCount();
     81 
     82     /**
     83      * @see TelecomManager#getAllPhoneAccounts
     84      */
     85     List<PhoneAccount> getAllPhoneAccounts();
     86 
     87     /**
     88      * @see TelecomManager#getAllPhoneAccountHandles
     89      */
     90     List<PhoneAccountHandle> getAllPhoneAccountHandles();
     91 
     92     /**
     93      * @see TelecomServiceImpl#getSimCallManager
     94      */
     95     PhoneAccountHandle getSimCallManager();
     96 
     97     /**
     98      * @see TelecomServiceImpl#getSimCallManagerForUser
     99      */
    100     PhoneAccountHandle getSimCallManagerForUser(int userId);
    101 
    102     /**
    103      * @see TelecomServiceImpl#registerPhoneAccount
    104      */
    105     void registerPhoneAccount(in PhoneAccount metadata);
    106 
    107     /**
    108      * @see TelecomServiceImpl#unregisterPhoneAccount
    109      */
    110     void unregisterPhoneAccount(in PhoneAccountHandle account);
    111 
    112     /**
    113      * @see TelecomServiceImpl#clearAccounts
    114      */
    115     void clearAccounts(String packageName);
    116 
    117     /**
    118      * @see TelecomServiceImpl#isVoiceMailNumber
    119      */
    120     boolean isVoiceMailNumber(in PhoneAccountHandle accountHandle, String number,
    121             String callingPackage);
    122 
    123     /**
    124      * @see TelecomServiceImpl#getVoiceMailNumber
    125      */
    126     String getVoiceMailNumber(in PhoneAccountHandle accountHandle, String callingPackage);
    127 
    128     /**
    129      * @see TelecomServiceImpl#getLine1Number
    130      */
    131     String getLine1Number(in PhoneAccountHandle accountHandle, String callingPackage);
    132 
    133     /**
    134      * @see TelecomServiceImpl#getDefaultPhoneApp
    135      */
    136     ComponentName getDefaultPhoneApp();
    137 
    138     /**
    139      * @see TelecomServiceImpl#getDefaultDialerPackage
    140      */
    141     String getDefaultDialerPackage();
    142 
    143     /**
    144      * @see TelecomServiceImpl#getSystemDialerPackage
    145      */
    146     String getSystemDialerPackage();
    147 
    148     /**
    149     * @see TelecomServiceImpl#dumpCallAnalytics
    150     */
    151     TelecomAnalytics dumpCallAnalytics();
    152 
    153     //
    154     // Internal system apis relating to call management.
    155     //
    156 
    157     /**
    158      * @see TelecomServiceImpl#silenceRinger
    159      */
    160     void silenceRinger(String callingPackage);
    161 
    162     /**
    163      * @see TelecomServiceImpl#isInCall
    164      */
    165     boolean isInCall(String callingPackage);
    166 
    167     /**
    168      * @see TelecomServiceImpl#isRinging
    169      */
    170     boolean isRinging(String callingPackage);
    171 
    172     /**
    173      * @see TelecomServiceImpl#getCallState
    174      */
    175     int getCallState();
    176 
    177     /**
    178      * @see TelecomServiceImpl#endCall
    179      */
    180     boolean endCall();
    181 
    182     /**
    183      * @see TelecomServiceImpl#acceptRingingCall
    184      */
    185     void acceptRingingCall();
    186 
    187     /**
    188      * @see TelecomServiceImpl#acceptRingingCallWithVideoState(int)
    189      */
    190     void acceptRingingCallWithVideoState(int videoState);
    191 
    192     /**
    193      * @see TelecomServiceImpl#cancelMissedCallsNotification
    194      */
    195     void cancelMissedCallsNotification(String callingPackage);
    196 
    197     /**
    198      * @see TelecomServiceImpl#handleMmi
    199      */
    200     boolean handlePinMmi(String dialString, String callingPackage);
    201 
    202     /**
    203      * @see TelecomServiceImpl#handleMmi
    204      */
    205     boolean handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString,
    206             String callingPackage);
    207 
    208     /**
    209      * @see TelecomServiceImpl#getAdnUriForPhoneAccount
    210      */
    211     Uri getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage);
    212 
    213     /**
    214      * @see TelecomServiceImpl#isTtySupported
    215      */
    216     boolean isTtySupported(String callingPackage);
    217 
    218     /**
    219      * @see TelecomServiceImpl#getCurrentTtyMode
    220      */
    221     int getCurrentTtyMode(String callingPackage);
    222 
    223     /**
    224      * @see TelecomServiceImpl#addNewIncomingCall
    225      */
    226     void addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras);
    227 
    228     /**
    229      * @see TelecomServiceImpl#addNewUnknownCall
    230      */
    231     void addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras);
    232 
    233     /**
    234      * @see TelecomServiceImpl#placeCall
    235      */
    236     void placeCall(in Uri handle, in Bundle extras, String callingPackage);
    237 
    238     /**
    239      * @see TelecomServiceImpl#enablePhoneAccount
    240      */
    241     boolean enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled);
    242 
    243     /**
    244      * @see TelecomServiceImpl#setDefaultDialer
    245      */
    246     boolean setDefaultDialer(in String packageName);
    247 
    248     /**
    249     * @see TelecomServiceImpl#createManageBlockedNumbersIntent
    250     **/
    251     Intent createManageBlockedNumbersIntent();
    252 }
    253