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

Commit d5ff63ba authored by RoboErik's avatar RoboErik Committed by Android (Google) Code Review
Browse files

Merge "Notify the system of all remote volume changes" into lmp-mr1-dev

parents 2f63207d 9c5b7cb0
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -330,6 +330,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
            if (volumeBefore != mOptimisticVolume) {
                pushVolumeUpdate();
            }
            mService.notifyRemoteVolumeChanged(flags, this);

            if (DEBUG) {
                Log.d(TAG, "Adjusted optimistic volume to " + mOptimisticVolume + " max is "
@@ -357,6 +358,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
            if (volumeBefore != mOptimisticVolume) {
                pushVolumeUpdate();
            }
            mService.notifyRemoteVolumeChanged(flags, this);

            if (DEBUG) {
                Log.d(TAG, "Set optimistic volume to " + mOptimisticVolume + " max is "
+14 −8
Original line number Diff line number Diff line
@@ -143,6 +143,20 @@ public class MediaSessionService extends SystemService implements Monitor {
        mHandler.post(MessageHandler.MSG_SESSIONS_CHANGED, record.getUserId(), 0);
    }

    /**
     * Tells the system UI that volume has changed on a remote session.
     */
    public void notifyRemoteVolumeChanged(int flags, MediaSessionRecord session) {
        if (mRvc == null) {
            return;
        }
        try {
            mRvc.remoteVolumeChanged(session.getControllerBinder(), flags);
        } catch (Exception e) {
            Log.wtf(TAG, "Error sending volume change to system UI.", e);
        }
    }

    public void onSessionPlaystateChange(MediaSessionRecord record, int oldState, int newState) {
        boolean updateSessions = false;
        synchronized (mLock) {
@@ -864,14 +878,6 @@ public class MediaSessionService extends SystemService implements Monitor {
            } else {
                session.adjustVolume(direction, flags, getContext().getPackageName(),
                        UserHandle.myUserId(), true);
                if (session.getPlaybackType() == PlaybackInfo.PLAYBACK_TYPE_REMOTE
                        && mRvc != null && direction != MediaSessionManager.DIRECTION_MUTE) {
                    try {
                        mRvc.remoteVolumeChanged(session.getControllerBinder(), flags);
                    } catch (Exception e) {
                        Log.wtf(TAG, "Error sending volume change to system UI.", e);
                    }
                }
            }
        }