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

Commit 6455510f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fixed an issue where the media would reappear animated" into rvc-dev am: 93920d3b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12051979

Change-Id: I4c67d68500f22473df038437f17dbaf34cbabdd7
parents 299d544b 93920d3b
Loading
Loading
Loading
Loading
+23 −1
Original line number Original line Diff line number Diff line
@@ -39,6 +39,28 @@ import com.android.systemui.util.animation.UniqueObjectHostView
import javax.inject.Inject
import javax.inject.Inject
import javax.inject.Singleton
import javax.inject.Singleton


/**
 * Similarly to isShown but also excludes views that have 0 alpha
 */
val View.isShownNotFaded: Boolean
    get() {
        var current: View = this
        while (true) {
            if (current.visibility != View.VISIBLE) {
                return false
            }
            if (current.alpha == 0.0f) {
                return false
            }
            val parent = current.parent ?: return false // We are not attached to the view root
            if (parent !is View) {
                // we reached the viewroot, hurray
                return true
            }
            current = parent
        }
    }

/**
/**
 * This manager is responsible for placement of the unique media view between the different hosts
 * This manager is responsible for placement of the unique media view between the different hosts
 * and animate the positions of the views to achieve seamless transitions.
 * and animate the positions of the views to achieve seamless transitions.
@@ -368,7 +390,7 @@ class MediaHierarchyManager @Inject constructor(
            // non-trivial reattaching logic happening that will make the view not-shown earlier
            // non-trivial reattaching logic happening that will make the view not-shown earlier
            return true
            return true
        }
        }
        return mediaFrame.isShown || animator.isRunning || animationPending
        return mediaFrame.isShownNotFaded || animator.isRunning || animationPending
    }
    }


    private fun adjustAnimatorForTransition(desiredLocation: Int, previousLocation: Int) {
    private fun adjustAnimatorForTransition(desiredLocation: Int, previousLocation: Int) {