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

Commit 0dadde72 authored by Robert Snoeberger's avatar Robert Snoeberger
Browse files

Check if QQS shows player when updating height

The media session attached to the player may have changed since the last
time the QQS layout was switched. So, check if the QuickQSPanel is showing
a player when deciding how to update the height. Don't check the state
of the media session.

Fixes: 149503712
Test: play podcast, pause and dismiss app. Go to lock screen and swipe
down to see QuickQS. Verify that the panel is appropriately sized.

Change-Id: I1d6252a1ea09d6938fe1b5da6a4bee05b2ebc30c
parent bb5e6b49
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -66,7 +66,10 @@ public class QuickQSPanel extends QSPanel {
    private int mMaxTiles;
    protected QSPanel mFullPanel;
    private QuickQSMediaPlayer mMediaPlayer;
    /** Whether or not the QS media player feature is enabled. */
    private boolean mUsingMediaPlayer;
    /** Whether or not the QuickQSPanel currently contains a media player. */
    private boolean mHasMediaPlayer;
    private LinearLayout mHorizontalLinearLayout;

    // Only used with media
@@ -185,8 +188,8 @@ public class QuickQSPanel extends QSPanel {

    boolean switchTileLayout() {
        if (!mUsingMediaPlayer) return false;
        if (mMediaPlayer.hasMediaSession()
                && mHorizontalLinearLayout.getVisibility() == View.GONE) {
        mHasMediaPlayer = mMediaPlayer.hasMediaSession();
        if (mHasMediaPlayer && mHorizontalLinearLayout.getVisibility() == View.GONE) {
            mHorizontalLinearLayout.setVisibility(View.VISIBLE);
            ((View) mRegularTileLayout).setVisibility(View.GONE);
            mTileLayout.setListening(false);
@@ -198,8 +201,7 @@ public class QuickQSPanel extends QSPanel {
            if (mHost != null) setTiles(mHost.getTiles());
            mTileLayout.setListening(mListening);
            return true;
        } else if (!mMediaPlayer.hasMediaSession()
                && mHorizontalLinearLayout.getVisibility() == View.VISIBLE) {
        } else if (!mHasMediaPlayer && mHorizontalLinearLayout.getVisibility() == View.VISIBLE) {
            mHorizontalLinearLayout.setVisibility(View.GONE);
            ((View) mRegularTileLayout).setVisibility(View.VISIBLE);
            mTileLayout.setListening(false);
@@ -215,8 +217,9 @@ public class QuickQSPanel extends QSPanel {
        return false;
    }

    public boolean hasMediaPlayerSession() {
        return mMediaPlayer.hasMediaSession();
    /** Returns true if this panel currently contains a media player. */
    public boolean hasMediaPlayer() {
        return mHasMediaPlayer;
    }

    @Override
+1 −1
Original line number Diff line number Diff line
@@ -344,7 +344,7 @@ public class QuickStatusBarHeader extends RelativeLayout implements
        if (mQsDisabled) {
            lp.height = resources.getDimensionPixelSize(
                    com.android.internal.R.dimen.quick_qs_offset_height);
        } else if (useQsMediaPlayer(mContext) && mHeaderQsPanel.hasMediaPlayerSession()) {
        } else if (useQsMediaPlayer(mContext) && mHeaderQsPanel.hasMediaPlayer()) {
            lp.height = Math.max(getMinimumHeight(),
                    resources.getDimensionPixelSize(
                            com.android.internal.R.dimen.quick_qs_total_height_with_media));