Add new DisconnectCause class to telecomm.

+ Add a hidden "UNKNOWN" default type to ToneGenerator.
- Hide the Telephony DisconnectCause from the public API.
+ Add a Telecomm DisconnectCause. This is parcelable, and contains
information (code, user facing message, non-user facing reason,
and tone) to help describe the disconnect state and what behaviors
an application can implement for the user experience. This reduces
the causes for a disconnect to a more generic set.
+ Lots of work to pipe this through. DisconnectCause replaces the
code and message which were formerly passed around.

Bug: 17241433
Bug: 17329632
Change-Id: I9d337e478a8784bcc0ade02267c2df52cac9bf17
This commit is contained in:
Andrew Lee
2014-09-11 17:33:16 -07:00
parent b37b7ae137
commit 7f3d41fd12
17 changed files with 424 additions and 261 deletions

View File

@@ -19,7 +19,6 @@ package android.telecom;
import com.android.internal.telecom.IConnectionService;
import android.os.RemoteException;
import android.telephony.DisconnectCause;
import java.util.Collections;
import java.util.List;
@@ -34,7 +33,7 @@ public final class RemoteConference {
public abstract static class Callback {
public void onStateChanged(RemoteConference conference, int oldState, int newState) {}
public void onDisconnected(RemoteConference conference, int cause, String message) {}
public void onDisconnected(RemoteConference conference, DisconnectCause disconnectCause) {}
public void onConnectionAdded(RemoteConference conference, RemoteConnection connection) {}
public void onConnectionRemoved(RemoteConference conference, RemoteConnection connection) {}
public void onCapabilitiesChanged(RemoteConference conference, int capabilities) {}
@@ -50,9 +49,8 @@ public final class RemoteConference {
Collections.unmodifiableList(mChildConnections);
private int mState = Connection.STATE_NEW;
private int mDisconnectCause = DisconnectCause.NOT_VALID;
private DisconnectCause mDisconnectCause;
private int mCallCapabilities;
private String mDisconnectMessage;
/** {@hide} */
RemoteConference(String id, IConnectionService connectionService) {
@@ -127,13 +125,12 @@ public final class RemoteConference {
}
/** {@hide} */
void setDisconnected(int cause, String message) {
void setDisconnected(DisconnectCause disconnectCause) {
if (mState != Connection.STATE_DISCONNECTED) {
mDisconnectCause = cause;
mDisconnectMessage = message;
mDisconnectCause = disconnectCause;
setState(Connection.STATE_DISCONNECTED);
for (Callback c : mCallbacks) {
c.onDisconnected(this, cause, message);
c.onDisconnected(this, disconnectCause);
}
}
}
@@ -180,14 +177,10 @@ public final class RemoteConference {
}
}
public int getDisconnectCause() {
public DisconnectCause getDisconnectCause() {
return mDisconnectCause;
}
public String getDisconnectMessage() {
return mDisconnectMessage;
}
public final void registerCallback(Callback callback) {
mCallbacks.add(callback);
}