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

Commit d42ebf89 authored by tim peng's avatar tim peng Committed by Android (Google) Code Review
Browse files

Merge "Update OutputSwitcher from SettingsPanel to MediaOutputDialog in SystemUI"

parents bc8a0ee7 4ceacb30
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import com.android.systemui.dump.DumpManager;
import com.android.systemui.fragments.FragmentService;
import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.media.dialog.MediaOutputDialogFactory;
import com.android.systemui.model.SysUiState;
import com.android.systemui.navigationbar.NavigationBarController;
import com.android.systemui.navigationbar.NavigationModeController;
@@ -344,6 +345,7 @@ public class Dependency {
    @Inject Lazy<DisplayImeController> mDisplayImeController;
    @Inject Lazy<RecordingController> mRecordingController;
    @Inject Lazy<ProtoTracer> mProtoTracer;
    @Inject Lazy<MediaOutputDialogFactory> mMediaOutputDialogFactory;

    @Inject
    public Dependency() {
@@ -541,6 +543,8 @@ public class Dependency {

        mProviders.put(RecordingController.class, mRecordingController::get);

        mProviders.put(MediaOutputDialogFactory.class, mMediaOutputDialogFactory::get);

        Dependency.setInstance(this);
    }

+6 −10
Original line number Diff line number Diff line
@@ -42,10 +42,10 @@ import androidx.annotation.UiThread;
import androidx.constraintlayout.widget.ConstraintSet;

import com.android.settingslib.Utils;
import com.android.settingslib.media.MediaOutputSliceConstants;
import com.android.settingslib.widget.AdaptiveIcon;
import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.media.dialog.MediaOutputDialogFactory;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
import com.android.systemui.util.animation.TransitionLayout;
@@ -93,7 +93,7 @@ public class MediaControlPanel {
    private int mAlbumArtRadius;
    // This will provide the corners for the album art.
    private final ViewOutlineProvider mViewOutlineProvider;

    private final MediaOutputDialogFactory mMediaOutputDialogFactory;
    /**
     * Initialize a new control panel
     * @param context
@@ -104,7 +104,8 @@ public class MediaControlPanel {
    public MediaControlPanel(Context context, @Background Executor backgroundExecutor,
            ActivityStarter activityStarter, MediaViewController mediaViewController,
            SeekBarViewModel seekBarViewModel, Lazy<MediaDataManager> lazyMediaDataManager,
            KeyguardDismissUtil keyguardDismissUtil) {
            KeyguardDismissUtil keyguardDismissUtil, MediaOutputDialogFactory
            mediaOutputDialogFactory) {
        mContext = context;
        mBackgroundExecutor = backgroundExecutor;
        mActivityStarter = activityStarter;
@@ -112,6 +113,7 @@ public class MediaControlPanel {
        mMediaViewController = mediaViewController;
        mMediaDataManagerLazy = lazyMediaDataManager;
        mKeyguardDismissUtil = keyguardDismissUtil;
        mMediaOutputDialogFactory = mediaOutputDialogFactory;
        loadDimens();

        mViewOutlineProvider = new ViewOutlineProvider() {
@@ -273,13 +275,7 @@ public class MediaControlPanel {
        setVisibleAndAlpha(collapsedSet, R.id.media_seamless, true /*visible */);
        setVisibleAndAlpha(expandedSet, R.id.media_seamless, true /*visible */);
        mViewHolder.getSeamless().setOnClickListener(v -> {
            final Intent intent = new Intent()
                    .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT)
                    .putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME,
                            data.getPackageName())
                    .putExtra(MediaOutputSliceConstants.KEY_MEDIA_SESSION_TOKEN, mToken);
            mActivityStarter.startActivity(intent, false, true /* dismissShade */,
                    Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            mMediaOutputDialogFactory.create(data.getPackageName(), true);
        });

        ImageView iconView = mViewHolder.getSeamlessIcon();
+4 −11
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.systemui.statusbar;

import android.content.Context;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
@@ -36,10 +35,9 @@ import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.media.InfoMediaManager;
import com.android.settingslib.media.LocalMediaManager;
import com.android.settingslib.media.MediaDevice;
import com.android.settingslib.media.MediaOutputSliceConstants;
import com.android.settingslib.widget.AdaptiveIcon;
import com.android.systemui.Dependency;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.media.dialog.MediaOutputDialogFactory;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;

@@ -51,7 +49,7 @@ import java.util.List;
 */
public class MediaTransferManager {
    private final Context mContext;
    private final ActivityStarter mActivityStarter;
    private final MediaOutputDialogFactory mMediaOutputDialogFactory;
    private MediaDevice mDevice;
    private List<View> mViews = new ArrayList<>();
    private LocalMediaManager mLocalMediaManager;
@@ -74,12 +72,7 @@ public class MediaTransferManager {
            ViewParent parent = view.getParent();
            StatusBarNotification statusBarNotification =
                    getRowForParent(parent).getEntry().getSbn();
            final Intent intent = new Intent()
                    .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT)
                    .putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME,
                            statusBarNotification.getPackageName());
            mActivityStarter.startActivity(intent, false, true /* dismissShade */,
                    Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            mMediaOutputDialogFactory.create(statusBarNotification.getPackageName(), true);
            return true;
        }
    };
@@ -107,7 +100,7 @@ public class MediaTransferManager {

    public MediaTransferManager(Context context) {
        mContext = context;
        mActivityStarter = Dependency.get(ActivityStarter.class);
        mMediaOutputDialogFactory = Dependency.get(MediaOutputDialogFactory.class);
        LocalBluetoothManager lbm = Dependency.get(LocalBluetoothManager.class);
        InfoMediaManager imm = new InfoMediaManager(mContext, null, null, lbm);
        mLocalMediaManager = new LocalMediaManager(mContext, lbm, imm, null);
+4 −1
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import androidx.constraintlayout.widget.ConstraintSet
import androidx.lifecycle.LiveData
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.media.dialog.MediaOutputDialogFactory
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.phone.KeyguardDismissUtil
import com.android.systemui.util.animation.TransitionLayout
@@ -92,6 +93,7 @@ public class MediaControlPanelTest : SysuiTestCase() {
    @Mock private lateinit var mediaDataManager: MediaDataManager
    @Mock private lateinit var expandedSet: ConstraintSet
    @Mock private lateinit var collapsedSet: ConstraintSet
    @Mock private lateinit var mediaOutputDialogFactory: MediaOutputDialogFactory
    private lateinit var appIcon: ImageView
    private lateinit var appName: TextView
    private lateinit var albumView: ImageView
@@ -126,7 +128,8 @@ public class MediaControlPanelTest : SysuiTestCase() {
        whenever(mediaViewController.collapsedLayout).thenReturn(collapsedSet)

        player = MediaControlPanel(context, bgExecutor, activityStarter, mediaViewController,
                seekBarViewModel, Lazy { mediaDataManager }, keyguardDismissUtil)
                seekBarViewModel, Lazy { mediaDataManager }, keyguardDismissUtil,
                mediaOutputDialogFactory)
        whenever(seekBarViewModel.progress).thenReturn(seekBarData)

        // Mock out a view holder for the player to attach to.