Merge "Change sendSessionModifyRequest VideoProvider API signature." into mnc-dev
This commit is contained in:
@@ -30446,7 +30446,7 @@ package android.telecom {
|
||||
method public void handleCallSessionEvent(int);
|
||||
method public abstract void onRequestCameraCapabilities();
|
||||
method public abstract void onRequestConnectionDataUsage();
|
||||
method public abstract void onSendSessionModifyRequest(android.telecom.VideoProfile);
|
||||
method public abstract void onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile);
|
||||
method public abstract void onSendSessionModifyResponse(android.telecom.VideoProfile);
|
||||
method public abstract void onSetCamera(java.lang.String);
|
||||
method public abstract void onSetDeviceOrientation(int);
|
||||
|
||||
@@ -32567,7 +32567,7 @@ package android.telecom {
|
||||
method public void handleCallSessionEvent(int);
|
||||
method public abstract void onRequestCameraCapabilities();
|
||||
method public abstract void onRequestConnectionDataUsage();
|
||||
method public abstract void onSendSessionModifyRequest(android.telecom.VideoProfile);
|
||||
method public abstract void onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile);
|
||||
method public abstract void onSendSessionModifyResponse(android.telecom.VideoProfile);
|
||||
method public abstract void onSetCamera(java.lang.String);
|
||||
method public abstract void onSetDeviceOrientation(int);
|
||||
|
||||
@@ -1000,9 +1000,9 @@ public final class Call {
|
||||
}
|
||||
|
||||
boolean videoCallChanged = parcelableCall.isVideoCallProviderChanged() &&
|
||||
!Objects.equals(mVideoCall, parcelableCall.getVideoCall());
|
||||
!Objects.equals(mVideoCall, parcelableCall.getVideoCall(this));
|
||||
if (videoCallChanged) {
|
||||
mVideoCall = parcelableCall.getVideoCall();
|
||||
mVideoCall = parcelableCall.getVideoCall(this);
|
||||
}
|
||||
|
||||
int state = parcelableCall.getState();
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package android.telecom;
|
||||
|
||||
import com.android.internal.os.SomeArgs;
|
||||
import com.android.internal.telecom.IVideoCallback;
|
||||
import com.android.internal.telecom.IVideoProvider;
|
||||
|
||||
@@ -471,9 +472,16 @@ public abstract class Connection implements Conferenceable {
|
||||
case MSG_SET_ZOOM:
|
||||
onSetZoom((Float) msg.obj);
|
||||
break;
|
||||
case MSG_SEND_SESSION_MODIFY_REQUEST:
|
||||
onSendSessionModifyRequest((VideoProfile) msg.obj);
|
||||
case MSG_SEND_SESSION_MODIFY_REQUEST: {
|
||||
SomeArgs args = (SomeArgs) msg.obj;
|
||||
try {
|
||||
onSendSessionModifyRequest((VideoProfile) args.arg1,
|
||||
(VideoProfile) args.arg2);
|
||||
} finally {
|
||||
args.recycle();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MSG_SEND_SESSION_MODIFY_RESPONSE:
|
||||
onSendSessionModifyResponse((VideoProfile) msg.obj);
|
||||
break;
|
||||
@@ -527,9 +535,11 @@ public abstract class Connection implements Conferenceable {
|
||||
mMessageHandler.obtainMessage(MSG_SET_ZOOM, value).sendToTarget();
|
||||
}
|
||||
|
||||
public void sendSessionModifyRequest(VideoProfile requestProfile) {
|
||||
mMessageHandler.obtainMessage(
|
||||
MSG_SEND_SESSION_MODIFY_REQUEST, requestProfile).sendToTarget();
|
||||
public void sendSessionModifyRequest(VideoProfile fromProfile, VideoProfile toProfile) {
|
||||
SomeArgs args = SomeArgs.obtain();
|
||||
args.arg1 = fromProfile;
|
||||
args.arg2 = toProfile;
|
||||
mMessageHandler.obtainMessage(MSG_SEND_SESSION_MODIFY_REQUEST, args).sendToTarget();
|
||||
}
|
||||
|
||||
public void sendSessionModifyResponse(VideoProfile responseProfile) {
|
||||
@@ -606,9 +616,11 @@ public abstract class Connection implements Conferenceable {
|
||||
* Some examples of session modification requests: upgrade connection from audio to video,
|
||||
* downgrade connection from video to audio, pause video.
|
||||
*
|
||||
* @param requestProfile The requested connection video properties.
|
||||
* @param fromProfile The video properties prior to the request.
|
||||
* @param toProfile The video properties with the requested changes made.
|
||||
*/
|
||||
public abstract void onSendSessionModifyRequest(VideoProfile requestProfile);
|
||||
public abstract void onSendSessionModifyRequest(VideoProfile fromProfile,
|
||||
VideoProfile toProfile);
|
||||
|
||||
/**te
|
||||
* Provides a response to a request to change the current connection session video
|
||||
|
||||
@@ -178,10 +178,10 @@ public final class ParcelableCall implements Parcelable {
|
||||
* Returns an object for remotely communicating through the video call provider's binder.
|
||||
* @return The video call.
|
||||
*/
|
||||
public InCallService.VideoCall getVideoCall() {
|
||||
public InCallService.VideoCall getVideoCall(Call call) {
|
||||
if (mVideoCall == null && mVideoCallProvider != null) {
|
||||
try {
|
||||
mVideoCall = new VideoCallImpl(mVideoCallProvider);
|
||||
mVideoCall = new VideoCallImpl(mVideoCallProvider, call);
|
||||
} catch (RemoteException ignored) {
|
||||
// Ignore RemoteException.
|
||||
}
|
||||
|
||||
@@ -350,9 +350,9 @@ public final class RemoteConnection {
|
||||
}
|
||||
}
|
||||
|
||||
public void sendSessionModifyRequest(VideoProfile reqProfile) {
|
||||
public void sendSessionModifyRequest(VideoProfile fromProfile, VideoProfile toProfile) {
|
||||
try {
|
||||
mVideoProviderBinder.sendSessionModifyRequest(reqProfile);
|
||||
mVideoProviderBinder.sendSessionModifyRequest(fromProfile, toProfile);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,8 @@ public class VideoCallImpl extends VideoCall {
|
||||
private final IVideoProvider mVideoProvider;
|
||||
private final VideoCallListenerBinder mBinder;
|
||||
private VideoCall.Callback mCallback;
|
||||
private int mVideoQuality = VideoProfile.QUALITY_UNKNOWN;
|
||||
private Call mCall;
|
||||
|
||||
private IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() {
|
||||
@Override
|
||||
@@ -161,6 +163,7 @@ public class VideoCallImpl extends VideoCall {
|
||||
(CameraCapabilities) msg.obj);
|
||||
break;
|
||||
case MSG_CHANGE_VIDEO_QUALITY:
|
||||
mVideoQuality = msg.arg1;
|
||||
mCallback.onVideoQualityChanged(msg.arg1);
|
||||
break;
|
||||
default:
|
||||
@@ -171,12 +174,13 @@ public class VideoCallImpl extends VideoCall {
|
||||
|
||||
private Handler mHandler;
|
||||
|
||||
VideoCallImpl(IVideoProvider videoProvider) throws RemoteException {
|
||||
VideoCallImpl(IVideoProvider videoProvider, Call call) throws RemoteException {
|
||||
mVideoProvider = videoProvider;
|
||||
mVideoProvider.asBinder().linkToDeath(mDeathRecipient, 0);
|
||||
|
||||
mBinder = new VideoCallListenerBinder();
|
||||
mVideoProvider.addVideoCallback(mBinder);
|
||||
mCall = call;
|
||||
}
|
||||
|
||||
public void destroy() {
|
||||
@@ -251,10 +255,24 @@ public class VideoCallImpl extends VideoCall {
|
||||
}
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
/**
|
||||
* Sends a session modification request to the video provider.
|
||||
* <p>
|
||||
* The {@link InCallService} will create the {@code requestProfile} based on the current
|
||||
* video state (i.e. {@link Call.Details#getVideoState()}). It is, however, possible that the
|
||||
* video state maintained by the {@link InCallService} could get out of sync with what is known
|
||||
* by the {@link android.telecom.Connection.VideoProvider}. To remove ambiguity, the
|
||||
* {@link VideoCallImpl} passes along the pre-modify video profile to the {@code VideoProvider}
|
||||
* to ensure it has full context of the requested change.
|
||||
*
|
||||
* @param requestProfile The requested video profile.
|
||||
*/
|
||||
public void sendSessionModifyRequest(VideoProfile requestProfile) {
|
||||
try {
|
||||
mVideoProvider.sendSessionModifyRequest(requestProfile);
|
||||
VideoProfile originalProfile = new VideoProfile(mCall.getDetails().getVideoState(),
|
||||
mVideoQuality);
|
||||
|
||||
mVideoProvider.sendSessionModifyRequest(originalProfile, requestProfile);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ oneway interface IVideoProvider {
|
||||
|
||||
void setZoom(float value);
|
||||
|
||||
void sendSessionModifyRequest(in VideoProfile reqProfile);
|
||||
void sendSessionModifyRequest(in VideoProfile fromProfile, in VideoProfile toProfile);
|
||||
|
||||
void sendSessionModifyResponse(in VideoProfile responseProfile);
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ oneway interface IImsVideoCallProvider {
|
||||
|
||||
void setZoom(float value);
|
||||
|
||||
void sendSessionModifyRequest(in VideoProfile reqProfile);
|
||||
void sendSessionModifyRequest(in VideoProfile fromProfile, in VideoProfile toProfile);
|
||||
|
||||
void sendSessionModifyResponse(in VideoProfile responseProfile);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user