Add StatusHints to Conference object.

+ Consolidated ParcelableConference constructors; only one is used.

Bug: 20181703
Change-Id: Iad49f10404e1c1eedc4ef68525bde0f10a8dfc97
This commit is contained in:
Andrew Lee
2015-04-14 13:38:12 -07:00
parent 6b91ebf58c
commit edc625f52e
4 changed files with 47 additions and 17 deletions

View File

@ -29995,6 +29995,7 @@ package android.telecom {
method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle();
method public android.telecom.Connection getPrimaryConnection(); method public android.telecom.Connection getPrimaryConnection();
method public final int getState(); method public final int getState();
method public final android.telecom.StatusHints getStatusHints();
method public void onAudioStateChanged(android.telecom.AudioState); method public void onAudioStateChanged(android.telecom.AudioState);
method public void onConnectionAdded(android.telecom.Connection); method public void onConnectionAdded(android.telecom.Connection);
method public void onDisconnect(); method public void onDisconnect();
@ -30013,6 +30014,7 @@ package android.telecom {
method public final void setConnectionCapabilities(int); method public final void setConnectionCapabilities(int);
method public final void setDisconnected(android.telecom.DisconnectCause); method public final void setDisconnected(android.telecom.DisconnectCause);
method public final void setOnHold(); method public final void setOnHold();
method public final void setStatusHints(android.telecom.StatusHints);
field public static long CONNECT_TIME_NOT_SPECIFIED; field public static long CONNECT_TIME_NOT_SPECIFIED;
field protected android.telecom.PhoneAccountHandle mPhoneAccount; field protected android.telecom.PhoneAccountHandle mPhoneAccount;
} }

View File

@ -49,6 +49,7 @@ public abstract class Conference implements IConferenceable {
public void onDestroyed(Conference conference) {} public void onDestroyed(Conference conference) {}
public void onConnectionCapabilitiesChanged( public void onConnectionCapabilitiesChanged(
Conference conference, int connectionCapabilities) {} Conference conference, int connectionCapabilities) {}
public void onStatusHintsChanged(Conference conference, StatusHints statusHints) {}
} }
private final Set<Listener> mListeners = new CopyOnWriteArraySet<>(); private final Set<Listener> mListeners = new CopyOnWriteArraySet<>();
@ -66,6 +67,7 @@ public abstract class Conference implements IConferenceable {
private int mConnectionCapabilities; private int mConnectionCapabilities;
private String mDisconnectMessage; private String mDisconnectMessage;
private long mConnectTimeMillis = CONNECT_TIME_NOT_SPECIFIED; private long mConnectTimeMillis = CONNECT_TIME_NOT_SPECIFIED;
private StatusHints mStatusHints;
private final Connection.Listener mConnectionDeathListener = new Connection.Listener() { private final Connection.Listener mConnectionDeathListener = new Connection.Listener() {
@Override @Override
@ -484,4 +486,23 @@ public abstract class Conference implements IConferenceable {
} }
mConferenceableConnections.clear(); mConferenceableConnections.clear();
} }
/**
* Sets the label and icon status to display in the InCall UI.
*
* @param statusHints The status label and icon to set.
*/
public final void setStatusHints(StatusHints statusHints) {
mStatusHints = statusHints;
for (Listener l : mListeners) {
l.onStatusHintsChanged(this, statusHints);
}
}
/**
* @return The status hints for this conference.
*/
public final StatusHints getStatusHints() {
return mStatusHints;
}
} }

View File

@ -415,6 +415,12 @@ public abstract class ConnectionService extends Service {
Connection.capabilitiesToString(connectionCapabilities)); Connection.capabilitiesToString(connectionCapabilities));
mAdapter.setConnectionCapabilities(id, connectionCapabilities); mAdapter.setConnectionCapabilities(id, connectionCapabilities);
} }
@Override
public void onStatusHintsChanged(Conference conference, StatusHints statusHints) {
String id = mIdByConference.get(conference);
mAdapter.setStatusHints(id, statusHints);
}
}; };
private final Connection.Listener mConnectionListener = new Connection.Listener() { private final Connection.Listener mConnectionListener = new Connection.Listener() {
@ -884,7 +890,8 @@ public abstract class ConnectionService extends Service {
conference.getState(), conference.getState(),
conference.getConnectionCapabilities(), conference.getConnectionCapabilities(),
connectionIds, connectionIds,
conference.getConnectTimeMillis()); conference.getConnectTimeMillis(),
conference.getStatusHints());
mAdapter.addConferenceCall(id, parcelableConference); mAdapter.addConferenceCall(id, parcelableConference);
// Go through any child calls and set the parent. // Go through any child calls and set the parent.

View File

@ -32,28 +32,22 @@ public final class ParcelableConference implements Parcelable {
private int mState; private int mState;
private int mConnectionCapabilities; private int mConnectionCapabilities;
private List<String> mConnectionIds; private List<String> mConnectionIds;
private long mConnectTimeMillis; private long mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
private StatusHints mStatusHints;
public ParcelableConference(
PhoneAccountHandle phoneAccount,
int state,
int connectionCapabilities,
List<String> connectionIds) {
mPhoneAccount = phoneAccount;
mState = state;
mConnectionCapabilities = connectionCapabilities;
mConnectionIds = connectionIds;
mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
}
public ParcelableConference( public ParcelableConference(
PhoneAccountHandle phoneAccount, PhoneAccountHandle phoneAccount,
int state, int state,
int connectionCapabilities, int connectionCapabilities,
List<String> connectionIds, List<String> connectionIds,
long connectTimeMillis) { long connectTimeMillis,
this(phoneAccount, state, connectionCapabilities, connectionIds); StatusHints statusHints) {
mPhoneAccount = phoneAccount;
mState = state;
mConnectionCapabilities = connectionCapabilities;
mConnectionIds = connectionIds;
mConnectTimeMillis = connectTimeMillis; mConnectTimeMillis = connectTimeMillis;
mStatusHints = statusHints;
} }
@Override @Override
@ -92,6 +86,10 @@ public final class ParcelableConference implements Parcelable {
return mConnectTimeMillis; return mConnectTimeMillis;
} }
public StatusHints getStatusHints() {
return mStatusHints;
}
public static final Parcelable.Creator<ParcelableConference> CREATOR = public static final Parcelable.Creator<ParcelableConference> CREATOR =
new Parcelable.Creator<ParcelableConference> () { new Parcelable.Creator<ParcelableConference> () {
@Override @Override
@ -103,9 +101,10 @@ public final class ParcelableConference implements Parcelable {
List<String> connectionIds = new ArrayList<>(2); List<String> connectionIds = new ArrayList<>(2);
source.readList(connectionIds, classLoader); source.readList(connectionIds, classLoader);
long connectTimeMillis = source.readLong(); long connectTimeMillis = source.readLong();
StatusHints statusHints = source.readParcelable(classLoader);
return new ParcelableConference(phoneAccount, state, capabilities, connectionIds, return new ParcelableConference(phoneAccount, state, capabilities, connectionIds,
connectTimeMillis); connectTimeMillis, statusHints);
} }
@Override @Override
@ -128,5 +127,6 @@ public final class ParcelableConference implements Parcelable {
destination.writeInt(mConnectionCapabilities); destination.writeInt(mConnectionCapabilities);
destination.writeList(mConnectionIds); destination.writeList(mConnectionIds);
destination.writeLong(mConnectTimeMillis); destination.writeLong(mConnectTimeMillis);
destination.writeParcelable(mStatusHints, 0);
} }
} }