Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b950a185 authored by Michael Mikhail's avatar Michael Mikhail
Browse files

Refresh state when updating seekbar visibility

The issue was not with the comparison algorithm. It seems we used to
rely on media notification updates to update seekbar visibility. We need
to refresh the state to get an immediate update on seekbar to show.

Flag: EXEMPT bugfix
Fixes: 373533563
Test: Checked UI.
Change-Id: I997454739600aad9cfd46c8767fbd641025233c3
parent 23ee7594
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -435,6 +435,12 @@ public class MediaControlPanel {
        }
        this.mIsSeekBarEnabled = isSeekBarEnabled;
        updateSeekBarVisibility();
        mMainExecutor.execute(() -> {
            if (!mMetadataAnimationHandler.isRunning()) {
                // Trigger a state refresh so that we immediately update visibilities.
                mMediaViewController.refreshState();
            }
        });
    }

    /**
+11 −1
Original line number Diff line number Diff line
@@ -225,6 +225,12 @@ constructor(
                if (isSeekBarEnabled == enabled) return
                isSeekBarEnabled = enabled
                MediaControlViewBinder.updateSeekBarVisibility(expandedLayout, isSeekBarEnabled)
                mainExecutor.execute {
                    if (!metadataAnimationHandler.isRunning) {
                        // Trigger a state refresh so that we immediately update visibilities.
                        refreshState()
                    }
                }
            }
        }

@@ -899,7 +905,11 @@ constructor(
            // If the view isn't bound, we can drop the animation, otherwise we'll execute it
            animateNextStateChange = false
            if (transitionLayout == null) {
                logger.logMediaLocation("setCurrentState: view not bound", startLocation, endLocation)
                logger.logMediaLocation(
                    "setCurrentState: view not bound",
                    startLocation,
                    endLocation,
                )
                return
            }