Loading telecomm/java/android/telecom/Conference.java +6 −6 Original line number Diff line number Diff line Loading @@ -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; } Loading telecomm/java/android/telecom/ConnectionService.java +36 −36 Original line number Diff line number Diff line Loading @@ -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()); Loading Loading @@ -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()); Loading telecomm/java/android/telecom/ParcelableConference.java +133 −40 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -32,25 +33,130 @@ import com.android.internal.telecom.IVideoProvider; */ public final class ParcelableConference implements Parcelable { private PhoneAccountHandle mPhoneAccount; private int mState; public static final class Builder { private final PhoneAccountHandle mPhoneAccount; private final int mState; private int mConnectionCapabilities; private int mConnectionProperties; private List<String> mConnectionIds; private List<String> mConnectionIds = Collections.emptyList(); private long mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED; private final IVideoProvider mVideoProvider; private final int mVideoState; 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 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, Loading @@ -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; Loading @@ -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 Loading @@ -134,6 +218,8 @@ public final class ParcelableConference implements Parcelable { .append(mRingbackRequested) .append(", disconnectCause: ") .append(mDisconnectCause) .append(", callDirection: ") .append(mCallDirection) .toString(); } Loading Loading @@ -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 Loading @@ -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 Loading Loading @@ -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); } } Loading
telecomm/java/android/telecom/Conference.java +6 −6 Original line number Diff line number Diff line Loading @@ -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; } Loading
telecomm/java/android/telecom/ConnectionService.java +36 −36 Original line number Diff line number Diff line Loading @@ -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()); Loading Loading @@ -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()); Loading
telecomm/java/android/telecom/ParcelableConference.java +133 −40 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -32,25 +33,130 @@ import com.android.internal.telecom.IVideoProvider; */ public final class ParcelableConference implements Parcelable { private PhoneAccountHandle mPhoneAccount; private int mState; public static final class Builder { private final PhoneAccountHandle mPhoneAccount; private final int mState; private int mConnectionCapabilities; private int mConnectionProperties; private List<String> mConnectionIds; private List<String> mConnectionIds = Collections.emptyList(); private long mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED; private final IVideoProvider mVideoProvider; private final int mVideoState; 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 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, Loading @@ -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; Loading @@ -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 Loading @@ -134,6 +218,8 @@ public final class ParcelableConference implements Parcelable { .append(mRingbackRequested) .append(", disconnectCause: ") .append(mDisconnectCause) .append(", callDirection: ") .append(mCallDirection) .toString(); } Loading Loading @@ -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 Loading @@ -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 Loading Loading @@ -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); } }