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