summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBabak <babakbo@google.com>2020-08-14 15:24:58 -0700
committerIgor Razumeiko <igorr@google.com>2020-08-20 18:48:54 +0000
commit99ac72909c1fa7f36f4b7678488d66f6f340520d (patch)
tree516a67937c0c13a5a837b0ce4cc5a83795eed533
parent7a8f620f515664882e15e519e2d71efdfd69e672 (diff)
downloadMedia-99ac72909c1fa7f36f4b7678488d66f6f340520d.tar.gz
Fix queue button glitch for long lists
Bug: 165817252 Test: Manual Change-Id: Iab35c725089bc2145a376fad9f4d5c0d8afda011
-rw-r--r--src/com/android/car/media/PlaybackFragment.java20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/com/android/car/media/PlaybackFragment.java b/src/com/android/car/media/PlaybackFragment.java
index e1ffd93..1256ed3 100644
--- a/src/com/android/car/media/PlaybackFragment.java
+++ b/src/com/android/car/media/PlaybackFragment.java
@@ -643,8 +643,9 @@ public class PlaybackFragment extends Fragment {
getPlaybackViewModel().hasQueue().observe(getViewLifecycleOwner(), hasQueue -> {
boolean enableQueue = (hasQueue != null) && hasQueue;
- mQueueIsVisible = mViewModel.getQueueVisible();
- setHasQueue(enableQueue);
+ boolean isQueueVisible = enableQueue && mViewModel.getQueueVisible();
+
+ setQueueState(enableQueue, isQueueVisible);
});
getPlaybackViewModel().getProgress().observe(getViewLifecycleOwner(),
playbackProgress ->
@@ -681,7 +682,7 @@ public class PlaybackFragment extends Fragment {
*/
private void toggleQueueVisibility() {
boolean updatedQueueVisibility = !mQueueIsVisible;
- setQueueVisible(updatedQueueVisibility);
+ setQueueState(mHasQueue, updatedQueueVisibility);
// When the visibility of queue is changed by the user, save the visibility into ViewModel
// so that we can restore PlaybackFragment properly when needed. If it's changed by media
@@ -690,7 +691,12 @@ public class PlaybackFragment extends Fragment {
mViewModel.setQueueVisible(updatedQueueVisibility);
}
- private void setQueueVisible(boolean visible) {
+ private void setQueueState(boolean hasQueue, boolean visible) {
+ if (mHasQueue == hasQueue && mQueueIsVisible == visible) {
+ return;
+ }
+
+ mHasQueue = hasQueue;
mQueueIsVisible = visible;
if (mToolbar != null) {
@@ -719,12 +725,6 @@ public class PlaybackFragment extends Fragment {
}
}
- /** Sets whether the source has a queue. */
- private void setHasQueue(boolean hasQueue) {
- mHasQueue = hasQueue;
- setQueueVisible(hasQueue && mQueueIsVisible);
- }
-
private void onQueueItemClicked(MediaItemMetadata item) {
if (mController != null) {
mController.skipToQueueItem(item.getQueueId());