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

Commit 1d04b196 authored by Shaowei Shen's avatar Shaowei Shen Committed by Android (Google) Code Review
Browse files

Merge "[Output Switcher] Improvement for seekbar volume control" into tm-qpr-dev

parents d1296d03 eebc3a56
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -422,7 +422,7 @@ public class InfoMediaManager extends MediaManager {
                || sessionInfo.getSelectedRoutes().size() <= 1;
    }

    private void refreshDevices() {
    private synchronized void refreshDevices() {
        mMediaDevices.clear();
        mCurrentConnectedDevice = null;
        if (TextUtils.isEmpty(mPackageName)) {
@@ -452,7 +452,7 @@ public class InfoMediaManager extends MediaManager {
        return infos;
    }

    private void buildAvailableRoutes() {
    private synchronized void buildAvailableRoutes() {
        for (MediaRoute2Info route : getAvailableRoutes(mPackageName)) {
            if (DEBUG) {
                Log.d(TAG, "buildAvailableRoutes() route : " + route.getName() + ", volume : "
@@ -462,7 +462,7 @@ public class InfoMediaManager extends MediaManager {
        }
    }

    private List<MediaRoute2Info> getAvailableRoutes(String packageName) {
    private synchronized List<MediaRoute2Info> getAvailableRoutes(String packageName) {
        final List<MediaRoute2Info> infos = new ArrayList<>();
        RoutingSessionInfo routingSessionInfo = getRoutingSessionInfo(packageName);
        if (routingSessionInfo != null) {
@@ -596,7 +596,7 @@ public class InfoMediaManager extends MediaManager {

        @Override
        public void onSessionUpdated(RoutingSessionInfo sessionInfo) {
            dispatchDataChanged();
            refreshDevices();
        }
    }
}
+12 −2
Original line number Diff line number Diff line
@@ -666,12 +666,22 @@ public class InfoMediaManagerTest {
    }

    @Test
    public void onSessionUpdated_shouldDispatchDataChanged() {
    public void onSessionUpdated_shouldDispatchDeviceListAdded() {
        final MediaRoute2Info info = mock(MediaRoute2Info.class);
        when(info.getId()).thenReturn(TEST_ID);
        when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
        when(info.isSystemRoute()).thenReturn(true);

        final List<MediaRoute2Info> routes = new ArrayList<>();
        routes.add(info);
        mShadowRouter2Manager.setAllRoutes(routes);

        mInfoMediaManager.mPackageName = "";
        mInfoMediaManager.registerCallback(mCallback);

        mInfoMediaManager.mMediaRouterCallback.onSessionUpdated(mock(RoutingSessionInfo.class));

        verify(mCallback).onDeviceAttributesChanged();
        verify(mCallback).onDeviceListAdded(any());
    }

    @Test
+12 −2
Original line number Diff line number Diff line
@@ -133,6 +133,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
    @VisibleForTesting
    LocalMediaManager mLocalMediaManager;
    private MediaOutputMetricLogger mMetricLogger;
    private int mCurrentState;

    private int mColorItemContent;
    private int mColorSeekbarProgress;
@@ -207,6 +208,9 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
                if (TextUtils.equals(controller.getPackageName(), mPackageName)) {
                    mMediaController = controller;
                    mMediaController.unregisterCallback(mCb);
                    if (mMediaController.getPlaybackState() != null) {
                        mCurrentState = mMediaController.getPlaybackState().getState();
                    }
                    mMediaController.registerCallback(mCb);
                    break;
                }
@@ -1003,10 +1007,16 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,

        @Override
        public void onPlaybackStateChanged(PlaybackState playbackState) {
            final int state = playbackState.getState();
            if (state == PlaybackState.STATE_STOPPED || state == PlaybackState.STATE_PAUSED) {
            final int newState =
                    playbackState == null ? PlaybackState.STATE_STOPPED : playbackState.getState();
            if (mCurrentState == newState) {
                return;
            }

            if (newState == PlaybackState.STATE_STOPPED || newState == PlaybackState.STATE_PAUSED) {
                mCallback.onMediaStoppedOrPaused();
            }
            mCurrentState = newState;
        }
    };