Merge "Add a new call direction parameter to conferences for multiparty" into rvc-dev
This commit is contained in:
@@ -1092,16 +1092,16 @@ public abstract class Conference extends Conferenceable {
|
||||
* This is applicable in two cases:
|
||||
* <ol>
|
||||
* <li>When {@link #setConferenceState(boolean)} is used to mark a conference as
|
||||
* temporarily "not a conference"; we need to present the correct address in the in-call
|
||||
* UI.</li>
|
||||
* temporarily "not a conference"; we need to present the correct address presentation in
|
||||
* the in-call UI.</li>
|
||||
* <li>When the conference is not hosted on the current device, we need to know the address
|
||||
* information for the purpose of showing the original address to the user, as well as for
|
||||
* logging to the call log.</li>
|
||||
* presentation information for the purpose of showing the original address to the user, as
|
||||
* well as for logging to the call log.</li>
|
||||
* </ol>
|
||||
* @return The address of the conference, or {@code null} if not applicable.
|
||||
* @return The address presentation of the conference.
|
||||
* @hide
|
||||
*/
|
||||
public final int getAddressPresentation() {
|
||||
public final @TelecomManager.Presentation int getAddressPresentation() {
|
||||
return mAddressPresentation;
|
||||
}
|
||||
|
||||
|
||||
@@ -1865,25 +1865,23 @@ public abstract class ConnectionService extends Service {
|
||||
mConferenceById.put(callId, conference);
|
||||
mIdByConference.put(conference, callId);
|
||||
conference.addListener(mConferenceListener);
|
||||
ParcelableConference parcelableConference = new ParcelableConference(
|
||||
request.getAccountHandle(),
|
||||
conference.getState(),
|
||||
conference.getConnectionCapabilities(),
|
||||
conference.getConnectionProperties(),
|
||||
Collections.<String>emptyList(), //connectionIds
|
||||
conference.getVideoProvider() == null ?
|
||||
null : conference.getVideoProvider().getInterface(),
|
||||
conference.getVideoState(),
|
||||
conference.getConnectTimeMillis(),
|
||||
conference.getConnectionStartElapsedRealtimeMillis(),
|
||||
conference.getStatusHints(),
|
||||
conference.getExtras(),
|
||||
conference.getAddress(),
|
||||
conference.getAddressPresentation(),
|
||||
conference.getCallerDisplayName(),
|
||||
conference.getCallerDisplayNamePresentation(),
|
||||
conference.getDisconnectCause(),
|
||||
conference.isRingbackRequested());
|
||||
ParcelableConference parcelableConference = new ParcelableConference.Builder(
|
||||
request.getAccountHandle(), conference.getState())
|
||||
.setConnectionCapabilities(conference.getConnectionCapabilities())
|
||||
.setConnectionProperties(conference.getConnectionProperties())
|
||||
.setVideoAttributes(conference.getVideoProvider() == null
|
||||
? null : conference.getVideoProvider().getInterface(),
|
||||
conference.getVideoState())
|
||||
.setConnectTimeMillis(conference.getConnectTimeMillis(),
|
||||
conference.getConnectionStartElapsedRealtimeMillis())
|
||||
.setStatusHints(conference.getStatusHints())
|
||||
.setExtras(conference.getExtras())
|
||||
.setAddress(conference.getAddress(), conference.getAddressPresentation())
|
||||
.setCallerDisplayName(conference.getCallerDisplayName(),
|
||||
conference.getCallerDisplayNamePresentation())
|
||||
.setDisconnectCause(conference.getDisconnectCause())
|
||||
.setRingbackRequested(conference.isRingbackRequested())
|
||||
.build();
|
||||
if (conference.getState() != Connection.STATE_DISCONNECTED) {
|
||||
conference.setTelecomCallId(callId);
|
||||
mAdapter.setVideoProvider(callId, conference.getVideoProvider());
|
||||
@@ -2484,23 +2482,25 @@ public abstract class ConnectionService extends Service {
|
||||
}
|
||||
}
|
||||
conference.setTelecomCallId(id);
|
||||
ParcelableConference parcelableConference = new ParcelableConference(
|
||||
conference.getPhoneAccountHandle(),
|
||||
conference.getState(),
|
||||
conference.getConnectionCapabilities(),
|
||||
conference.getConnectionProperties(),
|
||||
connectionIds,
|
||||
conference.getVideoProvider() == null ?
|
||||
null : conference.getVideoProvider().getInterface(),
|
||||
conference.getVideoState(),
|
||||
conference.getConnectTimeMillis(),
|
||||
conference.getConnectionStartElapsedRealtimeMillis(),
|
||||
conference.getStatusHints(),
|
||||
conference.getExtras(),
|
||||
conference.getAddress(),
|
||||
conference.getAddressPresentation(),
|
||||
conference.getCallerDisplayName(),
|
||||
conference.getCallerDisplayNamePresentation());
|
||||
ParcelableConference parcelableConference = new ParcelableConference.Builder(
|
||||
conference.getPhoneAccountHandle(), conference.getState())
|
||||
.setConnectionCapabilities(conference.getConnectionCapabilities())
|
||||
.setConnectionProperties(conference.getConnectionProperties())
|
||||
.setConnectionIds(connectionIds)
|
||||
.setVideoAttributes(conference.getVideoProvider() == null
|
||||
? null : conference.getVideoProvider().getInterface(),
|
||||
conference.getVideoState())
|
||||
.setConnectTimeMillis(conference.getConnectTimeMillis(),
|
||||
conference.getConnectionStartElapsedRealtimeMillis())
|
||||
.setStatusHints(conference.getStatusHints())
|
||||
.setExtras(conference.getExtras())
|
||||
.setAddress(conference.getAddress(), conference.getAddressPresentation())
|
||||
.setCallerDisplayName(conference.getCallerDisplayName(),
|
||||
conference.getCallerDisplayNamePresentation())
|
||||
.setDisconnectCause(conference.getDisconnectCause())
|
||||
.setRingbackRequested(conference.isRingbackRequested())
|
||||
.setCallDirection(conference.getCallDirection())
|
||||
.build();
|
||||
|
||||
mAdapter.addConferenceCall(id, parcelableConference);
|
||||
mAdapter.setVideoProvider(id, conference.getVideoProvider());
|
||||
|
||||
@@ -22,6 +22,7 @@ import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.android.internal.telecom.IVideoProvider;
|
||||
@@ -32,25 +33,130 @@ import com.android.internal.telecom.IVideoProvider;
|
||||
*/
|
||||
public final class ParcelableConference implements Parcelable {
|
||||
|
||||
private PhoneAccountHandle mPhoneAccount;
|
||||
private int mState;
|
||||
private int mConnectionCapabilities;
|
||||
private int mConnectionProperties;
|
||||
private List<String> mConnectionIds;
|
||||
private long mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
|
||||
public static final class Builder {
|
||||
private final PhoneAccountHandle mPhoneAccount;
|
||||
private final int mState;
|
||||
private int mConnectionCapabilities;
|
||||
private int mConnectionProperties;
|
||||
private List<String> mConnectionIds = Collections.emptyList();
|
||||
private long mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
|
||||
private IVideoProvider mVideoProvider;
|
||||
private int mVideoState = VideoProfile.STATE_AUDIO_ONLY;
|
||||
private StatusHints mStatusHints;
|
||||
private Bundle mExtras;
|
||||
private long mConnectElapsedTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
|
||||
private Uri mAddress;
|
||||
private int mAddressPresentation = TelecomManager.PRESENTATION_UNKNOWN;
|
||||
private String mCallerDisplayName;
|
||||
private int mCallerDisplayNamePresentation = TelecomManager.PRESENTATION_UNKNOWN;;
|
||||
private DisconnectCause mDisconnectCause;
|
||||
private boolean mRingbackRequested;
|
||||
private int mCallDirection = Call.Details.DIRECTION_UNKNOWN;
|
||||
|
||||
public Builder(
|
||||
PhoneAccountHandle phoneAccount,
|
||||
int state) {
|
||||
mPhoneAccount = phoneAccount;
|
||||
mState = state;
|
||||
}
|
||||
|
||||
public Builder setDisconnectCause(DisconnectCause cause) {
|
||||
mDisconnectCause = cause;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRingbackRequested(boolean requested) {
|
||||
mRingbackRequested = requested;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCallerDisplayName(String callerDisplayName,
|
||||
@TelecomManager.Presentation int callerDisplayNamePresentation) {
|
||||
mCallerDisplayName = callerDisplayName;
|
||||
mCallerDisplayNamePresentation = callerDisplayNamePresentation;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAddress(Uri address,
|
||||
@TelecomManager.Presentation int addressPresentation) {
|
||||
mAddress = address;
|
||||
mAddressPresentation = addressPresentation;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setExtras(Bundle extras) {
|
||||
mExtras = extras;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStatusHints(StatusHints hints) {
|
||||
mStatusHints = hints;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setConnectTimeMillis(long connectTimeMillis, long connectElapsedTimeMillis) {
|
||||
mConnectTimeMillis = connectTimeMillis;
|
||||
mConnectElapsedTimeMillis = connectElapsedTimeMillis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setVideoAttributes(IVideoProvider provider,
|
||||
@VideoProfile.VideoState int videoState) {
|
||||
mVideoProvider = provider;
|
||||
mVideoState = videoState;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setConnectionIds(List<String> connectionIds) {
|
||||
mConnectionIds = connectionIds;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setConnectionProperties(int properties) {
|
||||
mConnectionProperties = properties;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setConnectionCapabilities(int capabilities) {
|
||||
mConnectionCapabilities = capabilities;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCallDirection(int callDirection) {
|
||||
mCallDirection = callDirection;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ParcelableConference build() {
|
||||
return new ParcelableConference(mPhoneAccount, mState, mConnectionCapabilities,
|
||||
mConnectionProperties, mConnectionIds, mVideoProvider, mVideoState,
|
||||
mConnectTimeMillis, mConnectElapsedTimeMillis, mStatusHints, mExtras, mAddress,
|
||||
mAddressPresentation, mCallerDisplayName, mCallerDisplayNamePresentation,
|
||||
mDisconnectCause, mRingbackRequested, mCallDirection);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private final PhoneAccountHandle mPhoneAccount;
|
||||
private final int mState;
|
||||
private final int mConnectionCapabilities;
|
||||
private final int mConnectionProperties;
|
||||
private final List<String> mConnectionIds;
|
||||
private final long mConnectTimeMillis;
|
||||
private final IVideoProvider mVideoProvider;
|
||||
private final int mVideoState;
|
||||
private StatusHints mStatusHints;
|
||||
private Bundle mExtras;
|
||||
private long mConnectElapsedTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
|
||||
private final StatusHints mStatusHints;
|
||||
private final Bundle mExtras;
|
||||
private final long mConnectElapsedTimeMillis;
|
||||
private final Uri mAddress;
|
||||
private final int mAddressPresentation;
|
||||
private final String mCallerDisplayName;
|
||||
private final int mCallerDisplayNamePresentation;
|
||||
private DisconnectCause mDisconnectCause;
|
||||
private boolean mRingbackRequested;
|
||||
private final DisconnectCause mDisconnectCause;
|
||||
private final boolean mRingbackRequested;
|
||||
private final int mCallDirection;
|
||||
|
||||
public ParcelableConference(
|
||||
private ParcelableConference(
|
||||
PhoneAccountHandle phoneAccount,
|
||||
int state,
|
||||
int connectionCapabilities,
|
||||
@@ -67,31 +173,8 @@ public final class ParcelableConference implements Parcelable {
|
||||
String callerDisplayName,
|
||||
int callerDisplayNamePresentation,
|
||||
DisconnectCause disconnectCause,
|
||||
boolean ringbackRequested) {
|
||||
this(phoneAccount, state, connectionCapabilities, connectionProperties, connectionIds,
|
||||
videoProvider, videoState, connectTimeMillis, connectElapsedTimeMillis,
|
||||
statusHints, extras, address, addressPresentation, callerDisplayName,
|
||||
callerDisplayNamePresentation);
|
||||
mDisconnectCause = disconnectCause;
|
||||
mRingbackRequested = ringbackRequested;
|
||||
}
|
||||
|
||||
public ParcelableConference(
|
||||
PhoneAccountHandle phoneAccount,
|
||||
int state,
|
||||
int connectionCapabilities,
|
||||
int connectionProperties,
|
||||
List<String> connectionIds,
|
||||
IVideoProvider videoProvider,
|
||||
int videoState,
|
||||
long connectTimeMillis,
|
||||
long connectElapsedTimeMillis,
|
||||
StatusHints statusHints,
|
||||
Bundle extras,
|
||||
Uri address,
|
||||
int addressPresentation,
|
||||
String callerDisplayName,
|
||||
int callerDisplayNamePresentation) {
|
||||
boolean ringbackRequested,
|
||||
int callDirection) {
|
||||
mPhoneAccount = phoneAccount;
|
||||
mState = state;
|
||||
mConnectionCapabilities = connectionCapabilities;
|
||||
@@ -107,8 +190,9 @@ public final class ParcelableConference implements Parcelable {
|
||||
mAddressPresentation = addressPresentation;
|
||||
mCallerDisplayName = callerDisplayName;
|
||||
mCallerDisplayNamePresentation = callerDisplayNamePresentation;
|
||||
mDisconnectCause = null;
|
||||
mRingbackRequested = false;
|
||||
mDisconnectCause = disconnectCause;
|
||||
mRingbackRequested = ringbackRequested;
|
||||
mCallDirection = callDirection;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -134,6 +218,8 @@ public final class ParcelableConference implements Parcelable {
|
||||
.append(mRingbackRequested)
|
||||
.append(", disconnectCause: ")
|
||||
.append(mDisconnectCause)
|
||||
.append(", callDirection: ")
|
||||
.append(mCallDirection)
|
||||
.toString();
|
||||
}
|
||||
|
||||
@@ -192,10 +278,15 @@ public final class ParcelableConference implements Parcelable {
|
||||
public boolean isRingbackRequested() {
|
||||
return mRingbackRequested;
|
||||
}
|
||||
|
||||
public int getHandlePresentation() {
|
||||
return mAddressPresentation;
|
||||
}
|
||||
|
||||
public int getCallDirection() {
|
||||
return mCallDirection;
|
||||
}
|
||||
|
||||
public static final @android.annotation.NonNull Parcelable.Creator<ParcelableConference> CREATOR =
|
||||
new Parcelable.Creator<ParcelableConference> () {
|
||||
@Override
|
||||
@@ -220,12 +311,13 @@ public final class ParcelableConference implements Parcelable {
|
||||
int callerDisplayNamePresentation = source.readInt();
|
||||
DisconnectCause disconnectCause = source.readParcelable(classLoader);
|
||||
boolean isRingbackRequested = source.readInt() == 1;
|
||||
int callDirection = source.readInt();
|
||||
|
||||
return new ParcelableConference(phoneAccount, state, capabilities, properties,
|
||||
connectionIds, videoCallProvider, videoState, connectTimeMillis,
|
||||
connectElapsedTimeMillis, statusHints, extras, address, addressPresentation,
|
||||
callerDisplayName, callerDisplayNamePresentation, disconnectCause,
|
||||
isRingbackRequested);
|
||||
isRingbackRequested, callDirection);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -261,5 +353,6 @@ public final class ParcelableConference implements Parcelable {
|
||||
destination.writeInt(mCallerDisplayNamePresentation);
|
||||
destination.writeParcelable(mDisconnectCause, 0);
|
||||
destination.writeInt(mRingbackRequested ? 1 : 0);
|
||||
destination.writeInt(mCallDirection);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user