Ensure final height of UMO transition is the hostView's height
Since the targetHost should be measured correctly, and it sets the child view's size when it is added (either by remeasuring or by directly setting it), setting it again to the target bounds is unnessecary and potentially buggy. Additionally, when we obtain a view state, we always obtain it at an expansion of 1f. This prevents any squishiness from being applied when remeasuring. Test: Manual Bug: 232528163 Change-Id: I0a4e6c457663dfe376ad7754f6d151f47d3aeaf3
This commit is contained in:
committed by
Selim Cinek
parent
96c4978054
commit
876efc4b26
@@ -1043,18 +1043,9 @@ constructor(
|
||||
rootOverlay!!.add(mediaFrame)
|
||||
} else {
|
||||
val targetHost = getHost(newLocation)!!.hostView
|
||||
// When adding back to the host, let's make sure to reset the bounds.
|
||||
// Usually adding the view will trigger a layout that does this automatically,
|
||||
// but we sometimes suppress this.
|
||||
// This will either do a full layout pass and remeasure, or it will bypass
|
||||
// that and directly set the mediaFrame's bounds within the premeasured host.
|
||||
targetHost.addView(mediaFrame)
|
||||
val left = targetHost.paddingLeft
|
||||
val top = targetHost.paddingTop
|
||||
mediaFrame.setLeftTopRightBottom(
|
||||
left,
|
||||
top,
|
||||
left + currentBounds.width(),
|
||||
top + currentBounds.height()
|
||||
)
|
||||
|
||||
if (mediaFrame.childCount > 0) {
|
||||
val child = mediaFrame.getChildAt(0)
|
||||
|
||||
@@ -420,7 +420,9 @@ constructor(
|
||||
*/
|
||||
fun getMeasurementsForState(hostState: MediaHostState): MeasurementOutput? =
|
||||
traceSection("MediaViewController#getMeasurementsForState") {
|
||||
val viewState = obtainViewState(hostState) ?: return null
|
||||
// measurements should never factor in the squish fraction
|
||||
val viewState =
|
||||
obtainViewState(hostState.copy().also { it.squishFraction = 1.0f }) ?: return null
|
||||
measurement.measuredWidth = viewState.width
|
||||
measurement.measuredHeight = viewState.height
|
||||
return measurement
|
||||
|
||||
Reference in New Issue
Block a user