diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java index a71161adda373..f9349639456d2 100644 --- a/telecomm/java/android/telecom/Call.java +++ b/telecomm/java/android/telecom/Call.java @@ -80,6 +80,13 @@ public final class Call { */ public static final int STATE_CONNECTING = 9; + /** + * The state of a {@code Call} when the user has initiated a disconnection of the call, but the + * call has not yet been disconnected by the underlying {@code ConnectionService}. The next + * state of the call is (potentially) {@link #STATE_DISCONNECTED}. + */ + public static final int STATE_DISCONNECTING = 10; + /** * The key to retrieve the optional {@code PhoneAccount}s Telecom can bundle with its Call * extras. Used to pass the phone accounts to display on the front end to the user in order to @@ -828,6 +835,8 @@ public final class Call { return STATE_DISCONNECTED; case CallState.ABORTED: return STATE_DISCONNECTED; + case CallState.DISCONNECTING: + return STATE_DISCONNECTING; default: Log.wtf(this, "Unrecognized CallState %s", parcelableCallState); return STATE_NEW; diff --git a/telecomm/java/android/telecom/CallState.java b/telecomm/java/android/telecom/CallState.java index 769084794a2d1..bd9223affbff1 100644 --- a/telecomm/java/android/telecom/CallState.java +++ b/telecomm/java/android/telecom/CallState.java @@ -100,6 +100,16 @@ public final class CallState { */ public static final int ABORTED = 8; + /** + * Indicates that the call is in the process of being disconnected and will transition next + * to a {@link #DISCONNECTED} state. + *
+ * This state is not expected to be communicated from the Telephony layer, but will be reported + * to the InCall UI for calls where disconnection has been initiated by the user but the + * ConnectionService has confirmed the call as disconnected. + */ + public static final int DISCONNECTING = 9; + public static String toString(int callState) { switch (callState) { case NEW: @@ -120,6 +130,8 @@ public final class CallState { return "DISCONNECTED"; case ABORTED: return "ABORTED"; + case DISCONNECTING: + return "DISCONNECTING"; default: return "UNKNOWN"; }