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

Commit ee4b977e authored by Iván Budnik's avatar Iván Budnik
Browse files

Simplify remote routing session logic and remove duplication

This change removes duplicate routing-specific logic from SettingsLib,
SysUI and Settings app in favour of already existing methods.

This is a non-functional change.

Test: Presubmit.
Bug: 192657812
Change-Id: Ic01dbe9f803ecd1b509b7c82f3f801e0bb6e6359
parent 8602b5f4
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -154,15 +154,17 @@ public abstract class InfoMediaManager extends MediaManager {
    protected abstract RouteListingPreference getRouteListingPreference();

    /**
     * Returns the list of currently active {@link RoutingSessionInfo routing sessions} known to the
     * system.
     * Returns the list of remote {@link RoutingSessionInfo routing sessions} known to the system.
     */
    @NonNull
    protected abstract List<RoutingSessionInfo> getActiveRoutingSessions();
    protected abstract List<RoutingSessionInfo> getRemoteSessions();

    @NonNull
    protected abstract List<RoutingSessionInfo> getRoutingSessionsForPackage();

    @Nullable
    protected abstract RoutingSessionInfo getRoutingSessionById(@NonNull String sessionId);

    @NonNull
    protected abstract List<MediaRoute2Info> getAllRoutes();

+9 −11
Original line number Diff line number Diff line
@@ -388,15 +388,13 @@ public class LocalMediaManager implements BluetoothCallback {
     * @param volume the value of volume
     */
    public void adjustSessionVolume(String sessionId, int volume) {
        final List<RoutingSessionInfo> infos = getActiveMediaSession();
        for (RoutingSessionInfo info : infos) {
            if (TextUtils.equals(sessionId, info.getId())) {
                mInfoMediaManager.adjustSessionVolume(info, volume);
                return;
            }
        }
        RoutingSessionInfo session = mInfoMediaManager.getRoutingSessionById(sessionId);
        if (session != null) {
            mInfoMediaManager.adjustSessionVolume(session, volume);
        } else {
            Log.w(TAG, "adjustSessionVolume: Unable to find session: " + sessionId);
        }
    }

    /**
     * Adjust the volume of session.
@@ -435,12 +433,12 @@ public class LocalMediaManager implements BluetoothCallback {
    }

    /**
     * Gets the current active session.
     * Gets the list of remote {@link RoutingSessionInfo routing sessions} known to the system.
     *
     * @return current active session list{@link android.media.RoutingSessionInfo}
     * <p>This list does not include any system routing sessions.
     */
    public List<RoutingSessionInfo> getActiveMediaSession() {
        return mInfoMediaManager.getActiveRoutingSessions();
    public List<RoutingSessionInfo> getRemoteRoutingSessions() {
        return mInfoMediaManager.getRemoteSessions();
    }

    /**
+16 −6
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settingslib.bluetooth.LocalBluetoothManager;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
@@ -151,11 +150,22 @@ public class ManagerInfoMediaManager extends InfoMediaManager {

    @Override
    @NonNull
    protected List<RoutingSessionInfo> getActiveRoutingSessions() {
        List<RoutingSessionInfo> infos = new ArrayList<>();
        infos.add(mRouterManager.getSystemRoutingSession(null));
        infos.addAll(mRouterManager.getRemoteSessions());
        return infos;
    protected List<RoutingSessionInfo> getRemoteSessions() {
        return mRouterManager.getRemoteSessions();
    }

    @Nullable
    @Override
    protected RoutingSessionInfo getRoutingSessionById(@NonNull String sessionId) {
        for (RoutingSessionInfo sessionInfo : getRemoteSessions()) {
            if (TextUtils.equals(sessionInfo.getId(), sessionId)) {
                return sessionInfo;
            }
        }

        RoutingSessionInfo systemSession = mRouterManager.getSystemRoutingSession(null);

        return TextUtils.equals(systemSession.getId(), sessionId) ? systemSession : null;
    }

    @Override
+2 −9
Original line number Diff line number Diff line
@@ -832,19 +832,12 @@ public class InfoMediaManagerTest {
    }

    @Test
    public void getActiveMediaSession_returnActiveSession() {
        RoutingSessionInfo sysSessionInfo = mock(RoutingSessionInfo.class);
    public void getRemoteSessions_returnsRemoteSessions() {
        final List<RoutingSessionInfo> infos = new ArrayList<>();
        infos.add(mock(RoutingSessionInfo.class));
        final List<RoutingSessionInfo> activeSessionInfos = new ArrayList<>();
        activeSessionInfos.add(sysSessionInfo);
        activeSessionInfos.addAll(infos);

        mShadowRouter2Manager.setSystemRoutingSession(sysSessionInfo);
        mShadowRouter2Manager.setRemoteSessions(infos);

        assertThat(mInfoMediaManager.getActiveRoutingSessions())
                .containsExactlyElementsIn(activeSessionInfos);
        assertThat(mInfoMediaManager.getRemoteSessions()).containsExactlyElementsIn(infos);
    }

    @Test
+3 −3
Original line number Diff line number Diff line
@@ -433,9 +433,9 @@ public class LocalMediaManagerTest {
        final RoutingSessionInfo info = mock(RoutingSessionInfo.class);
        when(info.getId()).thenReturn(TEST_SESSION_ID);
        routingSessionInfos.add(info);
        when(mInfoMediaManager.getActiveRoutingSessions()).thenReturn(routingSessionInfos);
        when(mInfoMediaManager.getRemoteSessions()).thenReturn(routingSessionInfos);

        assertThat(mLocalMediaManager.getActiveMediaSession().get(0).getId())
        assertThat(mLocalMediaManager.getRemoteRoutingSessions().get(0).getId())
                .matches(TEST_SESSION_ID);
    }

@@ -544,7 +544,7 @@ public class LocalMediaManagerTest {
        final RoutingSessionInfo info = mock(RoutingSessionInfo.class);
        when(info.getId()).thenReturn(TEST_SESSION_ID);
        routingSessionInfos.add(info);
        when(mInfoMediaManager.getActiveRoutingSessions()).thenReturn(routingSessionInfos);
        when(mInfoMediaManager.getRoutingSessionById(TEST_SESSION_ID)).thenReturn(info);

        mLocalMediaManager.adjustSessionVolume(TEST_SESSION_ID, 10);

Loading