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
This commit is contained in:
Robert Snoeberger
2020-04-06 23:35:54 -04:00
parent bb5e6b49a7
commit 0dadde727f
2 changed files with 10 additions and 7 deletions

View File

@@ -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

View File

@@ -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));