summaryrefslogtreecommitdiffstats
path: root/telecomm/java/android/telecomm/ICallServiceAdapter.aidl
blob: 48622d310f928a9c68058bad4e2bf14c7bc09325 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.telecomm;

import android.telecomm.CallInfo;

/**
 * Provides methods for ICallService implementations to interact with the system phone app.
 * TODO(santoscordon): Need final public-facing comments in this file.
 * @hide
 */
oneway interface ICallServiceAdapter {

    /**
     * Retrieves a new unique call ID for use with newIncomingCall.
     */
    void getNextCallId(/* TODO(santoscordon): Needs response object */);

    /**
     * Receives confirmation of a call service's ability to place a call. This method is used in
     * response to {@link ICallService#isCompatibleWith}.
     * TODO(santoscordon): rename to setIsCompatibleWith().
     *
     * @param callId The identifier of the call for which compatibility is being received. This ID
     *     should correspond to the ID given as part of the call information in
     *     {@link ICallService#isCompatibleWith}.
     * @param isCompatible True if the call service can place the call.
     */
    void setCompatibleWith(String callId, boolean isCompatible);

    /**
     * Tells CallsManager of a new incoming call. CallInfo should be populated using a new call ID
     * retrieved via {@link #getNextCallId}.
     *
     * @param callInfo The details of the relevant call.
     */
    void newIncomingCall(in CallInfo callInfo);

    /**
     * Tells CallsManager of a new outgoing call. Use of this method should always follow
     * {@link ICallService#call}.
     *
     * @param callId The unique ID (via {@link ICallService#call}) of the new outgoing call.
     */
    void newOutgoingCall(String callId);

    /**
     * Sets a call's state to active (e.g., an ongoing call where two parties can actively
     * communicate).
     *
     * @param callId The unique ID of the call whose state is changing to active.
     */
    void setActive(String callId);

    /**
     * Sets a call's state to ringing (e.g., an inbound ringing call).
     *
     * @param callId The unique ID of the call whose state is changing to ringing.
     */
    void setRinging(String callId);

    /**
     * Sets a call's state to dialing (e.g., dialing an outbound call).
     *
     * @param callId The unique ID of the call whose state is changing to dialing.
     */
    void setDialing(String callId);

    /**
     * Sets a call's state to disconnected.
     *
     * @param callId The unique ID of the call whose state is changing to disconnected.
     */
    void setDisconnected(String callId);
}