Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4538216a authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Change sendSessionModifyRequest VideoProvider API signature.

Including a fromProfile in addition to the requestedProfile.

- Changed VideoCallImpl to generate the fromVideoProfile based on the
call's current videoState.  This ensures the InCall UI only needs to
pass in the new video profile; the VideoCall Impl already has enough
knowledge to generate the fromProfile.
  - Changed VideoCallImpl to track the current videoQuality, which forms
a part of the fromVideoProfile.

Bug: 20704229
Change-Id: I89f293f03a2b13fc8c1dcfd8a07ab8640d3950e0
parent d5304020
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -30444,7 +30444,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);
+1 −1
Original line number Diff line number Diff line
@@ -32565,7 +32565,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);
+2 −2
Original line number Diff line number Diff line
@@ -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();
+19 −7
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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.
            }
Loading