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

Commit ef28524c authored by Anton Potapov's avatar Anton Potapov Committed by Android (Google) Code Review
Browse files

Merge "Use platform WindowMetrics to get window bounds" into main

parents 4e2db7ce 4c6e5423
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -16,15 +16,16 @@

package com.android.compose.windowsizeclass

import android.view.WindowManager
import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi
import androidx.compose.material3.windowsizeclass.WindowSizeClass
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.graphics.toComposeRect
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.window.layout.WindowMetricsCalculator

val LocalWindowSizeClass =
    staticCompositionLocalOf<WindowSizeClass> {
@@ -41,7 +42,10 @@ fun calculateWindowSizeClass(): WindowSizeClass {
    LocalConfiguration.current
    val density = LocalDensity.current
    val context = LocalContext.current
    val metrics = WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(context)
    val metrics =
        remember(context) {
            context.getSystemService(WindowManager::class.java)!!.currentWindowMetrics
        }
    val size = with(density) { metrics.bounds.toComposeRect().size.toDpSize() }
    return WindowSizeClass.calculateFromSize(size)
}