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

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

Change-Id: I4c67d68500f22473df038437f17dbaf34cbabdd7
This commit is contained in:
TreeHugger Robot
2020-07-01 23:10:54 +00:00
committed by Automerger Merge Worker

View File

@@ -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) {