IMS-VT: Upgrade/Downgrade change
-Add isVideo API to VideoProfile.VideoState IMS-VT: Fix propagation of device orientation. Orientation received at VT Service is incorrect. Fixed propagation of device orientation to VT service. IMS-VT: Upgrade fix -Add session modify call timed out constant Notify listeners of video quality changed event - Propagate the video quality changed message to the UI. IMS: Add support for video quality - Add Config interface to get/set video quality IMS-VT: Multitasking feature -Support for video multitasking IMS-VT: Modification of data usage aidl Change data usage aidl interface to take parameter type long instead of int Change-Id: I7cda2a689edb86d025dfe8efc8f573918c4bd6bc Propagate the call substate changed message to the UI IMS-VT: Add call modifiable capability PhoneCapababilities call type modifiable constant added IMS-VT: Add a bit mask CALL_SUBSTATE_ALL with all call substate bits set IMS-VT: Enable Video conferencing. Enable Video conferencing. Change-Id: I4240aa6f32c75d6eea8a41da3c87bca651f0901b IMS-VT: Add hide for setVideoProvider API Observed compilation error for SDK generation due to setVideoProvider API. Marking setVideoProvider as hide inorder to resolve the compilation error. IMS-VT: Add persist.radio.ims.audio.output for VT calls -- Add persist.radio.ims.audio.output to set the default speaker for VT calls. -- Add required constants IMS-VT: Add additional error codes for upgrade downgrade -Add support to send additional error codes to UI during upgrade downgrade. Change-Id: Id452d225098fe3bccdcd37d242985c5c761144c1
This commit is contained in:
@@ -17,10 +17,12 @@
|
||||
package android.telecom;
|
||||
|
||||
import android.annotation.SystemApi;
|
||||
import android.telecom.Connection.VideoProvider;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.CopyOnWriteArraySet;
|
||||
@@ -49,6 +51,8 @@ public abstract class Conference implements IConferenceable {
|
||||
public void onDestroyed(Conference conference) {}
|
||||
public void onConnectionCapabilitiesChanged(
|
||||
Conference conference, int connectionCapabilities) {}
|
||||
public void onVideoStateChanged(Conference c, int videoState) { }
|
||||
public void onVideoProviderChanged(Conference c, Connection.VideoProvider videoProvider) {}
|
||||
}
|
||||
|
||||
private final Set<Listener> mListeners = new CopyOnWriteArraySet<>();
|
||||
@@ -179,6 +183,22 @@ public abstract class Conference implements IConferenceable {
|
||||
return mAudioState;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns VideoProvider of the primary call. This can be null.
|
||||
* @hide
|
||||
*/
|
||||
public VideoProvider getVideoProvider() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns video state of the primary call.
|
||||
* @hide
|
||||
*/
|
||||
public int getVideoState() {
|
||||
return VideoProfile.VideoState.AUDIO_ONLY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Invoked when the Conference and all it's {@link Connection}s should be disconnected.
|
||||
*/
|
||||
@@ -309,6 +329,7 @@ public abstract class Conference implements IConferenceable {
|
||||
* @return True if the connection was successfully added.
|
||||
*/
|
||||
public final boolean addConnection(Connection connection) {
|
||||
Log.d(this, "Connection=%s, connection=", connection);
|
||||
if (connection != null && !mChildConnections.contains(connection)) {
|
||||
if (connection.setConference(this)) {
|
||||
mChildConnections.add(connection);
|
||||
@@ -355,6 +376,38 @@ public abstract class Conference implements IConferenceable {
|
||||
fireOnConferenceableConnectionsChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the video state for the conference.
|
||||
* Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
|
||||
* {@link VideoProfile.VideoState#BIDIRECTIONAL},
|
||||
* {@link VideoProfile.VideoState#TX_ENABLED},
|
||||
* {@link VideoProfile.VideoState#RX_ENABLED}.
|
||||
*
|
||||
* @param videoState The new video state.
|
||||
* @hide
|
||||
*/
|
||||
public final void setVideoState(Connection c, int videoState) {
|
||||
Log.d(this, "setVideoState Conference: %s Connection: %s VideoState: %s",
|
||||
this, c, videoState);
|
||||
for (Listener l : mListeners) {
|
||||
l.onVideoStateChanged(this, videoState);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the video connection provider.
|
||||
*
|
||||
* @param videoProvider The video provider.
|
||||
* @hide
|
||||
*/
|
||||
public final void setVideoProvider(Connection c, Connection.VideoProvider videoProvider) {
|
||||
Log.d(this, "setVideoProvider Conference: %s Connection: %s VideoState: %s",
|
||||
this, c, videoProvider);
|
||||
for (Listener l : mListeners) {
|
||||
l.onVideoProviderChanged(this, videoProvider);
|
||||
}
|
||||
}
|
||||
|
||||
private final void fireOnConferenceableConnectionsChanged() {
|
||||
for (Listener l : mListeners) {
|
||||
l.onConferenceableConnectionsChanged(this, getConferenceableConnections());
|
||||
@@ -484,4 +537,15 @@ public abstract class Conference implements IConferenceable {
|
||||
}
|
||||
mConferenceableConnections.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format(Locale.US,
|
||||
"[State: %s,Capabilites: %s, VideoState: %s, VideoProvider: %s, ThisObject %s]",
|
||||
Connection.stateToString(mState),
|
||||
Call.Details.capabilitiesToString(mConnectionCapabilities),
|
||||
getVideoState(),
|
||||
getVideoProvider(),
|
||||
super.toString());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user