Support for multiple VideoCall.Listeners for a VideoCall.
The current code assumes that only a single instance of VideoCall will be provided to the default system InCall UI. Ideally multiple InCallService implementations should be able to use the VideoCall APIs. Note: it only really makes sense for a single InCallService to get/set the video surfaces. - Fixed bug in ParcelableCall which would cause a new instance of VideoCallImpl to be created every time a call is updated from Telecom. Added a flag to ParcelableCall to indicate whether the parcel includes a change to the video provider information, which is used when unparceling to determine whether to set/create the video call impl. - Renamed "setVideoCallback" to "addVideocallback". - Modified Connection.VideoProvider code to keep a list of Video callbacks and fire off all of them when Video Provider changes occur. Bug: 20092420 Change-Id: Ic16b6afe1b7532cc64d006c133adbae57946d97d
This commit is contained in:
@@ -166,7 +166,7 @@ public class VideoCallImpl extends VideoCall {
|
||||
mVideoProvider.asBinder().linkToDeath(mDeathRecipient, 0);
|
||||
|
||||
mBinder = new VideoCallListenerBinder();
|
||||
mVideoProvider.setVideoCallback(mBinder);
|
||||
mVideoProvider.addVideoCallback(mBinder);
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@@ -174,6 +174,15 @@ public class VideoCallImpl extends VideoCall {
|
||||
mVideoCallListener = videoCallListener;
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
public void removeVideoCallListener() {
|
||||
mVideoCallListener = null;
|
||||
try {
|
||||
mVideoProvider.removeVideoCallback(mBinder);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
public void setCamera(String cameraId) {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user