Merge "Fixed an issue where the media would reappear animated" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
93920d3b10
@@ -39,6 +39,28 @@ import com.android.systemui.util.animation.UniqueObjectHostView
|
||||
import javax.inject.Inject
|
||||
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
|
||||
* 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
|
||||
return true
|
||||
}
|
||||
return mediaFrame.isShown || animator.isRunning || animationPending
|
||||
return mediaFrame.isShownNotFaded || animator.isRunning || animationPending
|
||||
}
|
||||
|
||||
private fun adjustAnimatorForTransition(desiredLocation: Int, previousLocation: Int) {
|
||||
|
||||
Reference in New Issue
Block a user