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

Commit e6661d7f authored by Michael Mikhail's avatar Michael Mikhail Committed by Android (Google) Code Review
Browse files

Merge "Update measurement input when width or height of UMO is higher" into main

parents c6102c38 fd4eb2da
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@ import com.android.systemui.keyboard.shortcut.ui.composable.ProvideShortcutHelpe
import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.lifecycle.setSnapshotBinding
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.media.controls.ui.controller.MediaViewLogger
import com.android.systemui.media.controls.ui.view.MediaHost
import com.android.systemui.plugins.qs.QS
import com.android.systemui.plugins.qs.QSContainerController
@@ -148,6 +149,7 @@ import com.android.systemui.qs.ui.composable.QuickSettingsShade.systemGestureExc
import com.android.systemui.qs.ui.composable.QuickSettingsTheme
import com.android.systemui.res.R
import com.android.systemui.util.LifecycleFragment
import com.android.systemui.util.animation.MeasurementInput
import com.android.systemui.util.animation.UniqueObjectHostView
import com.android.systemui.util.asIndenting
import com.android.systemui.util.children
@@ -176,6 +178,7 @@ constructor(
    @QSFragmentComposeClippingTableLog private val qsClippingTableLogBuffer: TableLogBuffer,
    private val dumpManager: DumpManager,
    @Background private val backgroundDispatcher: CoroutineDispatcher,
    private val mediaLogger: MediaViewLogger,
) : LifecycleFragment(), QS, Dumpable {

    private val scrollListener = MutableStateFlow<QS.ScrollListener?>(null)
@@ -738,6 +741,7 @@ constructor(
                                // (b/383085298)
                                modifier = Modifier.requiredHeightIn(max = Dp.Infinity),
                                mediaHost = viewModel.qqsMediaHost,
                                mediaLogger = mediaLogger,
                            )
                        }
                    }
@@ -892,6 +896,7 @@ constructor(
                                if (viewModel.qsMediaVisible) {
                                    MediaObject(
                                        mediaHost = viewModel.qsMediaHost,
                                        mediaLogger = mediaLogger,
                                        update = { translationY = viewModel.qsMediaTranslationY },
                                    )
                                }
@@ -1370,6 +1375,7 @@ private fun Modifier.gesturesDisabled(disabled: Boolean) =
private fun MediaObject(
    mediaHost: MediaHost,
    modifier: Modifier = Modifier,
    mediaLogger: MediaViewLogger,
    update: UniqueObjectHostView.() -> Unit = {},
) {
    Box {
@@ -1389,11 +1395,17 @@ private fun MediaObject(
                // Update layout params if host view bounds are higher than its child.
                val height = mediaHost.hostView.height
                val width = mediaHost.hostView.width
                var measure = false
                mediaHost.hostView.children.forEach { child ->
                    if (child is FrameLayout && (height > child.height || width > child.width)) {
                        measure = true
                        child.layoutParams = FrameLayout.LayoutParams(width, height)
                    }
                }
                if (measure) {
                    mediaHost.hostView.measurementManager.onMeasure(MeasurementInput(width, height))
                    mediaLogger.logMediaSize("update size in compose", width, height)
                }
            },
            onReset = {},
        )