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

Commit 4b5f3866 authored by Nivedita Sarkar's avatar Nivedita Sarkar Committed by Steve Kondik
Browse files

Notify listeners of video quality changed event

- Propagate the video quality changed message to the UI.

Change-Id: I9e49b72e831108037b8bb3e16744a4762150d19d
parent 7bb02aa4
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -449,6 +449,20 @@ public abstract class Connection {
                }
            }
        }

        /**
         * Invokes callback method defined in In-Call UI.
         *
         * @param videoQuality The updated video quality.
         */
        public void changeVideoQuality(int videoQuality) {
            if (mVideoCallback != null) {
                try {
                    mVideoCallback.changeVideoQuality(videoQuality);
                } catch (RemoteException ignored) {
                }
            }
        }
    }

    private final Listener mConnectionDeathListener = new Listener() {
+7 −0
Original line number Diff line number Diff line
@@ -350,6 +350,13 @@ public abstract class InCallService extends Service {
             */
            public abstract void onPeerDimensionsChanged(int width, int height);

            /**
             * Handles a change to the video quality.
             *
             * @param videoQuality  The updated peer video quality.
             */
            public abstract void onVideoQualityChanged(int videoQuality);

            /**
             * Handles an update to the total data used for the current session.
             *
+9 −0
Original line number Diff line number Diff line
@@ -221,6 +221,8 @@ public final class RemoteConnection {
            public void onCameraCapabilitiesChanged(
                    VideoProvider videoProvider,
                    CameraCapabilities cameraCapabilities) {}

            public void onVideoQualityChanged(VideoProvider videoProvider, int videoQuality) {}
        }

        private final IVideoCallback mVideoCallbackDelegate = new IVideoCallback() {
@@ -271,6 +273,13 @@ public final class RemoteConnection {
                }
            }

            @Override
            public void changeVideoQuality(int videoQuality) {
                for (Listener l : mListeners) {
                    l.onVideoQualityChanged(VideoProvider.this, videoQuality);
                }
            }

            @Override
            public IBinder asBinder() {
                return null;
+9 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ public class VideoCallImpl extends VideoCall {
    private static final int MSG_CHANGE_PEER_DIMENSIONS = 4;
    private static final int MSG_CHANGE_CALL_DATA_USAGE = 5;
    private static final int MSG_CHANGE_CAMERA_CAPABILITIES = 6;
    private static final int MSG_CHANGE_VIDEO_QUALITY = 7;

    private final IVideoProvider mVideoProvider;
    private final VideoCallListenerBinder mBinder;
@@ -87,6 +88,11 @@ public class VideoCallImpl extends VideoCall {
            mHandler.obtainMessage(MSG_CHANGE_PEER_DIMENSIONS, args).sendToTarget();
        }

        @Override
        public void changeVideoQuality(int videoQuality) {
            mHandler.obtainMessage(MSG_CHANGE_VIDEO_QUALITY, videoQuality, 0).sendToTarget();
        }

        @Override
        public void changeCallDataUsage(int dataUsage) {
            mHandler.obtainMessage(MSG_CHANGE_CALL_DATA_USAGE, dataUsage).sendToTarget();
@@ -145,6 +151,9 @@ public class VideoCallImpl extends VideoCall {
                    mVideoCallListener.onCameraCapabilitiesChanged(
                            (CameraCapabilities) msg.obj);
                    break;
                case MSG_CHANGE_VIDEO_QUALITY:
                    mVideoCallListener.onVideoQualityChanged(msg.arg1);
                    break;
                default:
                    break;
            }
+10 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ final class VideoCallbackServant {
    private static final int MSG_CHANGE_PEER_DIMENSIONS = 3;
    private static final int MSG_CHANGE_CALL_DATA_USAGE = 4;
    private static final int MSG_CHANGE_CAMERA_CAPABILITIES = 5;
    private static final int MSG_CHANGE_VIDEO_QUALITY = 6;

    private final IVideoCallback mDelegate;

@@ -100,6 +101,10 @@ final class VideoCallbackServant {
                    mDelegate.changeCameraCapabilities((CameraCapabilities) msg.obj);
                    break;
                }
                case MSG_CHANGE_VIDEO_QUALITY: {
                    mDelegate.changeVideoQuality(msg.arg1);
                    break;
                }
            }
        }
    };
@@ -148,6 +153,11 @@ final class VideoCallbackServant {
            mHandler.obtainMessage(MSG_CHANGE_CAMERA_CAPABILITIES, cameraCapabilities)
                    .sendToTarget();
        }

        @Override
        public void changeVideoQuality(int videoQuality) throws RemoteException {
            mHandler.obtainMessage(MSG_CHANGE_VIDEO_QUALITY, videoQuality, 0).sendToTarget();
        }
    };

    public VideoCallbackServant(IVideoCallback delegate) {
Loading