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

Commit 5c44a4b7 authored by Iván Budnik's avatar Iván Budnik Committed by Android (Google) Code Review
Browse files

Merge "Inline shouldDisableMediaOutput into Settings app" into main

parents 855dc3b6 470b661c
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.media.MediaRouter2Manager;
import android.media.RoutingSessionInfo;
import android.net.Uri;
import android.os.UserHandle;
@@ -59,6 +60,8 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker
    protected final Collection<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>();
    private final DevicesChangedBroadcastReceiver mReceiver;
    private final String mPackageName;
    @VisibleForTesting
    MediaRouter2Manager mManager;

    private boolean mIsTouched;
    private MediaDevice mTopDevice;
@@ -82,6 +85,11 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker
            mLocalMediaManager = new LocalMediaManager(mContext, mPackageName, null);
        }

        // Delaying initialization to allow mocking in Roboelectric tests.
        if (mManager == null) {
            mManager = MediaRouter2Manager.getInstance(mContext);
        }

        mLocalMediaManager.registerCallback(this);
        final IntentFilter intentFilter = new IntentFilter(STREAM_DEVICES_CHANGED_ACTION);
        mContext.registerReceiver(mReceiver, intentFilter);
@@ -259,7 +267,9 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker
    }

    boolean shouldDisableMediaOutput(String packageName) {
        return mLocalMediaManager.shouldDisableMediaOutput(packageName);
        // TODO: b/291277292 - Remove references to MediaRouter2Manager and implement long-term
        //  solution in SettingsLib.
        return mManager.getTransferableRoutes(packageName).isEmpty();
    }

    boolean shouldEnableVolumeSeekBar(RoutingSessionInfo sessionInfo) {
+0 −8
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.media.MediaRouter2Manager;
import android.media.RoutingSessionInfo;
import android.net.Uri;
import android.text.SpannableString;
@@ -33,7 +32,6 @@ import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.util.Log;

import androidx.annotation.VisibleForTesting;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
import androidx.slice.builders.ListBuilder;
@@ -67,9 +65,6 @@ public class RemoteMediaSlice implements CustomSliceable {

    private MediaDeviceUpdateWorker mWorker;

    @VisibleForTesting
    MediaRouter2Manager mRouterManager;

    public RemoteMediaSlice(Context context) {
        mContext = context;
    }
@@ -105,9 +100,6 @@ public class RemoteMediaSlice implements CustomSliceable {
            Log.e(TAG, "Unable to get the slice worker.");
            return listBuilder.build();
        }
        if (mRouterManager == null) {
            mRouterManager = MediaRouter2Manager.getInstance(mContext);
        }
        // Only displaying remote devices
        final List<RoutingSessionInfo> infos = getWorker().getActiveRemoteMediaDevice();
        if (infos.isEmpty()) {
+5 −2
Original line number Diff line number Diff line
@@ -136,8 +136,11 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem

            Preference switcherPreference = mPreferenceCategory.findPreference(
                    SWITCHER_PREFIX + info.getId());
            final boolean isMediaOutputDisabled = mLocalMediaManager.shouldDisableMediaOutput(
                    info.getClientPackageName());

            // TODO: b/291277292 - Remove references to MediaRouter2Manager and implement long-term
            //  solution in SettingsLib.
            final boolean isMediaOutputDisabled =
                    mRouterManager.getTransferableRoutes(info.getClientPackageName()).isEmpty();
            final CharSequence outputTitle = mContext.getString(R.string.media_output_label_title,
                    appName);
            if (switcherPreference != null) {
+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaRoute2ProviderService;
import android.media.MediaRouter2Manager;
import android.media.RoutingSessionInfo;
import android.net.Uri;

@@ -92,6 +93,7 @@ public class MediaDeviceUpdateWorkerTest {
        MockitoAnnotations.initMocks(this);
        mContext = spy(RuntimeEnvironment.application);
        mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI);
        mMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class);
        mResolver = mock(ContentResolver.class);
        mShadowApplication = ShadowApplication.getInstance();
        mAudioManager = mContext.getSystemService(AudioManager.class);
@@ -234,6 +236,7 @@ public class MediaDeviceUpdateWorkerTest {
        when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);

        mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI1);
        mMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class);
        mMediaDeviceUpdateWorker.mLocalMediaManager = mock(LocalMediaManager.class);
        when(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName())
                .thenReturn(TEST_DEVICE_PACKAGE_NAME1);
+1 −1
Original line number Diff line number Diff line
@@ -89,10 +89,10 @@ public class RemoteMediaSliceTest {
        SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);

        mRemoteMediaSlice = new RemoteMediaSlice(mContext);
        mRemoteMediaSlice.mRouterManager = mock(MediaRouter2Manager.class);
        sMediaDeviceUpdateWorker = spy(new MediaDeviceUpdateWorker(mContext,
                REMOTE_MEDIA_SLICE_URI));
        sMediaDeviceUpdateWorker.mLocalMediaManager = mLocalMediaManager;
        sMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class);
        final RoutingSessionInfo remoteSessionInfo = mock(RoutingSessionInfo.class);
        when(remoteSessionInfo.getId()).thenReturn(TEST_SESSION_1_ID);
        when(remoteSessionInfo.getName()).thenReturn(TEST_SESSION_1_NAME);