diff --git a/api/current.txt b/api/current.txt index 42aa2cd000009..5d078fc6d9391 100644 --- a/api/current.txt +++ b/api/current.txt @@ -37075,6 +37075,7 @@ package android.telecom { field public static final java.lang.String EVENT_CALL_MERGE_FAILED = "android.telecom.event.CALL_MERGE_FAILED"; field public static final java.lang.String EVENT_CALL_PULL_FAILED = "android.telecom.event.CALL_PULL_FAILED"; field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL = "android.telecom.extra.ANSWERING_DROPS_FG_CALL"; + field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME = "android.telecom.extra.ANSWERING_DROPS_FG_CALL_APP_NAME"; field public static final java.lang.String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT"; field public static final java.lang.String EXTRA_CHILD_ADDRESS = "android.telecom.extra.CHILD_ADDRESS"; field public static final java.lang.String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER"; @@ -37482,6 +37483,7 @@ package android.telecom { field public static final java.lang.String EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME = "android.telecom.extra.CHANGE_DEFAULT_DIALER_PACKAGE_NAME"; field public static final java.lang.String EXTRA_INCOMING_CALL_ADDRESS = "android.telecom.extra.INCOMING_CALL_ADDRESS"; field public static final java.lang.String EXTRA_INCOMING_CALL_EXTRAS = "android.telecom.extra.INCOMING_CALL_EXTRAS"; + field public static final java.lang.String EXTRA_INCOMING_VIDEO_STATE = "android.telecom.extra.INCOMING_VIDEO_STATE"; field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telecom.extra.NOTIFICATION_COUNT"; field public static final java.lang.String EXTRA_NOTIFICATION_PHONE_NUMBER = "android.telecom.extra.NOTIFICATION_PHONE_NUMBER"; field public static final java.lang.String EXTRA_OUTGOING_CALL_EXTRAS = "android.telecom.extra.OUTGOING_CALL_EXTRAS"; diff --git a/api/system-current.txt b/api/system-current.txt index 2190a9d6dd75c..2a888f8fe822d 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -40063,6 +40063,7 @@ package android.telecom { field public static final java.lang.String EVENT_CALL_MERGE_FAILED = "android.telecom.event.CALL_MERGE_FAILED"; field public static final java.lang.String EVENT_CALL_PULL_FAILED = "android.telecom.event.CALL_PULL_FAILED"; field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL = "android.telecom.extra.ANSWERING_DROPS_FG_CALL"; + field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME = "android.telecom.extra.ANSWERING_DROPS_FG_CALL_APP_NAME"; field public static final java.lang.String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT"; field public static final java.lang.String EXTRA_CHILD_ADDRESS = "android.telecom.extra.CHILD_ADDRESS"; field public static final java.lang.String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER"; @@ -40658,6 +40659,7 @@ package android.telecom { field public static final java.lang.String EXTRA_CONNECTION_SERVICE = "android.telecom.extra.CONNECTION_SERVICE"; field public static final java.lang.String EXTRA_INCOMING_CALL_ADDRESS = "android.telecom.extra.INCOMING_CALL_ADDRESS"; field public static final java.lang.String EXTRA_INCOMING_CALL_EXTRAS = "android.telecom.extra.INCOMING_CALL_EXTRAS"; + field public static final java.lang.String EXTRA_INCOMING_VIDEO_STATE = "android.telecom.extra.INCOMING_VIDEO_STATE"; field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telecom.extra.NOTIFICATION_COUNT"; field public static final java.lang.String EXTRA_NOTIFICATION_PHONE_NUMBER = "android.telecom.extra.NOTIFICATION_PHONE_NUMBER"; field public static final java.lang.String EXTRA_OUTGOING_CALL_EXTRAS = "android.telecom.extra.OUTGOING_CALL_EXTRAS"; diff --git a/api/test-current.txt b/api/test-current.txt index bd5db5af8dc82..5e16e4265ff76 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -37158,6 +37158,7 @@ package android.telecom { field public static final java.lang.String EVENT_CALL_MERGE_FAILED = "android.telecom.event.CALL_MERGE_FAILED"; field public static final java.lang.String EVENT_CALL_PULL_FAILED = "android.telecom.event.CALL_PULL_FAILED"; field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL = "android.telecom.extra.ANSWERING_DROPS_FG_CALL"; + field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME = "android.telecom.extra.ANSWERING_DROPS_FG_CALL_APP_NAME"; field public static final java.lang.String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT"; field public static final java.lang.String EXTRA_CHILD_ADDRESS = "android.telecom.extra.CHILD_ADDRESS"; field public static final java.lang.String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER"; @@ -37565,6 +37566,7 @@ package android.telecom { field public static final java.lang.String EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME = "android.telecom.extra.CHANGE_DEFAULT_DIALER_PACKAGE_NAME"; field public static final java.lang.String EXTRA_INCOMING_CALL_ADDRESS = "android.telecom.extra.INCOMING_CALL_ADDRESS"; field public static final java.lang.String EXTRA_INCOMING_CALL_EXTRAS = "android.telecom.extra.INCOMING_CALL_EXTRAS"; + field public static final java.lang.String EXTRA_INCOMING_VIDEO_STATE = "android.telecom.extra.INCOMING_VIDEO_STATE"; field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telecom.extra.NOTIFICATION_COUNT"; field public static final java.lang.String EXTRA_NOTIFICATION_PHONE_NUMBER = "android.telecom.extra.NOTIFICATION_PHONE_NUMBER"; field public static final java.lang.String EXTRA_OUTGOING_CALL_EXTRAS = "android.telecom.extra.OUTGOING_CALL_EXTRAS"; diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java index 833affa379f34..799835970e304 100644 --- a/telecomm/java/android/telecom/Connection.java +++ b/telecomm/java/android/telecom/Connection.java @@ -435,6 +435,18 @@ public abstract class Connection extends Conferenceable { public static final String EXTRA_ANSWERING_DROPS_FG_CALL = "android.telecom.extra.ANSWERING_DROPS_FG_CALL"; + /** + * String connection extra key set on a {@link Connection} in {@link Connection#STATE_RINGING} + * state to indicate the name of the third-party app which is responsible for the current + * foreground call. + *

+ * Used when {@link #EXTRA_ANSWERING_DROPS_FG_CALL} is true to ensure that the default Phone app + * is able to inform the user that answering the new incoming call will cause a call owned by + * another app to be dropped when the incoming call is answered. + */ + public static final String EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME = + "android.telecom.extra.ANSWERING_DROPS_FG_CALL_APP_NAME"; + /** * Boolean connection extra key on a {@link Connection} which indicates that adding an * additional call is disallowed. diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java index 3926e201a5e35..c42a8352a68a8 100644 --- a/telecomm/java/android/telecom/PhoneAccount.java +++ b/telecomm/java/android/telecom/PhoneAccount.java @@ -309,6 +309,18 @@ public final class PhoneAccount implements Parcelable { mSupportedAudioRoutes = phoneAccount.getSupportedAudioRoutes(); } + /** + * Sets the label. See {@link PhoneAccount#getLabel()}. + * + * @param label The label of the phone account. + * @return The builder. + * @hide + */ + public Builder setLabel(CharSequence label) { + this.mLabel = label; + return this; + } + /** * Sets the address. See {@link PhoneAccount#getAddress}. * diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index e21b4db9935cb..5093a6122b0cd 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -180,6 +180,18 @@ public class TelecomManager { public static final String EXTRA_START_CALL_WITH_VIDEO_STATE = "android.telecom.extra.START_CALL_WITH_VIDEO_STATE"; + /** + * Optional extra for {@link #addNewIncomingCall(PhoneAccountHandle, Bundle)} containing an + * integer that determines the requested video state for an incoming call. + * Valid options: + * {@link VideoProfile#STATE_AUDIO_ONLY}, + * {@link VideoProfile#STATE_BIDIRECTIONAL}, + * {@link VideoProfile#STATE_RX_ENABLED}, + * {@link VideoProfile#STATE_TX_ENABLED}. + */ + public static final String EXTRA_INCOMING_VIDEO_STATE = + "android.telecom.extra.INCOMING_VIDEO_STATE"; + /** * The extra used with an {@link android.content.Intent#ACTION_CALL} and * {@link android.content.Intent#ACTION_DIAL} {@code Intent} to specify a @@ -383,7 +395,11 @@ public class TelecomManager { *

* An {@link InCallService} which receives self-managed calls is free to view and control the * state of calls in the self-managed {@link ConnectionService}. An example use-case is - * exposing these calls to a wearable or automotive device via its companion app. + * exposing these calls to an automotive device via its companion app. + *

+ * This meta-data can only be set for an {@link InCallService} which also sets + * {@link #METADATA_IN_CALL_SERVICE_UI}. Only the default phone/dialer app, or a car-mode + * {@link InCallService} can see self-managed calls. *

* See also {@link Connection#PROPERTY_SELF_MANAGED}. */ @@ -1277,6 +1293,10 @@ public class TelecomManager { * {@link #getPhoneAccount}. Self-managed {@link ConnectionService}s must have * {@link android.Manifest.permission#MANAGE_OWN_CALLS} to add a new incoming call. *

+ * The incoming call you are adding is assumed to have a video state of + * {@link VideoProfile#STATE_AUDIO_ONLY}, unless the extra value + * {@link #EXTRA_INCOMING_VIDEO_STATE} is specified. + *

* Once invoked, this method will cause the system to bind to the {@link ConnectionService} * associated with the {@link PhoneAccountHandle} and request additional information about the * call (See {@link ConnectionService#onCreateIncomingConnection}) before starting the incoming