From 4afc6afd20488bf5afb462a718091a755de3adf4 Mon Sep 17 00:00:00 2001 From: Tyler Gunn Date: Tue, 7 Oct 2014 10:14:55 -0700 Subject: Fixing where call goes from disconnecting to active to disconnecting state. - Adding disconnecting state to telecom used to communicate that a call is being disconnected to InCall UI (rather than it existing only as a state in the InCall UI). Bug: 17821930 Change-Id: I6c2d9521915ba154c0468eea62c12c30060edd2e --- telecomm/java/android/telecom/Call.java | 9 +++++++++ telecomm/java/android/telecom/CallState.java | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java index a71161a..f934963 100644 --- a/telecomm/java/android/telecom/Call.java +++ b/telecomm/java/android/telecom/Call.java @@ -81,6 +81,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 * select phone accounts to (for example) place a call. @@ -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 7690847..bd9223a 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"; } -- cgit v1.1