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

Commit e7791b85 authored by Beth Thibodeau's avatar Beth Thibodeau
Browse files

Update shade transition on full expand or collapse

On the lockscreen, this is normally done by a call in
LockscreenShadeTransitionController when updating dragDownAmount.
However it seems that sometimes this update doesn't happen, leaving
MediaHierarchyManager in a bad state. This change listens to the
ShadeInteractor as a backup to ensure the state is updated when the
transition has finished.

Bug: 319244625
Test: manual - swipe shade while locked and unlocked and landscape mode
Test: manual - same on tablet device
Change-Id: I5c310ab038603c33f0a6a202ebcee9110e0612d9
Merged-In: I5c310ab038603c33f0a6a202ebcee9110e0612d9
(cherry picked from commit 5f17e34c)
parent 3aaaa692
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -460,8 +460,7 @@ constructor(
            object : StatusBarStateController.StateListener {
                override fun onStatePreChange(oldState: Int, newState: Int) {
                    // We're updating the location before the state change happens, since we want
                    // the
                    // location of the previous state to still be up to date when the animation
                    // the location of the previous state to still be up to date when the animation
                    // starts
                    if (
                        newState == StatusBarState.SHADE_LOCKED &&
@@ -566,6 +565,15 @@ constructor(
            }
        }

        coroutineScope.launch {
            shadeInteractor.shadeExpansion.collect { expansion ->
                if (expansion >= 1f || expansion <= 0f) {
                    // Shade has fully expanded or collapsed: force transition amount update
                    setTransitionToFullShadeAmount(expansion)
                }
            }
        }

        val settingsObserver: ContentObserver =
            object : ContentObserver(handler) {
                override fun onChange(selfChange: Boolean, uri: Uri?) {