Loading api/current.txt +7 −5 Original line number Original line Diff line number Diff line Loading @@ -43685,7 +43685,7 @@ package android.telecom { field public static final int DIRECTION_INCOMING = 0; // 0x0 field public static final int DIRECTION_INCOMING = 0; // 0x0 field public static final int DIRECTION_OUTGOING = 1; // 0x1 field public static final int DIRECTION_OUTGOING = 1; // 0x1 field public static final int DIRECTION_UNKNOWN = -1; // 0xffffffff field public static final int DIRECTION_UNKNOWN = -1; // 0xffffffff field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200 field public static final int PROPERTY_ASSISTED_DIALING = 512; // 0x200 field public static final int PROPERTY_CONFERENCE = 1; // 0x1 field public static final int PROPERTY_CONFERENCE = 1; // 0x1 field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 4; // 0x4 field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 4; // 0x4 field public static final int PROPERTY_ENTERPRISE_CALL = 32; // 0x20 field public static final int PROPERTY_ENTERPRISE_CALL = 32; // 0x20 Loading Loading @@ -43774,7 +43774,8 @@ package android.telecom { method public final java.util.List<android.telecom.Connection> getConferenceableConnections(); method public final java.util.List<android.telecom.Connection> getConferenceableConnections(); method public final int getConnectionCapabilities(); method public final int getConnectionCapabilities(); method public final int getConnectionProperties(); method public final int getConnectionProperties(); method public final long getConnectionTime(); method public final long getConnectionStartElapsedRealtimeMillis(); method @IntRange(from=0) public final long getConnectionTime(); method public final java.util.List<android.telecom.Connection> getConnections(); method public final java.util.List<android.telecom.Connection> getConnections(); method public final android.telecom.DisconnectCause getDisconnectCause(); method public final android.telecom.DisconnectCause getDisconnectCause(); method public final android.os.Bundle getExtras(); method public final android.os.Bundle getExtras(); Loading Loading @@ -43804,8 +43805,9 @@ package android.telecom { method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>); method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>); method public final void setConnectionCapabilities(int); method public final void setConnectionCapabilities(int); method public final void setConnectionProperties(int); method public final void setConnectionProperties(int); method public final void setConnectionStartElapsedRealTime(long); method @Deprecated public final void setConnectionStartElapsedRealTime(long); method public final void setConnectionTime(long); method public final void setConnectionStartElapsedRealtimeMillis(long); method public final void setConnectionTime(@IntRange(from=0) long); method public final void setDialing(); method public final void setDialing(); method public final void setDisconnected(android.telecom.DisconnectCause); method public final void setDisconnected(android.telecom.DisconnectCause); method public final void setExtras(@Nullable android.os.Bundle); method public final void setExtras(@Nullable android.os.Bundle); Loading Loading @@ -43965,7 +43967,7 @@ package android.telecom { field public static final String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT"; field public static final String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT"; field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER"; field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER"; field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE"; field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE"; field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200 field public static final int PROPERTY_ASSISTED_DIALING = 512; // 0x200 field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20 field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20 field public static final int PROPERTY_HIGH_DEF_AUDIO = 4; // 0x4 field public static final int PROPERTY_HIGH_DEF_AUDIO = 4; // 0x4 field public static final int PROPERTY_IS_EXTERNAL_CALL = 16; // 0x10 field public static final int PROPERTY_IS_EXTERNAL_CALL = 16; // 0x10 api/system-current.txt +8 −9 Original line number Original line Diff line number Diff line Loading @@ -8253,27 +8253,26 @@ package android.telecom { public abstract class Conference extends android.telecom.Conferenceable { public abstract class Conference extends android.telecom.Conferenceable { method @Deprecated public final android.telecom.AudioState getAudioState(); method @Deprecated public final android.telecom.AudioState getAudioState(); method @Deprecated public final long getConnectTimeMillis(); method @Deprecated public final long getConnectTimeMillis(); method public final long getConnectionStartElapsedRealTime(); method public android.telecom.Connection getPrimaryConnection(); method public android.telecom.Connection getPrimaryConnection(); method @NonNull public final String getTelecomCallId(); method @NonNull public final String getTelecomCallId(); method @Deprecated public void onAudioStateChanged(android.telecom.AudioState); method @Deprecated public void onAudioStateChanged(android.telecom.AudioState); method public final void setAddress(@NonNull android.net.Uri, int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setAddress(@NonNull android.net.Uri, int); method public final void setCallerDisplayName(@NonNull String, int); method public final void setCallerDisplayName(@NonNull String, int); method public void setConferenceState(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setConferenceState(boolean); method @Deprecated public final void setConnectTimeMillis(long); method @Deprecated public final void setConnectTimeMillis(long); } } public abstract class Connection extends android.telecom.Conferenceable { public abstract class Connection extends android.telecom.Conferenceable { method @Deprecated public final android.telecom.AudioState getAudioState(); method @Deprecated public final android.telecom.AudioState getAudioState(); method public final long getConnectElapsedTimeMillis(); method @IntRange(from=0) public final long getConnectTimeMillis(); method public final long getConnectTimeMillis(); method public final long getConnectionStartElapsedRealtimeMillis(); method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method @Nullable public final String getTelecomCallId(); method @Nullable public final String getTelecomCallId(); method @Deprecated public void onAudioStateChanged(android.telecom.AudioState); method @Deprecated public void onAudioStateChanged(android.telecom.AudioState); method public final void resetConnectionTime(); method public final void resetConnectionTime(); method public void setCallDirection(int); method public void setCallDirection(int); method public final void setConnectTimeMillis(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectTimeMillis(@IntRange(from=0) long); method public final void setConnectionStartElapsedRealTime(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectionStartElapsedRealtimeMillis(long); method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle); method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle); method public void setTelecomCallId(@NonNull String); method public void setTelecomCallId(@NonNull String); field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000 field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000 Loading Loading @@ -8425,7 +8424,7 @@ package android.telecom { } } public static class PhoneAccount.Builder { public static class PhoneAccount.Builder { method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String); } } public class PhoneAccountSuggestionService extends android.app.Service { public class PhoneAccountSuggestionService extends android.app.Service { Loading Loading @@ -8500,7 +8499,7 @@ package android.telecom { method public int getCallState(); method public int getCallState(); method public android.telecom.PhoneAccountHandle getConnectionManager(); method public android.telecom.PhoneAccountHandle getConnectionManager(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode(); method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDefaultDialerPackage(int); method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDefaultDialerPackage(@NonNull android.os.UserHandle); method @Deprecated public android.content.ComponentName getDefaultPhoneApp(); method @Deprecated public android.content.ComponentName getDefaultPhoneApp(); method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage(); method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage(); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String); api/test-current.txt +8 −9 Original line number Original line Diff line number Diff line Loading @@ -3005,23 +3005,22 @@ package android.telecom { } } public abstract class Conference extends android.telecom.Conferenceable { public abstract class Conference extends android.telecom.Conferenceable { method public final long getConnectionStartElapsedRealTime(); method public android.telecom.Connection getPrimaryConnection(); method public android.telecom.Connection getPrimaryConnection(); method @NonNull public final String getTelecomCallId(); method @NonNull public final String getTelecomCallId(); method public final void setAddress(@NonNull android.net.Uri, int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setAddress(@NonNull android.net.Uri, int); method public final void setCallerDisplayName(@NonNull String, int); method public final void setCallerDisplayName(@NonNull String, int); method public void setConferenceState(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setConferenceState(boolean); } } public abstract class Connection extends android.telecom.Conferenceable { public abstract class Connection extends android.telecom.Conferenceable { method public final long getConnectElapsedTimeMillis(); method @IntRange(from=0) public final long getConnectTimeMillis(); method public final long getConnectTimeMillis(); method public final long getConnectionStartElapsedRealtimeMillis(); method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method @Nullable public final String getTelecomCallId(); method @Nullable public final String getTelecomCallId(); method public final void resetConnectionTime(); method public final void resetConnectionTime(); method public void setCallDirection(int); method public void setCallDirection(int); method public final void setConnectTimeMillis(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectTimeMillis(@IntRange(from=0) long); method public final void setConnectionStartElapsedRealTime(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectionStartElapsedRealtimeMillis(long); method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle); method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle); method public void setTelecomCallId(@NonNull String); method public void setTelecomCallId(@NonNull String); field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000 field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000 Loading Loading @@ -3053,7 +3052,7 @@ package android.telecom { } } public static class PhoneAccount.Builder { public static class PhoneAccount.Builder { method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String); } } public class PhoneAccountSuggestionService extends android.app.Service { public class PhoneAccountSuggestionService extends android.app.Service { Loading @@ -3067,7 +3066,7 @@ package android.telecom { public class TelecomManager { public class TelecomManager { method @NonNull @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean); method @NonNull @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean); method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode(); method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode(); method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(int); method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(@NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle); field public static final int TTY_MODE_FULL = 1; // 0x1 field public static final int TTY_MODE_FULL = 1; // 0x1 Loading telecomm/java/android/telecom/Call.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -546,7 +546,7 @@ public final class Call { * * * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING */ */ public static final int PROPERTY_ASSISTED_DIALING_USED = 0x00000200; public static final int PROPERTY_ASSISTED_DIALING = 0x00000200; /** /** * Indicates that the call is an RTT call. Use {@link #getRttCall()} to get the * Indicates that the call is an RTT call. Use {@link #getRttCall()} to get the Loading Loading @@ -754,7 +754,7 @@ public final class Call { if (hasProperty(properties, PROPERTY_HAS_CDMA_VOICE_PRIVACY)) { if (hasProperty(properties, PROPERTY_HAS_CDMA_VOICE_PRIVACY)) { builder.append(" PROPERTY_HAS_CDMA_VOICE_PRIVACY"); builder.append(" PROPERTY_HAS_CDMA_VOICE_PRIVACY"); } } if (hasProperty(properties, PROPERTY_ASSISTED_DIALING_USED)) { if (hasProperty(properties, PROPERTY_ASSISTED_DIALING)) { builder.append(" PROPERTY_ASSISTED_DIALING_USED"); builder.append(" PROPERTY_ASSISTED_DIALING_USED"); } } if (hasProperty(properties, PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL)) { if (hasProperty(properties, PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL)) { Loading telecomm/java/android/telecom/Conference.java +76 −12 Original line number Original line Diff line number Diff line Loading @@ -16,8 +16,13 @@ package android.telecom; package android.telecom; import static android.Manifest.permission.MODIFY_PHONE_STATE; import android.annotation.ElapsedRealtimeLong; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.TestApi; import android.net.Uri; import android.net.Uri; Loading Loading @@ -632,12 +637,12 @@ public abstract class Conference extends Conferenceable { * Should be specified in wall-clock time returned by {@link System#currentTimeMillis()}. * Should be specified in wall-clock time returned by {@link System#currentTimeMillis()}. * <p> * <p> * When setting the connection time, you should always set the connection elapsed time via * When setting the connection time, you should always set the connection elapsed time via * {@link #setConnectionStartElapsedRealTime(long)} to ensure the duration is reflected. * {@link #setConnectionStartElapsedRealtimeMillis(long)} to ensure the duration is reflected. * * * @param connectionTimeMillis The connection time, in milliseconds, as returned by * @param connectionTimeMillis The connection time, in milliseconds, as returned by * {@link System#currentTimeMillis()}. * {@link System#currentTimeMillis()}. */ */ public final void setConnectionTime(long connectionTimeMillis) { public final void setConnectionTime(@IntRange(from = 0) long connectionTimeMillis) { mConnectTimeMillis = connectionTimeMillis; mConnectTimeMillis = connectionTimeMillis; } } Loading @@ -653,8 +658,28 @@ public abstract class Conference extends Conferenceable { * * * @param connectionStartElapsedRealTime The connection time, as measured by * @param connectionStartElapsedRealTime The connection time, as measured by * {@link SystemClock#elapsedRealtime()}. * {@link SystemClock#elapsedRealtime()}. * @deprecated use {@link #setConnectionStartElapsedRealtimeMillis(long)} instead. */ */ @Deprecated public final void setConnectionStartElapsedRealTime(long connectionStartElapsedRealTime) { public final void setConnectionStartElapsedRealTime(long connectionStartElapsedRealTime) { setConnectionStartElapsedRealtimeMillis(connectionStartElapsedRealTime); } /** * Sets the start time of the {@link Conference} which is the basis for the determining the * duration of the {@link Conference}. * <p> * You should use a value returned by {@link SystemClock#elapsedRealtime()} to ensure that time * zone changes do not impact the conference duration. * <p> * When setting this, you should also set the connection time via * {@link #setConnectionTime(long)}. * * @param connectionStartElapsedRealTime The connection time, as measured by * {@link SystemClock#elapsedRealtime()}. */ public final void setConnectionStartElapsedRealtimeMillis( @ElapsedRealtimeLong long connectionStartElapsedRealTime) { mConnectionStartElapsedRealTime = connectionStartElapsedRealTime; mConnectionStartElapsedRealTime = connectionStartElapsedRealTime; } } Loading @@ -675,7 +700,7 @@ public abstract class Conference extends Conferenceable { * * * @return The time at which the {@code Conference} was connected. * @return The time at which the {@code Conference} was connected. */ */ public final long getConnectionTime() { public final @IntRange(from = 0) long getConnectionTime() { return mConnectTimeMillis; return mConnectTimeMillis; } } Loading @@ -692,11 +717,8 @@ public abstract class Conference extends Conferenceable { * has no general use other than to the Telephony framework. * has no general use other than to the Telephony framework. * * * @return The elapsed time at which the {@link Conference} was connected. * @return The elapsed time at which the {@link Conference} was connected. * @hide */ */ @SystemApi public final @ElapsedRealtimeLong long getConnectionStartElapsedRealtimeMillis() { @TestApi public final long getConnectionStartElapsedRealTime() { return mConnectionStartElapsedRealTime; return mConnectionStartElapsedRealTime; } } Loading Loading @@ -994,6 +1016,7 @@ public abstract class Conference extends Conferenceable { */ */ @SystemApi @SystemApi @TestApi @TestApi @RequiresPermission(MODIFY_PHONE_STATE) public void setConferenceState(boolean isConference) { public void setConferenceState(boolean isConference) { for (Listener l : mListeners) { for (Listener l : mListeners) { l.onConferenceStateChanged(this, isConference); l.onConferenceStateChanged(this, isConference); Loading @@ -1014,6 +1037,7 @@ public abstract class Conference extends Conferenceable { */ */ @SystemApi @SystemApi @TestApi @TestApi @RequiresPermission(MODIFY_PHONE_STATE) public final void setAddress(@NonNull Uri address, public final void setAddress(@NonNull Uri address, @TelecomManager.Presentation int presentation) { @TelecomManager.Presentation int presentation) { Log.d(this, "setAddress %s", address); Log.d(this, "setAddress %s", address); Loading Loading @@ -1120,12 +1144,52 @@ public abstract class Conference extends Conferenceable { } } /** /** * Sends an event associated with this {@code Conference} with associated event extras to the * Sends an event associated with this {@link Conference} with associated event extras to the * {@link InCallService} (note: this is identical in concept to * {@link InCallService}. * {@link Connection#sendConnectionEvent(String, Bundle)}). * <p> * @see Connection#sendConnectionEvent(String, Bundle) * Connection events are used to communicate point in time information from a * {@link ConnectionService} to an {@link InCallService} implementation. An example of a * custom connection event includes notifying the UI when a WIFI call has been handed over to * LTE, which the InCall UI might use to inform the user that billing charges may apply. The * Android Telephony framework will send the {@link Connection#EVENT_MERGE_COMPLETE} * connection event when a call to {@link Call#mergeConference()} has completed successfully. * <p> * Events are exposed to {@link InCallService} implementations via * {@link Call.Callback#onConnectionEvent(Call, String, Bundle)}. * <p> * No assumptions should be made as to how an In-Call UI or service will handle these events. * The {@link ConnectionService} must assume that the In-Call UI could even chose to ignore * some events altogether. * <p> * Events should be fully qualified (e.g. {@code com.example.event.MY_EVENT}) to avoid * conflicts between {@link ConnectionService} implementations. Further, custom * {@link ConnectionService} implementations shall not re-purpose events in the * {@code android.*} namespace, nor shall they define new event types in this namespace. When * defining a custom event type, ensure the contents of the extras {@link Bundle} is clearly * defined. Extra keys for this bundle should be named similar to the event type (e.g. * {@code com.example.extra.MY_EXTRA}). * <p> * When defining events and the associated extras, it is important to keep their behavior * consistent when the associated {@link ConnectionService} is updated. Support for deprecated * events/extras should me maintained to ensure backwards compatibility with older * {@link InCallService} implementations which were built to support the older behavior. * <p> * Expected connection events from the Telephony stack are: * <p> * <ul> * <li>{@link Connection#EVENT_CALL_HOLD_FAILED} with {@code null} {@code extras} when the * {@link Conference} could not be held.</li> * <li>{@link Connection#EVENT_MERGE_START} with {@code null} {@code extras} when a new * call is being merged into the conference.</li> * <li>{@link Connection#EVENT_MERGE_COMPLETE} with {@code null} {@code extras} a new call * has completed being merged into the conference.</li> * <li>{@link Connection#EVENT_CALL_MERGE_FAILED} with {@code null} {@code extras} a new * call has failed to merge into the conference (the dialer app can determine which call * failed to merge based on the fact that the call still exists outside of the conference * at the end of the merge process).</li> * </ul> * * * @param event The connection event. * @param event The conference event. * @param extras Optional bundle containing extra information associated with the event. * @param extras Optional bundle containing extra information associated with the event. */ */ public void sendConferenceEvent(@NonNull String event, @Nullable Bundle extras) { public void sendConferenceEvent(@NonNull String event, @Nullable Bundle extras) { Loading Loading
api/current.txt +7 −5 Original line number Original line Diff line number Diff line Loading @@ -43685,7 +43685,7 @@ package android.telecom { field public static final int DIRECTION_INCOMING = 0; // 0x0 field public static final int DIRECTION_INCOMING = 0; // 0x0 field public static final int DIRECTION_OUTGOING = 1; // 0x1 field public static final int DIRECTION_OUTGOING = 1; // 0x1 field public static final int DIRECTION_UNKNOWN = -1; // 0xffffffff field public static final int DIRECTION_UNKNOWN = -1; // 0xffffffff field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200 field public static final int PROPERTY_ASSISTED_DIALING = 512; // 0x200 field public static final int PROPERTY_CONFERENCE = 1; // 0x1 field public static final int PROPERTY_CONFERENCE = 1; // 0x1 field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 4; // 0x4 field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 4; // 0x4 field public static final int PROPERTY_ENTERPRISE_CALL = 32; // 0x20 field public static final int PROPERTY_ENTERPRISE_CALL = 32; // 0x20 Loading Loading @@ -43774,7 +43774,8 @@ package android.telecom { method public final java.util.List<android.telecom.Connection> getConferenceableConnections(); method public final java.util.List<android.telecom.Connection> getConferenceableConnections(); method public final int getConnectionCapabilities(); method public final int getConnectionCapabilities(); method public final int getConnectionProperties(); method public final int getConnectionProperties(); method public final long getConnectionTime(); method public final long getConnectionStartElapsedRealtimeMillis(); method @IntRange(from=0) public final long getConnectionTime(); method public final java.util.List<android.telecom.Connection> getConnections(); method public final java.util.List<android.telecom.Connection> getConnections(); method public final android.telecom.DisconnectCause getDisconnectCause(); method public final android.telecom.DisconnectCause getDisconnectCause(); method public final android.os.Bundle getExtras(); method public final android.os.Bundle getExtras(); Loading Loading @@ -43804,8 +43805,9 @@ package android.telecom { method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>); method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>); method public final void setConnectionCapabilities(int); method public final void setConnectionCapabilities(int); method public final void setConnectionProperties(int); method public final void setConnectionProperties(int); method public final void setConnectionStartElapsedRealTime(long); method @Deprecated public final void setConnectionStartElapsedRealTime(long); method public final void setConnectionTime(long); method public final void setConnectionStartElapsedRealtimeMillis(long); method public final void setConnectionTime(@IntRange(from=0) long); method public final void setDialing(); method public final void setDialing(); method public final void setDisconnected(android.telecom.DisconnectCause); method public final void setDisconnected(android.telecom.DisconnectCause); method public final void setExtras(@Nullable android.os.Bundle); method public final void setExtras(@Nullable android.os.Bundle); Loading Loading @@ -43965,7 +43967,7 @@ package android.telecom { field public static final String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT"; field public static final String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT"; field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER"; field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER"; field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE"; field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE"; field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200 field public static final int PROPERTY_ASSISTED_DIALING = 512; // 0x200 field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20 field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20 field public static final int PROPERTY_HIGH_DEF_AUDIO = 4; // 0x4 field public static final int PROPERTY_HIGH_DEF_AUDIO = 4; // 0x4 field public static final int PROPERTY_IS_EXTERNAL_CALL = 16; // 0x10 field public static final int PROPERTY_IS_EXTERNAL_CALL = 16; // 0x10
api/system-current.txt +8 −9 Original line number Original line Diff line number Diff line Loading @@ -8253,27 +8253,26 @@ package android.telecom { public abstract class Conference extends android.telecom.Conferenceable { public abstract class Conference extends android.telecom.Conferenceable { method @Deprecated public final android.telecom.AudioState getAudioState(); method @Deprecated public final android.telecom.AudioState getAudioState(); method @Deprecated public final long getConnectTimeMillis(); method @Deprecated public final long getConnectTimeMillis(); method public final long getConnectionStartElapsedRealTime(); method public android.telecom.Connection getPrimaryConnection(); method public android.telecom.Connection getPrimaryConnection(); method @NonNull public final String getTelecomCallId(); method @NonNull public final String getTelecomCallId(); method @Deprecated public void onAudioStateChanged(android.telecom.AudioState); method @Deprecated public void onAudioStateChanged(android.telecom.AudioState); method public final void setAddress(@NonNull android.net.Uri, int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setAddress(@NonNull android.net.Uri, int); method public final void setCallerDisplayName(@NonNull String, int); method public final void setCallerDisplayName(@NonNull String, int); method public void setConferenceState(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setConferenceState(boolean); method @Deprecated public final void setConnectTimeMillis(long); method @Deprecated public final void setConnectTimeMillis(long); } } public abstract class Connection extends android.telecom.Conferenceable { public abstract class Connection extends android.telecom.Conferenceable { method @Deprecated public final android.telecom.AudioState getAudioState(); method @Deprecated public final android.telecom.AudioState getAudioState(); method public final long getConnectElapsedTimeMillis(); method @IntRange(from=0) public final long getConnectTimeMillis(); method public final long getConnectTimeMillis(); method public final long getConnectionStartElapsedRealtimeMillis(); method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method @Nullable public final String getTelecomCallId(); method @Nullable public final String getTelecomCallId(); method @Deprecated public void onAudioStateChanged(android.telecom.AudioState); method @Deprecated public void onAudioStateChanged(android.telecom.AudioState); method public final void resetConnectionTime(); method public final void resetConnectionTime(); method public void setCallDirection(int); method public void setCallDirection(int); method public final void setConnectTimeMillis(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectTimeMillis(@IntRange(from=0) long); method public final void setConnectionStartElapsedRealTime(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectionStartElapsedRealtimeMillis(long); method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle); method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle); method public void setTelecomCallId(@NonNull String); method public void setTelecomCallId(@NonNull String); field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000 field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000 Loading Loading @@ -8425,7 +8424,7 @@ package android.telecom { } } public static class PhoneAccount.Builder { public static class PhoneAccount.Builder { method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String); } } public class PhoneAccountSuggestionService extends android.app.Service { public class PhoneAccountSuggestionService extends android.app.Service { Loading Loading @@ -8500,7 +8499,7 @@ package android.telecom { method public int getCallState(); method public int getCallState(); method public android.telecom.PhoneAccountHandle getConnectionManager(); method public android.telecom.PhoneAccountHandle getConnectionManager(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode(); method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDefaultDialerPackage(int); method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDefaultDialerPackage(@NonNull android.os.UserHandle); method @Deprecated public android.content.ComponentName getDefaultPhoneApp(); method @Deprecated public android.content.ComponentName getDefaultPhoneApp(); method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage(); method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage(); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String);
api/test-current.txt +8 −9 Original line number Original line Diff line number Diff line Loading @@ -3005,23 +3005,22 @@ package android.telecom { } } public abstract class Conference extends android.telecom.Conferenceable { public abstract class Conference extends android.telecom.Conferenceable { method public final long getConnectionStartElapsedRealTime(); method public android.telecom.Connection getPrimaryConnection(); method public android.telecom.Connection getPrimaryConnection(); method @NonNull public final String getTelecomCallId(); method @NonNull public final String getTelecomCallId(); method public final void setAddress(@NonNull android.net.Uri, int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setAddress(@NonNull android.net.Uri, int); method public final void setCallerDisplayName(@NonNull String, int); method public final void setCallerDisplayName(@NonNull String, int); method public void setConferenceState(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setConferenceState(boolean); } } public abstract class Connection extends android.telecom.Conferenceable { public abstract class Connection extends android.telecom.Conferenceable { method public final long getConnectElapsedTimeMillis(); method @IntRange(from=0) public final long getConnectTimeMillis(); method public final long getConnectTimeMillis(); method public final long getConnectionStartElapsedRealtimeMillis(); method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method @Nullable public final String getTelecomCallId(); method @Nullable public final String getTelecomCallId(); method public final void resetConnectionTime(); method public final void resetConnectionTime(); method public void setCallDirection(int); method public void setCallDirection(int); method public final void setConnectTimeMillis(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectTimeMillis(@IntRange(from=0) long); method public final void setConnectionStartElapsedRealTime(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectionStartElapsedRealtimeMillis(long); method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle); method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle); method public void setTelecomCallId(@NonNull String); method public void setTelecomCallId(@NonNull String); field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000 field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000 Loading Loading @@ -3053,7 +3052,7 @@ package android.telecom { } } public static class PhoneAccount.Builder { public static class PhoneAccount.Builder { method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String); } } public class PhoneAccountSuggestionService extends android.app.Service { public class PhoneAccountSuggestionService extends android.app.Service { Loading @@ -3067,7 +3066,7 @@ package android.telecom { public class TelecomManager { public class TelecomManager { method @NonNull @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean); method @NonNull @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean); method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode(); method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode(); method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(int); method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(@NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle); field public static final int TTY_MODE_FULL = 1; // 0x1 field public static final int TTY_MODE_FULL = 1; // 0x1 Loading
telecomm/java/android/telecom/Call.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -546,7 +546,7 @@ public final class Call { * * * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING */ */ public static final int PROPERTY_ASSISTED_DIALING_USED = 0x00000200; public static final int PROPERTY_ASSISTED_DIALING = 0x00000200; /** /** * Indicates that the call is an RTT call. Use {@link #getRttCall()} to get the * Indicates that the call is an RTT call. Use {@link #getRttCall()} to get the Loading Loading @@ -754,7 +754,7 @@ public final class Call { if (hasProperty(properties, PROPERTY_HAS_CDMA_VOICE_PRIVACY)) { if (hasProperty(properties, PROPERTY_HAS_CDMA_VOICE_PRIVACY)) { builder.append(" PROPERTY_HAS_CDMA_VOICE_PRIVACY"); builder.append(" PROPERTY_HAS_CDMA_VOICE_PRIVACY"); } } if (hasProperty(properties, PROPERTY_ASSISTED_DIALING_USED)) { if (hasProperty(properties, PROPERTY_ASSISTED_DIALING)) { builder.append(" PROPERTY_ASSISTED_DIALING_USED"); builder.append(" PROPERTY_ASSISTED_DIALING_USED"); } } if (hasProperty(properties, PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL)) { if (hasProperty(properties, PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL)) { Loading
telecomm/java/android/telecom/Conference.java +76 −12 Original line number Original line Diff line number Diff line Loading @@ -16,8 +16,13 @@ package android.telecom; package android.telecom; import static android.Manifest.permission.MODIFY_PHONE_STATE; import android.annotation.ElapsedRealtimeLong; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.TestApi; import android.net.Uri; import android.net.Uri; Loading Loading @@ -632,12 +637,12 @@ public abstract class Conference extends Conferenceable { * Should be specified in wall-clock time returned by {@link System#currentTimeMillis()}. * Should be specified in wall-clock time returned by {@link System#currentTimeMillis()}. * <p> * <p> * When setting the connection time, you should always set the connection elapsed time via * When setting the connection time, you should always set the connection elapsed time via * {@link #setConnectionStartElapsedRealTime(long)} to ensure the duration is reflected. * {@link #setConnectionStartElapsedRealtimeMillis(long)} to ensure the duration is reflected. * * * @param connectionTimeMillis The connection time, in milliseconds, as returned by * @param connectionTimeMillis The connection time, in milliseconds, as returned by * {@link System#currentTimeMillis()}. * {@link System#currentTimeMillis()}. */ */ public final void setConnectionTime(long connectionTimeMillis) { public final void setConnectionTime(@IntRange(from = 0) long connectionTimeMillis) { mConnectTimeMillis = connectionTimeMillis; mConnectTimeMillis = connectionTimeMillis; } } Loading @@ -653,8 +658,28 @@ public abstract class Conference extends Conferenceable { * * * @param connectionStartElapsedRealTime The connection time, as measured by * @param connectionStartElapsedRealTime The connection time, as measured by * {@link SystemClock#elapsedRealtime()}. * {@link SystemClock#elapsedRealtime()}. * @deprecated use {@link #setConnectionStartElapsedRealtimeMillis(long)} instead. */ */ @Deprecated public final void setConnectionStartElapsedRealTime(long connectionStartElapsedRealTime) { public final void setConnectionStartElapsedRealTime(long connectionStartElapsedRealTime) { setConnectionStartElapsedRealtimeMillis(connectionStartElapsedRealTime); } /** * Sets the start time of the {@link Conference} which is the basis for the determining the * duration of the {@link Conference}. * <p> * You should use a value returned by {@link SystemClock#elapsedRealtime()} to ensure that time * zone changes do not impact the conference duration. * <p> * When setting this, you should also set the connection time via * {@link #setConnectionTime(long)}. * * @param connectionStartElapsedRealTime The connection time, as measured by * {@link SystemClock#elapsedRealtime()}. */ public final void setConnectionStartElapsedRealtimeMillis( @ElapsedRealtimeLong long connectionStartElapsedRealTime) { mConnectionStartElapsedRealTime = connectionStartElapsedRealTime; mConnectionStartElapsedRealTime = connectionStartElapsedRealTime; } } Loading @@ -675,7 +700,7 @@ public abstract class Conference extends Conferenceable { * * * @return The time at which the {@code Conference} was connected. * @return The time at which the {@code Conference} was connected. */ */ public final long getConnectionTime() { public final @IntRange(from = 0) long getConnectionTime() { return mConnectTimeMillis; return mConnectTimeMillis; } } Loading @@ -692,11 +717,8 @@ public abstract class Conference extends Conferenceable { * has no general use other than to the Telephony framework. * has no general use other than to the Telephony framework. * * * @return The elapsed time at which the {@link Conference} was connected. * @return The elapsed time at which the {@link Conference} was connected. * @hide */ */ @SystemApi public final @ElapsedRealtimeLong long getConnectionStartElapsedRealtimeMillis() { @TestApi public final long getConnectionStartElapsedRealTime() { return mConnectionStartElapsedRealTime; return mConnectionStartElapsedRealTime; } } Loading Loading @@ -994,6 +1016,7 @@ public abstract class Conference extends Conferenceable { */ */ @SystemApi @SystemApi @TestApi @TestApi @RequiresPermission(MODIFY_PHONE_STATE) public void setConferenceState(boolean isConference) { public void setConferenceState(boolean isConference) { for (Listener l : mListeners) { for (Listener l : mListeners) { l.onConferenceStateChanged(this, isConference); l.onConferenceStateChanged(this, isConference); Loading @@ -1014,6 +1037,7 @@ public abstract class Conference extends Conferenceable { */ */ @SystemApi @SystemApi @TestApi @TestApi @RequiresPermission(MODIFY_PHONE_STATE) public final void setAddress(@NonNull Uri address, public final void setAddress(@NonNull Uri address, @TelecomManager.Presentation int presentation) { @TelecomManager.Presentation int presentation) { Log.d(this, "setAddress %s", address); Log.d(this, "setAddress %s", address); Loading Loading @@ -1120,12 +1144,52 @@ public abstract class Conference extends Conferenceable { } } /** /** * Sends an event associated with this {@code Conference} with associated event extras to the * Sends an event associated with this {@link Conference} with associated event extras to the * {@link InCallService} (note: this is identical in concept to * {@link InCallService}. * {@link Connection#sendConnectionEvent(String, Bundle)}). * <p> * @see Connection#sendConnectionEvent(String, Bundle) * Connection events are used to communicate point in time information from a * {@link ConnectionService} to an {@link InCallService} implementation. An example of a * custom connection event includes notifying the UI when a WIFI call has been handed over to * LTE, which the InCall UI might use to inform the user that billing charges may apply. The * Android Telephony framework will send the {@link Connection#EVENT_MERGE_COMPLETE} * connection event when a call to {@link Call#mergeConference()} has completed successfully. * <p> * Events are exposed to {@link InCallService} implementations via * {@link Call.Callback#onConnectionEvent(Call, String, Bundle)}. * <p> * No assumptions should be made as to how an In-Call UI or service will handle these events. * The {@link ConnectionService} must assume that the In-Call UI could even chose to ignore * some events altogether. * <p> * Events should be fully qualified (e.g. {@code com.example.event.MY_EVENT}) to avoid * conflicts between {@link ConnectionService} implementations. Further, custom * {@link ConnectionService} implementations shall not re-purpose events in the * {@code android.*} namespace, nor shall they define new event types in this namespace. When * defining a custom event type, ensure the contents of the extras {@link Bundle} is clearly * defined. Extra keys for this bundle should be named similar to the event type (e.g. * {@code com.example.extra.MY_EXTRA}). * <p> * When defining events and the associated extras, it is important to keep their behavior * consistent when the associated {@link ConnectionService} is updated. Support for deprecated * events/extras should me maintained to ensure backwards compatibility with older * {@link InCallService} implementations which were built to support the older behavior. * <p> * Expected connection events from the Telephony stack are: * <p> * <ul> * <li>{@link Connection#EVENT_CALL_HOLD_FAILED} with {@code null} {@code extras} when the * {@link Conference} could not be held.</li> * <li>{@link Connection#EVENT_MERGE_START} with {@code null} {@code extras} when a new * call is being merged into the conference.</li> * <li>{@link Connection#EVENT_MERGE_COMPLETE} with {@code null} {@code extras} a new call * has completed being merged into the conference.</li> * <li>{@link Connection#EVENT_CALL_MERGE_FAILED} with {@code null} {@code extras} a new * call has failed to merge into the conference (the dialer app can determine which call * failed to merge based on the fact that the call still exists outside of the conference * at the end of the merge process).</li> * </ul> * * * @param event The connection event. * @param event The conference event. * @param extras Optional bundle containing extra information associated with the event. * @param extras Optional bundle containing extra information associated with the event. */ */ public void sendConferenceEvent(@NonNull String event, @Nullable Bundle extras) { public void sendConferenceEvent(@NonNull String event, @Nullable Bundle extras) { Loading