diff options
author | Hall Liu <hallliu@google.com> | 2020-09-16 01:25:39 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-09-16 01:25:39 +0000 |
commit | 74bb99708bd343be95e6a9d6f27f1446b9ea30bd (patch) | |
tree | 191d704a7cf3bfca821496c8d42a57b1d7d9af7f | |
parent | a7a99f5dca32d9c05a739d0133ae8e4e54ffab43 (diff) | |
parent | 2f8cf2f852bf27a2ecd7c52b8b6002b129ab3119 (diff) |
Merge "Expose Telecom constants for use in Telephony" am: 9fcb2819d0 am: 1bf919f084 am: 5b6beb2fc0 am: 2f8cf2f852
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1427473
Change-Id: Ib461b9a4f7271b9f9263cae8292dc5d0579fc102
-rw-r--r-- | api/current.txt | 3 | ||||
-rwxr-xr-x | api/system-current.txt | 19 | ||||
-rw-r--r-- | api/test-current.txt | 4 | ||||
-rw-r--r-- | non-updatable-api/current.txt | 3 | ||||
-rw-r--r-- | non-updatable-api/system-current.txt | 19 | ||||
-rw-r--r-- | telecomm/java/android/telecom/DisconnectCause.java | 12 | ||||
-rw-r--r-- | telecomm/java/android/telecom/PhoneAccount.java | 21 | ||||
-rw-r--r-- | telecomm/java/android/telecom/TelecomManager.java | 49 |
8 files changed, 110 insertions, 20 deletions
diff --git a/api/current.txt b/api/current.txt index 87b0cc85366a..abcc50e91f54 100644 --- a/api/current.txt +++ b/api/current.txt @@ -45970,6 +45970,8 @@ package android.telecom { field public static final int MISSED = 5; // 0x5 field public static final int OTHER = 9; // 0x9 field public static final String REASON_EMERGENCY_CALL_PLACED = "REASON_EMERGENCY_CALL_PLACED"; + field public static final String REASON_IMS_ACCESS_BLOCKED = "REASON_IMS_ACCESS_BLOCKED"; + field public static final String REASON_WIFI_ON_BUT_WFC_OFF = "REASON_WIFI_ON_BUT_WFC_OFF"; field public static final int REJECTED = 6; // 0x6 field public static final int REMOTE = 3; // 0x3 field public static final int RESTRICTED = 8; // 0x8 @@ -46064,6 +46066,7 @@ package android.telecom { field public static final int CAPABILITY_VIDEO_CALLING = 8; // 0x8 field public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE = 256; // 0x100 field @NonNull public static final android.os.Parcelable.Creator<android.telecom.PhoneAccount> CREATOR; + field public static final String EXTRA_ALWAYS_USE_VOIP_AUDIO_MODE = "android.telecom.extra.ALWAYS_USE_VOIP_AUDIO_MODE"; field public static final String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING = "android.telecom.extra.CALL_SUBJECT_CHARACTER_ENCODING"; field public static final String EXTRA_CALL_SUBJECT_MAX_LENGTH = "android.telecom.extra.CALL_SUBJECT_MAX_LENGTH"; field public static final String EXTRA_LOG_SELF_MANAGED_CALLS = "android.telecom.extra.LOG_SELF_MANAGED_CALLS"; diff --git a/api/system-current.txt b/api/system-current.txt index c0364a3de18f..9dde046ec313 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -10249,6 +10249,10 @@ package android.telecom { method public final void addExistingConnection(@NonNull android.telecom.PhoneAccountHandle, @NonNull android.telecom.Connection, @NonNull android.telecom.Conference); } + public final class DisconnectCause implements android.os.Parcelable { + field public static final String REASON_EMULATING_SINGLE_CALL = "EMULATING_SINGLE_CALL"; + } + public abstract class InCallService extends android.app.Service { method @Deprecated public android.telecom.Phone getPhone(); method @Deprecated public void onPhoneCreated(android.telecom.Phone); @@ -10377,7 +10381,12 @@ package android.telecom { } public final class PhoneAccount implements android.os.Parcelable { + field public static final int CAPABILITY_EMERGENCY_CALLS_ONLY = 128; // 0x80 + field public static final int CAPABILITY_EMERGENCY_PREFERRED = 8192; // 0x2000 + field public static final int CAPABILITY_EMERGENCY_VIDEO_CALLING = 512; // 0x200 field public static final int CAPABILITY_MULTI_USER = 32; // 0x20 + field public static final String EXTRA_PLAY_CALL_RECORDING_TONE = "android.telecom.extra.PLAY_CALL_RECORDING_TONE"; + field public static final String EXTRA_SORT_ORDER = "android.telecom.extra.SORT_ORDER"; } public static class PhoneAccount.Builder { @@ -10463,10 +10472,20 @@ package android.telecom { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall(); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle); + field public static final String ACTION_CURRENT_TTY_MODE_CHANGED = "android.telecom.action.CURRENT_TTY_MODE_CHANGED"; + field public static final String ACTION_TTY_PREFERRED_MODE_CHANGED = "android.telecom.action.TTY_PREFERRED_MODE_CHANGED"; + field public static final int CALL_SOURCE_EMERGENCY_DIALPAD = 1; // 0x1 + field public static final int CALL_SOURCE_EMERGENCY_SHORTCUT = 2; // 0x2 + field public static final int CALL_SOURCE_UNSPECIFIED = 0; // 0x0 field public static final String EXTRA_CALL_BACK_INTENT = "android.telecom.extra.CALL_BACK_INTENT"; + field public static final String EXTRA_CALL_SOURCE = "android.telecom.extra.CALL_SOURCE"; + field public static final String EXTRA_CALL_TECHNOLOGY_TYPE = "android.telecom.extra.CALL_TECHNOLOGY_TYPE"; field public static final String EXTRA_CLEAR_MISSED_CALLS_INTENT = "android.telecom.extra.CLEAR_MISSED_CALLS_INTENT"; field public static final String EXTRA_CONNECTION_SERVICE = "android.telecom.extra.CONNECTION_SERVICE"; + field public static final String EXTRA_CURRENT_TTY_MODE = "android.telecom.extra.CURRENT_TTY_MODE"; field public static final String EXTRA_IS_USER_INTENT_EMERGENCY_CALL = "android.telecom.extra.IS_USER_INTENT_EMERGENCY_CALL"; + field public static final String EXTRA_TTY_PREFERRED_MODE = "android.telecom.extra.TTY_PREFERRED_MODE"; + field public static final String EXTRA_UNKNOWN_CALL_HANDLE = "android.telecom.extra.UNKNOWN_CALL_HANDLE"; field public static final int TTY_MODE_FULL = 1; // 0x1 field public static final int TTY_MODE_HCO = 2; // 0x2 field public static final int TTY_MODE_OFF = 0; // 0x0 diff --git a/api/test-current.txt b/api/test-current.txt index e7dc4352b796..8e6022190f29 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -3929,6 +3929,10 @@ package android.telecom { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall(); method @RequiresPermission(anyOf={"android.permission.READ_PRIVILEGED_PHONE_STATE", android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle); + field public static final String ACTION_CURRENT_TTY_MODE_CHANGED = "android.telecom.action.CURRENT_TTY_MODE_CHANGED"; + field public static final String ACTION_TTY_PREFERRED_MODE_CHANGED = "android.telecom.action.TTY_PREFERRED_MODE_CHANGED"; + field public static final String EXTRA_CURRENT_TTY_MODE = "android.telecom.extra.CURRENT_TTY_MODE"; + field public static final String EXTRA_TTY_PREFERRED_MODE = "android.telecom.extra.TTY_PREFERRED_MODE"; field public static final int TTY_MODE_FULL = 1; // 0x1 field public static final int TTY_MODE_HCO = 2; // 0x2 field public static final int TTY_MODE_OFF = 0; // 0x0 diff --git a/non-updatable-api/current.txt b/non-updatable-api/current.txt index b1373de5ea6c..768db76dc32d 100644 --- a/non-updatable-api/current.txt +++ b/non-updatable-api/current.txt @@ -44138,6 +44138,8 @@ package android.telecom { field public static final int MISSED = 5; // 0x5 field public static final int OTHER = 9; // 0x9 field public static final String REASON_EMERGENCY_CALL_PLACED = "REASON_EMERGENCY_CALL_PLACED"; + field public static final String REASON_IMS_ACCESS_BLOCKED = "REASON_IMS_ACCESS_BLOCKED"; + field public static final String REASON_WIFI_ON_BUT_WFC_OFF = "REASON_WIFI_ON_BUT_WFC_OFF"; field public static final int REJECTED = 6; // 0x6 field public static final int REMOTE = 3; // 0x3 field public static final int RESTRICTED = 8; // 0x8 @@ -44232,6 +44234,7 @@ package android.telecom { field public static final int CAPABILITY_VIDEO_CALLING = 8; // 0x8 field public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE = 256; // 0x100 field @NonNull public static final android.os.Parcelable.Creator<android.telecom.PhoneAccount> CREATOR; + field public static final String EXTRA_ALWAYS_USE_VOIP_AUDIO_MODE = "android.telecom.extra.ALWAYS_USE_VOIP_AUDIO_MODE"; field public static final String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING = "android.telecom.extra.CALL_SUBJECT_CHARACTER_ENCODING"; field public static final String EXTRA_CALL_SUBJECT_MAX_LENGTH = "android.telecom.extra.CALL_SUBJECT_MAX_LENGTH"; field public static final String EXTRA_LOG_SELF_MANAGED_CALLS = "android.telecom.extra.LOG_SELF_MANAGED_CALLS"; diff --git a/non-updatable-api/system-current.txt b/non-updatable-api/system-current.txt index 31b71fb5ca4d..22d9ec2a1574 100644 --- a/non-updatable-api/system-current.txt +++ b/non-updatable-api/system-current.txt @@ -9131,6 +9131,10 @@ package android.telecom { method public final void addExistingConnection(@NonNull android.telecom.PhoneAccountHandle, @NonNull android.telecom.Connection, @NonNull android.telecom.Conference); } + public final class DisconnectCause implements android.os.Parcelable { + field public static final String REASON_EMULATING_SINGLE_CALL = "EMULATING_SINGLE_CALL"; + } + public abstract class InCallService extends android.app.Service { method @Deprecated public android.telecom.Phone getPhone(); method @Deprecated public void onPhoneCreated(android.telecom.Phone); @@ -9259,7 +9263,12 @@ package android.telecom { } public final class PhoneAccount implements android.os.Parcelable { + field public static final int CAPABILITY_EMERGENCY_CALLS_ONLY = 128; // 0x80 + field public static final int CAPABILITY_EMERGENCY_PREFERRED = 8192; // 0x2000 + field public static final int CAPABILITY_EMERGENCY_VIDEO_CALLING = 512; // 0x200 field public static final int CAPABILITY_MULTI_USER = 32; // 0x20 + field public static final String EXTRA_PLAY_CALL_RECORDING_TONE = "android.telecom.extra.PLAY_CALL_RECORDING_TONE"; + field public static final String EXTRA_SORT_ORDER = "android.telecom.extra.SORT_ORDER"; } public static class PhoneAccount.Builder { @@ -9345,10 +9354,20 @@ package android.telecom { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall(); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle); + field public static final String ACTION_CURRENT_TTY_MODE_CHANGED = "android.telecom.action.CURRENT_TTY_MODE_CHANGED"; + field public static final String ACTION_TTY_PREFERRED_MODE_CHANGED = "android.telecom.action.TTY_PREFERRED_MODE_CHANGED"; + field public static final int CALL_SOURCE_EMERGENCY_DIALPAD = 1; // 0x1 + field public static final int CALL_SOURCE_EMERGENCY_SHORTCUT = 2; // 0x2 + field public static final int CALL_SOURCE_UNSPECIFIED = 0; // 0x0 field public static final String EXTRA_CALL_BACK_INTENT = "android.telecom.extra.CALL_BACK_INTENT"; + field public static final String EXTRA_CALL_SOURCE = "android.telecom.extra.CALL_SOURCE"; + field public static final String EXTRA_CALL_TECHNOLOGY_TYPE = "android.telecom.extra.CALL_TECHNOLOGY_TYPE"; field public static final String EXTRA_CLEAR_MISSED_CALLS_INTENT = "android.telecom.extra.CLEAR_MISSED_CALLS_INTENT"; field public static final String EXTRA_CONNECTION_SERVICE = "android.telecom.extra.CONNECTION_SERVICE"; + field public static final String EXTRA_CURRENT_TTY_MODE = "android.telecom.extra.CURRENT_TTY_MODE"; field public static final String EXTRA_IS_USER_INTENT_EMERGENCY_CALL = "android.telecom.extra.IS_USER_INTENT_EMERGENCY_CALL"; + field public static final String EXTRA_TTY_PREFERRED_MODE = "android.telecom.extra.TTY_PREFERRED_MODE"; + field public static final String EXTRA_UNKNOWN_CALL_HANDLE = "android.telecom.extra.UNKNOWN_CALL_HANDLE"; field public static final int TTY_MODE_FULL = 1; // 0x1 field public static final int TTY_MODE_HCO = 2; // 0x2 field public static final int TTY_MODE_OFF = 0; // 0x0 diff --git a/telecomm/java/android/telecom/DisconnectCause.java b/telecomm/java/android/telecom/DisconnectCause.java index bebbbd01fd88..f7fe1ba1f998 100644 --- a/telecomm/java/android/telecom/DisconnectCause.java +++ b/telecomm/java/android/telecom/DisconnectCause.java @@ -16,6 +16,7 @@ package android.telecom; +import android.annotation.SystemApi; import android.media.ToneGenerator; import android.os.Parcel; import android.os.Parcelable; @@ -80,21 +81,26 @@ public final class DisconnectCause implements Parcelable { * Reason code (returned via {@link #getReason()}) which indicates that a call could not be * completed because the cellular radio is off or out of service, the device is connected to * a wifi network, but the user has not enabled wifi calling. - * @hide */ public static final String REASON_WIFI_ON_BUT_WFC_OFF = "REASON_WIFI_ON_BUT_WFC_OFF"; /** * Reason code (returned via {@link #getReason()}), which indicates that the video telephony * call was disconnected because IMS access is blocked. - * @hide */ public static final String REASON_IMS_ACCESS_BLOCKED = "REASON_IMS_ACCESS_BLOCKED"; /** - * Reason code, which indicates that the conference call is simulating single party conference. + * Reason code (returned via {@link #getReason()}), which indicates that the connection service + * is setting the call's state to {@link Call#STATE_DISCONNECTED} because it is internally + * changing the representation of an IMS conference call to simulate a single-party call. + * + * This reason code is only used for communication between a {@link ConnectionService} and + * Telecom and should not be surfaced to the user. + * * @hide */ + @SystemApi public static final String REASON_EMULATING_SINGLE_CALL = "EMULATING_SINGLE_CALL"; /** diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java index 768c8eebf067..c20e5ad8ce7c 100644 --- a/telecomm/java/android/telecom/PhoneAccount.java +++ b/telecomm/java/android/telecom/PhoneAccount.java @@ -48,11 +48,15 @@ import java.util.Objects; public final class PhoneAccount implements Parcelable { /** - * {@link PhoneAccount} extras key (see {@link PhoneAccount#getExtras()}) which determines the - * sort order for {@link PhoneAccount}s from the same - * {@link android.telecom.ConnectionService}. + * String extra which determines the order in which {@link PhoneAccount}s are sorted + * + * This is an extras key set via {@link Builder#setExtras} which determines the order in which + * {@link PhoneAccount}s from the same {@link ConnectionService} are sorted. The accounts + * are sorted by this key via standard lexicographical order, and this ordering is used to + * determine priority when a call can be placed via multiple accounts. * @hide */ + @SystemApi public static final String EXTRA_SORT_ORDER = "android.telecom.extra.SORT_ORDER"; @@ -85,8 +89,7 @@ public final class PhoneAccount implements Parcelable { /** * Boolean {@link PhoneAccount} extras key (see {@link PhoneAccount#getExtras()}) which * indicates that all calls from this {@link PhoneAccount} should be treated as VoIP calls - * rather than cellular calls. - * @hide + * rather than cellular calls by the Telecom audio handling logic. */ public static final String EXTRA_ALWAYS_USE_VOIP_AUDIO_MODE = "android.telecom.extra.ALWAYS_USE_VOIP_AUDIO_MODE"; @@ -160,6 +163,7 @@ public final class PhoneAccount implements Parcelable { * in progress. * @hide */ + @SystemApi public static final String EXTRA_PLAY_CALL_RECORDING_TONE = "android.telecom.extra.PLAY_CALL_RECORDING_TONE"; @@ -254,6 +258,7 @@ public final class PhoneAccount implements Parcelable { * See {@link #getCapabilities} * @hide */ + @SystemApi public static final int CAPABILITY_EMERGENCY_CALLS_ONLY = 0x80; /** @@ -277,6 +282,7 @@ public final class PhoneAccount implements Parcelable { * convert all outgoing video calls to emergency numbers to audio-only. * @hide */ + @SystemApi public static final int CAPABILITY_EMERGENCY_VIDEO_CALLING = 0x200; /** @@ -323,9 +329,9 @@ public final class PhoneAccount implements Parcelable { /** * Flag indicating that this {@link PhoneAccount} is the preferred SIM subscription for - * emergency calls. A {@link PhoneAccount} that sets this capabilitiy must also + * emergency calls. A {@link PhoneAccount} that sets this capability must also * set the {@link #CAPABILITY_SIM_SUBSCRIPTION} and {@link #CAPABILITY_PLACE_EMERGENCY_CALLS} - * capabilities. There should only be one emergency preferred {@link PhoneAccount}. + * capabilities. There must only be one emergency preferred {@link PhoneAccount} on the device. * <p> * When set, Telecom will prefer this {@link PhoneAccount} over others for emergency calling, * even if the emergency call was placed with a specific {@link PhoneAccount} set using the @@ -334,6 +340,7 @@ public final class PhoneAccount implements Parcelable { * * @hide */ + @SystemApi public static final int CAPABILITY_EMERGENCY_PREFERRED = 0x2000; /** diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index bcb1736f416e..1f3740b76d1c 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -322,6 +322,7 @@ public class TelecomManager { * the remote handle of the new call. * @hide */ + @SystemApi public static final String EXTRA_UNKNOWN_CALL_HANDLE = "android.telecom.extra.UNKNOWN_CALL_HANDLE"; @@ -392,6 +393,7 @@ public class TelecomManager { * </ul> * @hide */ + @SystemApi public static final String EXTRA_CALL_TECHNOLOGY_TYPE = "android.telecom.extra.CALL_TECHNOLOGY_TYPE"; @@ -728,17 +730,22 @@ public class TelecomManager { public static final int TTY_MODE_VCO = 3; /** - * Broadcast intent action indicating that the current TTY mode has changed. An intent extra - * provides this state as an int. + * Broadcast intent action indicating that the current TTY mode has changed. * - * @see #EXTRA_CURRENT_TTY_MODE + * This intent will contain {@link #EXTRA_CURRENT_TTY_MODE} as an intent extra, giving the new + * TTY mode. * @hide */ + @TestApi + @SystemApi public static final String ACTION_CURRENT_TTY_MODE_CHANGED = "android.telecom.action.CURRENT_TTY_MODE_CHANGED"; /** - * The lookup key for an int that indicates the current TTY mode. + * Integer extra key that indicates the current TTY mode. + * + * Used with {@link #ACTION_CURRENT_TTY_MODE_CHANGED}. + * * Valid modes are: * <ul> * <li>{@link #TTY_MODE_OFF}</li> @@ -746,28 +753,45 @@ public class TelecomManager { * <li>{@link #TTY_MODE_HCO}</li> * <li>{@link #TTY_MODE_VCO}</li> * </ul> + * + * This TTY mode is distinct from the one sent via {@link #ACTION_TTY_PREFERRED_MODE_CHANGED}, + * since the current TTY mode will always be {@link #TTY_MODE_OFF}unless a TTY terminal is + * plugged into the device. * @hide */ + @TestApi + @SystemApi public static final String EXTRA_CURRENT_TTY_MODE = "android.telecom.extra.CURRENT_TTY_MODE"; /** - * Broadcast intent action indicating that the TTY preferred operating mode has changed. An - * intent extra provides the new mode as an int. + * Broadcast intent action indicating that the TTY preferred operating mode has changed. * - * @see #EXTRA_TTY_PREFERRED_MODE + * This intent will contain {@link #EXTRA_TTY_PREFERRED_MODE} as an intent extra, giving the new + * preferred TTY mode. * @hide */ + @TestApi + @SystemApi public static final String ACTION_TTY_PREFERRED_MODE_CHANGED = "android.telecom.action.TTY_PREFERRED_MODE_CHANGED"; /** - * The lookup key for an int that indicates preferred TTY mode. Valid modes are: - - * {@link #TTY_MODE_OFF} - {@link #TTY_MODE_FULL} - {@link #TTY_MODE_HCO} - - * {@link #TTY_MODE_VCO} + * Integer extra key that indicates the preferred TTY mode. + * + * Used with {@link #ACTION_TTY_PREFERRED_MODE_CHANGED}. * + * Valid modes are: + * <ul> + * <li>{@link #TTY_MODE_OFF}</li> + * <li>{@link #TTY_MODE_FULL}</li> + * <li>{@link #TTY_MODE_HCO}</li> + * <li>{@link #TTY_MODE_VCO}</li> + * </ul> * @hide */ + @TestApi + @SystemApi public static final String EXTRA_TTY_PREFERRED_MODE = "android.telecom.extra.TTY_PREFERRED_MODE"; @@ -843,8 +867,10 @@ public class TelecomManager { * {@link TelecomManager#CALL_SOURCE_EMERGENCY_DIALPAD}, * {@link TelecomManager#CALL_SOURCE_EMERGENCY_SHORTCUT}. * + * Intended for use with the platform emergency dialer only. * @hide */ + @SystemApi public static final String EXTRA_CALL_SOURCE = "android.telecom.extra.CALL_SOURCE"; /** @@ -852,6 +878,7 @@ public class TelecomManager { * * @hide */ + @SystemApi public static final int CALL_SOURCE_EMERGENCY_SHORTCUT = 2; /** @@ -859,6 +886,7 @@ public class TelecomManager { * * @hide */ + @SystemApi public static final int CALL_SOURCE_EMERGENCY_DIALPAD = 1; /** @@ -866,6 +894,7 @@ public class TelecomManager { * * @hide */ + @SystemApi public static final int CALL_SOURCE_UNSPECIFIED = 0; /** |