DO NOT MERGE Fix Now Playing toolbar initial state
Bug: 167244976
Test: Manualy
Change-Id: I2530ccac67fd536c0cfc9f6f3f81c75b7faee856
diff --git a/src/com/android/car/media/PlaybackFragment.java b/src/com/android/car/media/PlaybackFragment.java
index 1256ed3..e9edecc 100644
--- a/src/com/android/car/media/PlaybackFragment.java
+++ b/src/com/android/car/media/PlaybackFragment.java
@@ -639,6 +639,9 @@
mItemAnimator.setSupportsChangeAnimations(false);
mQueue.setItemAnimator(mItemAnimator);
+ // Make sure the AppBar menu reflects the initial state of playback fragment.
+ updateAppBarMenu(mHasQueue, mQueueIsVisible);
+
getPlaybackViewModel().getQueue().observe(this, this::setQueue);
getPlaybackViewModel().hasQueue().observe(getViewLifecycleOwner(), hasQueue -> {
@@ -691,6 +694,22 @@
mViewModel.setQueueVisible(updatedQueueVisibility);
}
+ private void updateAppBarMenu(boolean hasQueue, boolean activated) {
+ if (mToolbar == null) {
+ return;
+ }
+ if (hasQueue) {
+ MenuItem queueMenuItem = MenuItem.builder(getContext())
+ .setIcon(R.drawable.ic_queue_button)
+ .setActivated(activated)
+ .setOnClickListener(button -> toggleQueueVisibility())
+ .build();
+ mToolbar.setMenuItems(Collections.singletonList(queueMenuItem));
+ } else {
+ mToolbar.setMenuItems(Collections.emptyList());
+ }
+ }
+
private void setQueueState(boolean hasQueue, boolean visible) {
if (mHasQueue == hasQueue && mQueueIsVisible == visible) {
return;
@@ -699,18 +718,7 @@
mHasQueue = hasQueue;
mQueueIsVisible = visible;
- if (mToolbar != null) {
- if (mHasQueue) {
- MenuItem queueMenuItem = MenuItem.builder(getContext())
- .setIcon(R.drawable.ic_queue_button)
- .setActivated(mQueueIsVisible)
- .setOnClickListener(button -> toggleQueueVisibility())
- .build();
- mToolbar.setMenuItems(Collections.singletonList(queueMenuItem));
- } else {
- mToolbar.setMenuItems(Collections.emptyList());
- }
- }
+ updateAppBarMenu(hasQueue, visible);
if (mQueueIsVisible) {
ViewUtils.showViewsAnimated(mViewsToShowWhenQueueIsVisible, mFadeDuration);