Don't update queue button unnecessarily
Fixes: 166157612
Test: manual
Change-Id: I8c19275d75b327f6e5fbe4181d144b777151574a
diff --git a/src/com/android/car/media/PlaybackFragment.java b/src/com/android/car/media/PlaybackFragment.java
index a014047..bf8da0f 100644
--- a/src/com/android/car/media/PlaybackFragment.java
+++ b/src/com/android/car/media/PlaybackFragment.java
@@ -704,34 +704,31 @@
}
private void setQueueState(boolean hasQueue, boolean visible) {
- if (mHasQueue == hasQueue && mQueueIsVisible == visible) {
- return;
+ if (mHasQueue != hasQueue) {
+ mHasQueue = hasQueue;
+ if (mHasQueue) {
+ MenuItem queueMenuItem = MenuItem.builder(getContext())
+ .setIcon(R.drawable.ic_queue_button)
+ .setActivated(mQueueIsVisible)
+ .setOnClickListener(button -> toggleQueueVisibility())
+ .build();
+ mAppBarController.setMenuItems(Collections.singletonList(queueMenuItem));
+ } else {
+ mAppBarController.setMenuItems(Collections.emptyList());
+ }
}
- mHasQueue = hasQueue;
- mQueueIsVisible = visible;
-
- if (mHasQueue) {
- MenuItem queueMenuItem = MenuItem.builder(getContext())
- .setIcon(R.drawable.ic_queue_button)
- .setActivated(mQueueIsVisible)
- .setOnClickListener(button -> toggleQueueVisibility())
- .build();
- mAppBarController.setMenuItems(Collections.singletonList(queueMenuItem));
- } else {
- mAppBarController.setMenuItems(Collections.emptyList());
- }
-
- if (mQueueIsVisible) {
- ViewUtils.showViewsAnimated(mViewsToShowWhenQueueIsVisible, mFadeDuration);
- ViewUtils.hideViewsAnimated(mViewsToHideWhenQueueIsVisible, mFadeDuration);
- ViewUtils.setVisible(mViewsToShowImmediatelyWhenQueueIsVisible, true);
- ViewUtils.setVisible(mViewsToHideImmediatelyWhenQueueIsVisible, false);
- } else {
- ViewUtils.hideViewsAnimated(mViewsToShowWhenQueueIsVisible, mFadeDuration);
- ViewUtils.showViewsAnimated(mViewsToHideWhenQueueIsVisible, mFadeDuration);
- ViewUtils.setVisible(mViewsToShowImmediatelyWhenQueueIsVisible, false);
- ViewUtils.setVisible(mViewsToHideImmediatelyWhenQueueIsVisible, true);
+ if (mQueueIsVisible != visible) {
+ mQueueIsVisible = visible;
+ if (mQueueIsVisible) {
+ ViewUtils.showViewsAnimated(mViewsToShowWhenQueueIsVisible, mFadeDuration);
+ ViewUtils.hideViewsAnimated(mViewsToHideWhenQueueIsVisible, mFadeDuration);
+ } else {
+ ViewUtils.hideViewsAnimated(mViewsToShowWhenQueueIsVisible, mFadeDuration);
+ ViewUtils.showViewsAnimated(mViewsToHideWhenQueueIsVisible, mFadeDuration);
+ }
+ ViewUtils.setVisible(mViewsToShowImmediatelyWhenQueueIsVisible, mQueueIsVisible);
+ ViewUtils.setVisible(mViewsToHideImmediatelyWhenQueueIsVisible, !mQueueIsVisible);
}
}