Loading telecomm/java/android/telecom/Conference.java +61 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,10 @@ public abstract class Conference extends Conferenceable { private Bundle mExtras; private Set<String> mPreviousExtraKeys; private final Object mExtrasLock = new Object(); private Uri mAddress; private int mAddressPresentation; private String mCallerDisplayName; private int mCallerDisplayNamePresentation; private final Connection.Listener mConnectionDeathListener = new Connection.Listener() { @Override Loading Loading @@ -987,11 +991,66 @@ public abstract class Conference extends Conferenceable { */ public final void setAddress(Uri address, int presentation) { Log.d(this, "setAddress %s", address); mAddress = address; mAddressPresentation = presentation; for (Listener l : mListeners) { l.onAddressChanged(this, address, presentation); } } /** * Returns the "address" associated with the conference. 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> * <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> * </ol> * @return The address of the conference, or {@code null} if not applicable. * @hide */ public final Uri getAddress() { return mAddress; } /** * Returns the address presentation associated with the conference. * <p> * 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> * <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> * </ol> * @return The address of the conference, or {@code null} if not applicable. * @hide */ public final int getAddressPresentation() { return mAddressPresentation; } /** * @return The caller display name (CNAP). * @hide */ public final String getCallerDisplayName() { return mCallerDisplayName; } /** * @return The presentation requirements for the handle. * See {@link TelecomManager} for valid values. * @hide */ public final int getCallerDisplayNamePresentation() { return mCallerDisplayNamePresentation; } /** * Sets the caller display name (CNAP) of this {@link Conference}. Used when * {@link #setConferenceState(boolean)} is called to mark a conference temporarily as NOT a Loading @@ -1004,6 +1063,8 @@ public abstract class Conference extends Conferenceable { */ public final void setCallerDisplayName(String callerDisplayName, int presentation) { Log.d(this, "setCallerDisplayName %s", callerDisplayName); mCallerDisplayName = callerDisplayName; mCallerDisplayNamePresentation = presentation; for (Listener l : mListeners) { l.onCallerDisplayNameChanged(this, callerDisplayName, presentation); } Loading telecomm/java/android/telecom/Connection.java +13 −1 Original line number Diff line number Diff line Loading @@ -424,8 +424,16 @@ public abstract class Connection extends Conferenceable { */ public static final int PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL = 1 << 10; /** * Set by the framework to indicate that a Conference or Connection is hosted by a device other * than the current one. Used in scenarios where the conference originator is the remote device * and the current device is a participant of that conference. * @hide */ public static final int PROPERTY_REMOTELY_HOSTED = 1 << 11; //********************************************************************************************** // Next PROPERTY value: 1<<10 // Next PROPERTY value: 1<<12 //********************************************************************************************** /** Loading Loading @@ -850,6 +858,10 @@ public abstract class Connection extends Conferenceable { builder.append(isLong ? " PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL" : " ecall"); } if (can(properties, PROPERTY_REMOTELY_HOSTED)) { builder.append(isLong ? " PROPERTY_REMOTELY_HOSTED" : " remote_hst"); } builder.append("]"); return builder.toString(); } Loading telecomm/java/android/telecom/ConnectionService.java +5 −1 Original line number Diff line number Diff line Loading @@ -2056,7 +2056,11 @@ public abstract class ConnectionService extends Service { conference.getConnectTimeMillis(), conference.getConnectionStartElapsedRealTime(), conference.getStatusHints(), conference.getExtras()); conference.getExtras(), conference.getAddress(), conference.getAddressPresentation(), conference.getCallerDisplayName(), conference.getCallerDisplayNamePresentation()); mAdapter.addConferenceCall(id, parcelableConference); mAdapter.setVideoProvider(id, conference.getVideoProvider()); Loading telecomm/java/android/telecom/ParcelableConference.java +32 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.telecom; import android.net.Uri; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading @@ -42,6 +43,10 @@ public final class ParcelableConference implements Parcelable { private StatusHints mStatusHints; private Bundle mExtras; private long mConnectElapsedTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED; private final Uri mAddress; private final int mAddressPresentation; private final String mCallerDisplayName; private final int mCallerDisplayNamePresentation; public ParcelableConference( PhoneAccountHandle phoneAccount, Loading @@ -54,7 +59,11 @@ public final class ParcelableConference implements Parcelable { long connectTimeMillis, long connectElapsedTimeMillis, StatusHints statusHints, Bundle extras) { Bundle extras, Uri address, int addressPresentation, String callerDisplayName, int callerDisplayNamePresentation) { mPhoneAccount = phoneAccount; mState = state; mConnectionCapabilities = connectionCapabilities; Loading @@ -66,6 +75,10 @@ public final class ParcelableConference implements Parcelable { mStatusHints = statusHints; mExtras = extras; mConnectElapsedTimeMillis = connectElapsedTimeMillis; mAddress = address; mAddressPresentation = addressPresentation; mCallerDisplayName = callerDisplayName; mCallerDisplayNamePresentation = callerDisplayNamePresentation; } @Override Loading Loading @@ -134,6 +147,14 @@ public final class ParcelableConference implements Parcelable { return mExtras; } public Uri getHandle() { return mAddress; } public int getHandlePresentation() { return mAddressPresentation; } public static final @android.annotation.NonNull Parcelable.Creator<ParcelableConference> CREATOR = new Parcelable.Creator<ParcelableConference> () { @Override Loading @@ -152,10 +173,15 @@ public final class ParcelableConference implements Parcelable { Bundle extras = source.readBundle(classLoader); int properties = source.readInt(); long connectElapsedTimeMillis = source.readLong(); Uri address = source.readParcelable(classLoader); int addressPresentation = source.readInt(); String callerDisplayName = source.readString(); int callerDisplayNamePresentation = source.readInt(); return new ParcelableConference(phoneAccount, state, capabilities, properties, connectionIds, videoCallProvider, videoState, connectTimeMillis, connectElapsedTimeMillis, statusHints, extras); connectElapsedTimeMillis, statusHints, extras, address, addressPresentation, callerDisplayName, callerDisplayNamePresentation); } @Override Loading Loading @@ -185,5 +211,9 @@ public final class ParcelableConference implements Parcelable { destination.writeBundle(mExtras); destination.writeInt(mConnectionProperties); destination.writeLong(mConnectElapsedTimeMillis); destination.writeParcelable(mAddress, 0); destination.writeInt(mAddressPresentation); destination.writeString(mCallerDisplayName); destination.writeInt(mCallerDisplayNamePresentation); } } Loading
telecomm/java/android/telecom/Conference.java +61 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,10 @@ public abstract class Conference extends Conferenceable { private Bundle mExtras; private Set<String> mPreviousExtraKeys; private final Object mExtrasLock = new Object(); private Uri mAddress; private int mAddressPresentation; private String mCallerDisplayName; private int mCallerDisplayNamePresentation; private final Connection.Listener mConnectionDeathListener = new Connection.Listener() { @Override Loading Loading @@ -987,11 +991,66 @@ public abstract class Conference extends Conferenceable { */ public final void setAddress(Uri address, int presentation) { Log.d(this, "setAddress %s", address); mAddress = address; mAddressPresentation = presentation; for (Listener l : mListeners) { l.onAddressChanged(this, address, presentation); } } /** * Returns the "address" associated with the conference. 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> * <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> * </ol> * @return The address of the conference, or {@code null} if not applicable. * @hide */ public final Uri getAddress() { return mAddress; } /** * Returns the address presentation associated with the conference. * <p> * 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> * <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> * </ol> * @return The address of the conference, or {@code null} if not applicable. * @hide */ public final int getAddressPresentation() { return mAddressPresentation; } /** * @return The caller display name (CNAP). * @hide */ public final String getCallerDisplayName() { return mCallerDisplayName; } /** * @return The presentation requirements for the handle. * See {@link TelecomManager} for valid values. * @hide */ public final int getCallerDisplayNamePresentation() { return mCallerDisplayNamePresentation; } /** * Sets the caller display name (CNAP) of this {@link Conference}. Used when * {@link #setConferenceState(boolean)} is called to mark a conference temporarily as NOT a Loading @@ -1004,6 +1063,8 @@ public abstract class Conference extends Conferenceable { */ public final void setCallerDisplayName(String callerDisplayName, int presentation) { Log.d(this, "setCallerDisplayName %s", callerDisplayName); mCallerDisplayName = callerDisplayName; mCallerDisplayNamePresentation = presentation; for (Listener l : mListeners) { l.onCallerDisplayNameChanged(this, callerDisplayName, presentation); } Loading
telecomm/java/android/telecom/Connection.java +13 −1 Original line number Diff line number Diff line Loading @@ -424,8 +424,16 @@ public abstract class Connection extends Conferenceable { */ public static final int PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL = 1 << 10; /** * Set by the framework to indicate that a Conference or Connection is hosted by a device other * than the current one. Used in scenarios where the conference originator is the remote device * and the current device is a participant of that conference. * @hide */ public static final int PROPERTY_REMOTELY_HOSTED = 1 << 11; //********************************************************************************************** // Next PROPERTY value: 1<<10 // Next PROPERTY value: 1<<12 //********************************************************************************************** /** Loading Loading @@ -850,6 +858,10 @@ public abstract class Connection extends Conferenceable { builder.append(isLong ? " PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL" : " ecall"); } if (can(properties, PROPERTY_REMOTELY_HOSTED)) { builder.append(isLong ? " PROPERTY_REMOTELY_HOSTED" : " remote_hst"); } builder.append("]"); return builder.toString(); } Loading
telecomm/java/android/telecom/ConnectionService.java +5 −1 Original line number Diff line number Diff line Loading @@ -2056,7 +2056,11 @@ public abstract class ConnectionService extends Service { conference.getConnectTimeMillis(), conference.getConnectionStartElapsedRealTime(), conference.getStatusHints(), conference.getExtras()); conference.getExtras(), conference.getAddress(), conference.getAddressPresentation(), conference.getCallerDisplayName(), conference.getCallerDisplayNamePresentation()); mAdapter.addConferenceCall(id, parcelableConference); mAdapter.setVideoProvider(id, conference.getVideoProvider()); Loading
telecomm/java/android/telecom/ParcelableConference.java +32 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.telecom; import android.net.Uri; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading @@ -42,6 +43,10 @@ public final class ParcelableConference implements Parcelable { private StatusHints mStatusHints; private Bundle mExtras; private long mConnectElapsedTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED; private final Uri mAddress; private final int mAddressPresentation; private final String mCallerDisplayName; private final int mCallerDisplayNamePresentation; public ParcelableConference( PhoneAccountHandle phoneAccount, Loading @@ -54,7 +59,11 @@ public final class ParcelableConference implements Parcelable { long connectTimeMillis, long connectElapsedTimeMillis, StatusHints statusHints, Bundle extras) { Bundle extras, Uri address, int addressPresentation, String callerDisplayName, int callerDisplayNamePresentation) { mPhoneAccount = phoneAccount; mState = state; mConnectionCapabilities = connectionCapabilities; Loading @@ -66,6 +75,10 @@ public final class ParcelableConference implements Parcelable { mStatusHints = statusHints; mExtras = extras; mConnectElapsedTimeMillis = connectElapsedTimeMillis; mAddress = address; mAddressPresentation = addressPresentation; mCallerDisplayName = callerDisplayName; mCallerDisplayNamePresentation = callerDisplayNamePresentation; } @Override Loading Loading @@ -134,6 +147,14 @@ public final class ParcelableConference implements Parcelable { return mExtras; } public Uri getHandle() { return mAddress; } public int getHandlePresentation() { return mAddressPresentation; } public static final @android.annotation.NonNull Parcelable.Creator<ParcelableConference> CREATOR = new Parcelable.Creator<ParcelableConference> () { @Override Loading @@ -152,10 +173,15 @@ public final class ParcelableConference implements Parcelable { Bundle extras = source.readBundle(classLoader); int properties = source.readInt(); long connectElapsedTimeMillis = source.readLong(); Uri address = source.readParcelable(classLoader); int addressPresentation = source.readInt(); String callerDisplayName = source.readString(); int callerDisplayNamePresentation = source.readInt(); return new ParcelableConference(phoneAccount, state, capabilities, properties, connectionIds, videoCallProvider, videoState, connectTimeMillis, connectElapsedTimeMillis, statusHints, extras); connectElapsedTimeMillis, statusHints, extras, address, addressPresentation, callerDisplayName, callerDisplayNamePresentation); } @Override Loading Loading @@ -185,5 +211,9 @@ public final class ParcelableConference implements Parcelable { destination.writeBundle(mExtras); destination.writeInt(mConnectionProperties); destination.writeLong(mConnectElapsedTimeMillis); destination.writeParcelable(mAddress, 0); destination.writeInt(mAddressPresentation); destination.writeString(mCallerDisplayName); destination.writeInt(mCallerDisplayNamePresentation); } }