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

Commit e561c00c authored by Beth Thibodeau's avatar Beth Thibodeau
Browse files

Prompt to unlock if player is tapped on lockscreen

Fixes: 151336738
Test: manual
Change-Id: I416281f6d6b2926a15ca0d8bee18f78d4b6035e7
parent f51a85f6
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
@@ -57,7 +57,6 @@ 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.R;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.qs.QSMediaBrowser;
@@ -75,6 +74,7 @@ public class MediaControlPanel {
    @Nullable private final LocalMediaManager mLocalMediaManager;
    private final Executor mForegroundExecutor;
    protected final Executor mBackgroundExecutor;
    private final ActivityStarter mActivityStarter;

    private Context mContext;
    protected LinearLayout mMediaNotifView;
@@ -178,10 +178,12 @@ public class MediaControlPanel {
     * @param actionIds resource IDs for action buttons in the layout
     * @param foregroundExecutor foreground executor
     * @param backgroundExecutor background executor, used for processing artwork
     * @param activityStarter activity starter
     */
    public MediaControlPanel(Context context, ViewGroup parent,
            @Nullable LocalMediaManager routeManager, @LayoutRes int layoutId, int[] actionIds,
            Executor foregroundExecutor, Executor backgroundExecutor) {
            Executor foregroundExecutor, Executor backgroundExecutor,
            ActivityStarter activityStarter) {
        mContext = context;
        LayoutInflater inflater = LayoutInflater.from(mContext);
        mMediaNotifView = (LinearLayout) inflater.inflate(layoutId, parent, false);
@@ -195,6 +197,7 @@ public class MediaControlPanel {
        mActionIds = actionIds;
        mForegroundExecutor = foregroundExecutor;
        mBackgroundExecutor = backgroundExecutor;
        mActivityStarter = activityStarter;
    }

    /**
@@ -267,13 +270,7 @@ public class MediaControlPanel {
        // Click action
        if (contentIntent != null) {
            mMediaNotifView.setOnClickListener(v -> {
                try {
                    contentIntent.send();
                    // Also close shade
                    mContext.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
                } catch (PendingIntent.CanceledException e) {
                    Log.e(TAG, "Pending intent was canceled", e);
                }
                mActivityStarter.postStartActivityDismissingKeyguard(contentIntent);
            });
        }

@@ -287,7 +284,6 @@ public class MediaControlPanel {
        if (mSeamless != null && mLocalMediaManager != null) {
            mSeamless.setVisibility(View.VISIBLE);
            updateDevice(mLocalMediaManager.getCurrentConnectedDevice());
            ActivityStarter mActivityStarter = Dependency.get(ActivityStarter.class);
            mSeamless.setOnClickListener(v -> {
                final Intent intent = new Intent()
                        .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT)
+5 −2
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.systemui.R;
import com.android.systemui.media.MediaControlPanel;
import com.android.systemui.media.SeekBarObserver;
import com.android.systemui.media.SeekBarViewModel;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.util.concurrency.DelayableExecutor;

import java.util.concurrent.Executor;
@@ -75,11 +76,13 @@ public class QSMediaPlayer extends MediaControlPanel {
     * @param routeManager Provides information about device
     * @param foregroundExecutor
     * @param backgroundExecutor
     * @param activityStarter
     */
    public QSMediaPlayer(Context context, ViewGroup parent, LocalMediaManager routeManager,
            Executor foregroundExecutor, DelayableExecutor backgroundExecutor) {
            Executor foregroundExecutor, DelayableExecutor backgroundExecutor,
            ActivityStarter activityStarter) {
        super(context, parent, routeManager, R.layout.qs_media_panel, QS_ACTION_IDS,
                foregroundExecutor, backgroundExecutor);
                foregroundExecutor, backgroundExecutor, activityStarter);
        mParent = (QSPanel) parent;
        mForegroundExecutor = foregroundExecutor;
        mBackgroundExecutor = backgroundExecutor;
+7 −3
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaControlPanel;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTileView;
@@ -114,6 +115,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
    private final Executor mForegroundExecutor;
    private final DelayableExecutor mBackgroundExecutor;
    private boolean mUpdateCarousel = false;
    private ActivityStarter mActivityStarter;

    protected boolean mExpanded;
    protected boolean mListening;
@@ -158,7 +160,8 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
            QSLogger qsLogger,
            @Main Executor foregroundExecutor,
            @Background DelayableExecutor backgroundExecutor,
            @Nullable LocalBluetoothManager localBluetoothManager
            @Nullable LocalBluetoothManager localBluetoothManager,
            ActivityStarter activityStarter
    ) {
        super(context, attrs);
        mContext = context;
@@ -168,6 +171,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        mBackgroundExecutor = backgroundExecutor;
        mLocalBluetoothManager = localBluetoothManager;
        mBroadcastDispatcher = broadcastDispatcher;
        mActivityStarter = activityStarter;

        setOrientation(VERTICAL);

@@ -284,7 +288,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
                    imm, notif.getPackageName());

            player = new QSMediaPlayer(mContext, this, routeManager, mForegroundExecutor,
                    mBackgroundExecutor);
                    mBackgroundExecutor, mActivityStarter);
            player.setListening(mListening);
            if (player.isPlaying()) {
                mMediaCarousel.addView(player.getView(), 0, lp); // add in front
@@ -341,7 +345,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne

            Log.d(TAG, "adding track from browser: " + desc + ", " + component);
            QSMediaPlayer player = new QSMediaPlayer(mContext, QSPanel.this,
                    null, mForegroundExecutor, mBackgroundExecutor);
                    null, mForegroundExecutor, mBackgroundExecutor, mActivityStarter);

            String pkgName = component.getPackageName();

+4 −2
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.widget.LinearLayout;

import com.android.systemui.R;
import com.android.systemui.media.MediaControlPanel;
import com.android.systemui.plugins.ActivityStarter;

import java.util.concurrent.Executor;

@@ -48,11 +49,12 @@ public class QuickQSMediaPlayer extends MediaControlPanel {
     * @param parent
     * @param foregroundExecutor
     * @param backgroundExecutor
     * @param activityStarter
     */
    public QuickQSMediaPlayer(Context context, ViewGroup parent, Executor foregroundExecutor,
            Executor backgroundExecutor) {
            Executor backgroundExecutor, ActivityStarter activityStarter) {
        super(context, parent, null, R.layout.qqs_media_panel, QQS_ACTION_IDS,
                foregroundExecutor, backgroundExecutor);
                foregroundExecutor, backgroundExecutor, activityStarter);
    }

    /**
+5 −3
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTile.SignalState;
import com.android.systemui.plugins.qs.QSTile.State;
@@ -84,10 +85,11 @@ public class QuickQSPanel extends QSPanel {
            QSLogger qsLogger,
            @Main Executor foregroundExecutor,
            @Background DelayableExecutor backgroundExecutor,
            @Nullable LocalBluetoothManager localBluetoothManager
            @Nullable LocalBluetoothManager localBluetoothManager,
            ActivityStarter activityStarter
    ) {
        super(context, attrs, dumpManager, broadcastDispatcher, qsLogger,
                foregroundExecutor, backgroundExecutor, localBluetoothManager);
                foregroundExecutor, backgroundExecutor, localBluetoothManager, activityStarter);
        if (mFooter != null) {
            removeView(mFooter.getView());
        }
@@ -107,7 +109,7 @@ public class QuickQSPanel extends QSPanel {

            int marginSize = (int) mContext.getResources().getDimension(R.dimen.qqs_media_spacing);
            mMediaPlayer = new QuickQSMediaPlayer(mContext, mHorizontalLinearLayout,
                    foregroundExecutor, backgroundExecutor);
                    foregroundExecutor, backgroundExecutor, activityStarter);
            LayoutParams lp2 = new LayoutParams(0, LayoutParams.MATCH_PARENT, 1);
            lp2.setMarginEnd(marginSize);
            lp2.setMarginStart(0);
Loading