1// Signature format: 4.0
2package androidx.core.telecom {
3
4  public final class CallAttributesCompat {
5    ctor public CallAttributesCompat(CharSequence displayName, android.net.Uri address, int direction, optional int callType, optional int callCapabilities, optional androidx.core.telecom.CallEndpointCompat? preferredStartingCallEndpoint);
6    method public android.net.Uri getAddress();
7    method public int getCallCapabilities();
8    method public int getCallType();
9    method public int getDirection();
10    method public CharSequence getDisplayName();
11    method public androidx.core.telecom.CallEndpointCompat? getPreferredStartingCallEndpoint();
12    property public android.net.Uri address;
13    property public int callCapabilities;
14    property public int callType;
15    property public int direction;
16    property public CharSequence displayName;
17    property public androidx.core.telecom.CallEndpointCompat? preferredStartingCallEndpoint;
18    field public static final int CALL_TYPE_AUDIO_CALL = 1; // 0x1
19    field public static final int CALL_TYPE_VIDEO_CALL = 2; // 0x2
20    field public static final androidx.core.telecom.CallAttributesCompat.Companion Companion;
21    field public static final int DIRECTION_INCOMING = 1; // 0x1
22    field public static final int DIRECTION_OUTGOING = 2; // 0x2
23    field public static final int SUPPORTS_SET_INACTIVE = 2; // 0x2
24    field public static final int SUPPORTS_STREAM = 4; // 0x4
25    field public static final int SUPPORTS_TRANSFER = 8; // 0x8
26  }
27
28  public static final class CallAttributesCompat.Companion {
29    property public static int CALL_TYPE_AUDIO_CALL;
30    property public static int CALL_TYPE_VIDEO_CALL;
31    property public static int DIRECTION_INCOMING;
32    property public static int DIRECTION_OUTGOING;
33    property public static int SUPPORTS_SET_INACTIVE;
34    property public static int SUPPORTS_STREAM;
35    property public static int SUPPORTS_TRANSFER;
36  }
37
38  public abstract sealed class CallControlResult {
39  }
40
41  public static final class CallControlResult.Error extends androidx.core.telecom.CallControlResult {
42    ctor public CallControlResult.Error(int errorCode);
43    method public int getErrorCode();
44    property public int errorCode;
45  }
46
47  public static final class CallControlResult.Success extends androidx.core.telecom.CallControlResult {
48    ctor public CallControlResult.Success();
49  }
50
51  public interface CallControlScope extends kotlinx.coroutines.CoroutineScope {
52    method public suspend Object? answer(int callType, kotlin.coroutines.Continuation<? super androidx.core.telecom.CallControlResult>);
53    method public suspend Object? disconnect(android.telecom.DisconnectCause disconnectCause, kotlin.coroutines.Continuation<? super androidx.core.telecom.CallControlResult>);
54    method public kotlinx.coroutines.flow.Flow<java.util.List<androidx.core.telecom.CallEndpointCompat>> getAvailableEndpoints();
55    method public android.os.ParcelUuid getCallId();
56    method public kotlinx.coroutines.flow.Flow<androidx.core.telecom.CallEndpointCompat> getCurrentCallEndpoint();
57    method public kotlinx.coroutines.flow.Flow<java.lang.Boolean> isMuted();
58    method public suspend Object? requestEndpointChange(androidx.core.telecom.CallEndpointCompat endpoint, kotlin.coroutines.Continuation<? super androidx.core.telecom.CallControlResult>);
59    method public suspend Object? setActive(kotlin.coroutines.Continuation<? super androidx.core.telecom.CallControlResult>);
60    method public suspend Object? setInactive(kotlin.coroutines.Continuation<? super androidx.core.telecom.CallControlResult>);
61    property public abstract kotlinx.coroutines.flow.Flow<java.util.List<androidx.core.telecom.CallEndpointCompat>> availableEndpoints;
62    property public abstract kotlinx.coroutines.flow.Flow<androidx.core.telecom.CallEndpointCompat> currentCallEndpoint;
63    property public abstract kotlinx.coroutines.flow.Flow<java.lang.Boolean> isMuted;
64  }
65
66  @RequiresApi(android.os.Build.VERSION_CODES.O) public final class CallEndpointCompat implements java.lang.Comparable<androidx.core.telecom.CallEndpointCompat> {
67    ctor public CallEndpointCompat(CharSequence name, int type, android.os.ParcelUuid identifier);
68    method public int compareTo(androidx.core.telecom.CallEndpointCompat other);
69    method public android.os.ParcelUuid getIdentifier();
70    method public CharSequence getName();
71    method public int getType();
72    property public android.os.ParcelUuid identifier;
73    property public CharSequence name;
74    property public int type;
75    field public static final androidx.core.telecom.CallEndpointCompat.Companion Companion;
76    field public static final int TYPE_BLUETOOTH = 2; // 0x2
77    field public static final int TYPE_EARPIECE = 1; // 0x1
78    field public static final int TYPE_SPEAKER = 4; // 0x4
79    field public static final int TYPE_STREAMING = 5; // 0x5
80    field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
81    field public static final int TYPE_WIRED_HEADSET = 3; // 0x3
82  }
83
84  public static final class CallEndpointCompat.Companion {
85    property public static int TYPE_BLUETOOTH;
86    property public static int TYPE_EARPIECE;
87    property public static int TYPE_SPEAKER;
88    property public static int TYPE_STREAMING;
89    property public static int TYPE_UNKNOWN;
90    property public static int TYPE_WIRED_HEADSET;
91  }
92
93  public final class CallException extends java.lang.RuntimeException {
94    ctor public CallException();
95    ctor public CallException(optional int code);
96    method public int getCode();
97    property public int code;
98    field public static final androidx.core.telecom.CallException.Companion Companion;
99    field public static final int ERROR_BLUETOOTH_DEVICE_IS_NULL = 8; // 0x8
100    field public static final int ERROR_CALL_CANNOT_BE_SET_TO_ACTIVE = 4; // 0x4
101    field public static final int ERROR_CALL_DOES_NOT_SUPPORT_HOLD = 7; // 0x7
102    field public static final int ERROR_CALL_IS_NOT_BEING_TRACKED = 3; // 0x3
103    field public static final int ERROR_CALL_NOT_PERMITTED_AT_PRESENT_TIME = 5; // 0x5
104    field public static final int ERROR_CANNOT_HOLD_CURRENT_ACTIVE_CALL = 2; // 0x2
105    field public static final int ERROR_OPERATION_TIMED_OUT = 6; // 0x6
106    field public static final int ERROR_UNKNOWN = 1; // 0x1
107  }
108
109  public static final class CallException.Companion {
110    property public static int ERROR_BLUETOOTH_DEVICE_IS_NULL;
111    property public static int ERROR_CALL_CANNOT_BE_SET_TO_ACTIVE;
112    property public static int ERROR_CALL_DOES_NOT_SUPPORT_HOLD;
113    property public static int ERROR_CALL_IS_NOT_BEING_TRACKED;
114    property public static int ERROR_CALL_NOT_PERMITTED_AT_PRESENT_TIME;
115    property public static int ERROR_CANNOT_HOLD_CURRENT_ACTIVE_CALL;
116    property public static int ERROR_OPERATION_TIMED_OUT;
117    property public static int ERROR_UNKNOWN;
118  }
119
120  @RequiresApi(android.os.Build.VERSION_CODES.O) public final class CallsManager implements androidx.core.telecom.extensions.CallsManagerExtensions {
121    ctor public CallsManager(android.content.Context context);
122    method @RequiresPermission("android.permission.MANAGE_OWN_CALLS") public suspend Object? addCall(androidx.core.telecom.CallAttributesCompat callAttributes, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onAnswer, kotlin.jvm.functions.Function2<? super android.telecom.DisconnectCause,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onDisconnect, kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onSetActive, kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onSetInactive, kotlin.jvm.functions.Function1<? super androidx.core.telecom.CallControlScope,kotlin.Unit> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
123    method @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public suspend Object? addCallWithExtensions(androidx.core.telecom.CallAttributesCompat callAttributes, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onAnswer, kotlin.jvm.functions.Function2<? super android.telecom.DisconnectCause,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onDisconnect, kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onSetActive, kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onSetInactive, kotlin.jvm.functions.Function2<? super androidx.core.telecom.extensions.ExtensionInitializationScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> init, kotlin.coroutines.Continuation<? super kotlin.Unit>);
124    method public kotlinx.coroutines.flow.Flow<java.util.List<androidx.core.telecom.CallEndpointCompat>> getAvailableStartingCallEndpoints();
125    method @RequiresPermission("android.permission.MANAGE_OWN_CALLS") public void registerAppWithTelecom(int capabilities);
126    field public static final int CAPABILITY_BASELINE = 1; // 0x1
127    field public static final int CAPABILITY_SUPPORTS_CALL_STREAMING = 4; // 0x4
128    field public static final int CAPABILITY_SUPPORTS_VIDEO_CALLING = 2; // 0x2
129    field public static final androidx.core.telecom.CallsManager.Companion Companion;
130  }
131
132  public static final class CallsManager.Companion {
133    property public static int CAPABILITY_BASELINE;
134    property public static int CAPABILITY_SUPPORTS_CALL_STREAMING;
135    property public static int CAPABILITY_SUPPORTS_VIDEO_CALLING;
136  }
137
138  @RequiresApi(android.os.Build.VERSION_CODES.O) public class InCallServiceCompat extends android.telecom.InCallService implements androidx.core.telecom.extensions.CallExtensions androidx.lifecycle.LifecycleOwner {
139    ctor public InCallServiceCompat();
140    method @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public suspend Object? connectExtensions(android.telecom.Call call, kotlin.jvm.functions.Function1<? super androidx.core.telecom.extensions.CallExtensionScope,kotlin.Unit> init, kotlin.coroutines.Continuation<? super kotlin.Unit>);
141    method public androidx.lifecycle.Lifecycle getLifecycle();
142    property public androidx.lifecycle.Lifecycle lifecycle;
143  }
144
145}
146
147package androidx.core.telecom.extensions {
148
149  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface CallExtensionScope {
150    method public androidx.core.telecom.extensions.CallIconExtensionRemote addCallIconSupport(kotlin.jvm.functions.Function2<? super android.net.Uri,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onCallIconChanged);
151    method public androidx.core.telecom.extensions.LocalCallSilenceExtensionRemote addLocalCallSilenceExtension(kotlin.jvm.functions.Function2<? super java.lang.Boolean,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onIsLocallySilencedUpdated);
152    method public androidx.core.telecom.extensions.MeetingSummaryRemote addMeetingSummaryExtension(kotlin.jvm.functions.Function2<? super java.lang.CharSequence?,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onCurrentSpeakerChanged, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onParticipantCountChanged);
153    method public androidx.core.telecom.extensions.ParticipantExtensionRemote addParticipantExtension(kotlin.jvm.functions.Function2<? super androidx.core.telecom.extensions.Participant?,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onActiveParticipantChanged, kotlin.jvm.functions.Function2<? super java.util.Set<? extends androidx.core.telecom.extensions.Participant>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onParticipantsUpdated);
154    method public void onConnected(kotlin.jvm.functions.Function2<? super android.telecom.Call,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> block);
155  }
156
157  public interface CallExtensions {
158    method @SuppressCompatibility @RequiresApi(android.os.Build.VERSION_CODES.O) @androidx.core.telecom.util.ExperimentalAppActions public suspend Object? connectExtensions(android.telecom.Call call, kotlin.jvm.functions.Function1<? super androidx.core.telecom.extensions.CallExtensionScope,kotlin.Unit> init, kotlin.coroutines.Continuation<? super kotlin.Unit>);
159  }
160
161  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface CallIconExtension {
162    method public suspend Object? updateCallIconUri(android.net.Uri iconUri, kotlin.coroutines.Continuation<? super kotlin.Unit>);
163  }
164
165  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface CallIconExtensionRemote {
166    method public boolean isSupported();
167    property public abstract boolean isSupported;
168  }
169
170  public interface CallsManagerExtensions {
171    method @SuppressCompatibility @RequiresApi(android.os.Build.VERSION_CODES.O) @androidx.core.telecom.util.ExperimentalAppActions public suspend Object? addCallWithExtensions(androidx.core.telecom.CallAttributesCompat callAttributes, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onAnswer, kotlin.jvm.functions.Function2<? super android.telecom.DisconnectCause,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onDisconnect, kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onSetActive, kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onSetInactive, kotlin.jvm.functions.Function2<? super androidx.core.telecom.extensions.ExtensionInitializationScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> init, kotlin.coroutines.Continuation<? super kotlin.Unit>);
172  }
173
174  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface ExtensionInitializationScope {
175    method public androidx.core.telecom.extensions.CallIconExtension addCallIconExtension(android.net.Uri initialCallIconUri);
176    method public androidx.core.telecom.extensions.LocalCallSilenceExtension addLocalCallSilenceExtension(boolean initialCallSilenceState, kotlin.jvm.functions.Function2<? super java.lang.Boolean,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onLocalSilenceUpdate);
177    method public androidx.core.telecom.extensions.ParticipantExtension addParticipantExtension(optional java.util.List<androidx.core.telecom.extensions.Participant> initialParticipants, optional androidx.core.telecom.extensions.Participant? initialActiveParticipant);
178    method public void onCall(kotlin.jvm.functions.Function2<? super androidx.core.telecom.CallControlScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onCall);
179  }
180
181  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface KickParticipantAction {
182    method public boolean isSupported();
183    method public suspend Object? requestKickParticipant(androidx.core.telecom.extensions.Participant participant, kotlin.coroutines.Continuation<? super androidx.core.telecom.CallControlResult>);
184    method public void setSupported(boolean);
185    property public abstract boolean isSupported;
186  }
187
188  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface LocalCallSilenceExtension {
189    method public suspend Object? updateIsLocallySilenced(boolean isSilenced, kotlin.coroutines.Continuation<? super kotlin.Unit>);
190  }
191
192  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface LocalCallSilenceExtensionRemote {
193    method public boolean isSupported();
194    method public suspend Object? requestLocalCallSilenceUpdate(boolean isSilenced, kotlin.coroutines.Continuation<? super androidx.core.telecom.CallControlResult>);
195    property public abstract boolean isSupported;
196  }
197
198  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface MeetingSummaryRemote {
199    method public boolean isSupported();
200    property public abstract boolean isSupported;
201  }
202
203  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public final class Participant {
204    ctor public Participant(String id, CharSequence name);
205    method public String getId();
206    method public CharSequence getName();
207    property public String id;
208    property public CharSequence name;
209  }
210
211  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface ParticipantExtension {
212    method public void addKickParticipantSupport(kotlin.jvm.functions.Function2<? super androidx.core.telecom.extensions.Participant,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onKickParticipant);
213    method public androidx.core.telecom.extensions.RaiseHandState addRaiseHandSupport(optional java.util.List<androidx.core.telecom.extensions.Participant> initialRaisedHands, kotlin.jvm.functions.Function2<? super java.lang.Boolean,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onHandRaisedChanged);
214    method public suspend Object? updateActiveParticipant(androidx.core.telecom.extensions.Participant? participant, kotlin.coroutines.Continuation<? super kotlin.Unit>);
215    method public suspend Object? updateParticipants(java.util.List<androidx.core.telecom.extensions.Participant> newParticipants, kotlin.coroutines.Continuation<? super kotlin.Unit>);
216  }
217
218  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface ParticipantExtensionRemote {
219    method public androidx.core.telecom.extensions.KickParticipantAction addKickParticipantAction();
220    method public androidx.core.telecom.extensions.RaiseHandAction addRaiseHandAction(kotlin.jvm.functions.Function2<? super java.util.List<? extends androidx.core.telecom.extensions.Participant>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> onRaisedHandsChanged);
221    method public boolean isSupported();
222    property public abstract boolean isSupported;
223  }
224
225  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface RaiseHandAction {
226    method public boolean isSupported();
227    method public suspend Object? requestRaisedHandStateChange(boolean isRaised, kotlin.coroutines.Continuation<? super androidx.core.telecom.CallControlResult>);
228    method public void setSupported(boolean);
229    property public abstract boolean isSupported;
230  }
231
232  @SuppressCompatibility @androidx.core.telecom.util.ExperimentalAppActions public interface RaiseHandState {
233    method public suspend Object? updateRaisedHands(java.util.List<androidx.core.telecom.extensions.Participant> raisedHands, kotlin.coroutines.Continuation<? super kotlin.Unit>);
234  }
235
236}
237
238package androidx.core.telecom.util {
239
240  @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalAppActions {
241  }
242
243}
244
245