Collapse carousel if no media active, null checks

Bug: 143245284
Test: manual

Change-Id: I6a61c532592edef4cd8e534af39adc8335fae24c
This commit is contained in:
Beth Thibodeau
2019-10-24 14:13:49 -04:00
parent cabc32d247
commit 4e69f4ce5b
3 changed files with 22 additions and 7 deletions

View File

@@ -33,6 +33,7 @@ import android.media.MediaMetadata;
import android.media.session.MediaController;
import android.media.session.MediaSession;
import android.media.session.PlaybackState;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -50,7 +51,6 @@ import com.android.settingslib.media.MediaOutputSliceConstants;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.MediaTransferManager;
/**
* Single media player for carousel in QSPanel
@@ -101,6 +101,12 @@ public class QSMediaPlayer {
mToken = token;
mController = new MediaController(mContext, token);
MediaMetadata mMediaMetadata = mController.getMetadata();
if (mMediaMetadata == null) {
Log.e(TAG, "Media metadata was null");
return;
}
Notification.Builder builder = Notification.Builder.recoverBuilder(mContext, notif);
// Album art
@@ -151,18 +157,17 @@ public class QSMediaPlayer {
// Album name
TextView albumName = headerView.findViewById(com.android.internal.R.id.header_text);
String albumString = mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ALBUM);
if (!albumString.isEmpty()) {
if (TextUtils.isEmpty(albumString)) {
albumName.setVisibility(View.GONE);
separator.setVisibility(View.GONE);
} else {
albumName.setText(albumString);
albumName.setTextColor(iconColor);
albumName.setVisibility(View.VISIBLE);
separator.setVisibility(View.VISIBLE);
} else {
albumName.setVisibility(View.GONE);
separator.setVisibility(View.GONE);
}
// Transfer chip
MediaTransferManager mediaTransferManager = new MediaTransferManager(mContext);
View transferBackgroundView = headerView.findViewById(
com.android.internal.R.id.media_seamless);
LinearLayout viewLayout = (LinearLayout) transferBackgroundView;

View File

@@ -166,6 +166,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
mMediaCarousel = new LinearLayout(mContext);
mMediaCarousel.setOrientation(LinearLayout.HORIZONTAL);
mediaScrollView.addView(mMediaCarousel, lpCarousel);
mediaScrollView.setVisibility(View.GONE);
} else {
mMediaCarousel = null;
}
@@ -239,6 +240,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
} else {
mMediaCarousel.addView(player.getView(), lp); // add at end
}
mMediaPlayers.add(player);
} else if (player.isPlaying()) {
// move it to the front
mMediaCarousel.removeView(player.getView());
@@ -248,7 +250,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
Log.d(TAG, "setting player session");
player.setMediaSession(token, icon, iconColor, bgColor, actionsContainer,
notif.getNotification());
mMediaPlayers.add(player);
if (mMediaPlayers.size() > 0) {
((View) mMediaCarousel.getParent()).setVisibility(View.VISIBLE);
}
}
protected View getMediaPanel() {

View File

@@ -84,6 +84,11 @@ public class QuickQSMediaPlayer {
mController = new MediaController(mContext, token);
MediaMetadata mMediaMetadata = mController.getMetadata();
if (mMediaMetadata == null) {
Log.e(TAG, "Media metadata was null");
return;
}
// Album art
addAlbumArtBackground(mMediaMetadata, bgColor);