bodo
11/14/2022, 12:58 PMdimensionResource(...)val density = LocalDensity.current.density
val fontScale = LocalDensity.current.fontScale
val scaleFactor = if (windowSizeClass == MEDIUM) 1.2F else 1.0F
CompositionLocalProvider(
  LocalDensity provides Density(density = scaleFactor * density, fontScale = fontScale)
) {
   val dpDirectly = 130.dp
   val dpViaResources = dimensionResource(id = R.dimen.dimen_130)
   
   // windowSizeClass == COMPACT
   // dpDirectly = 130.dp
   // dpViaResources = 130.dp
   // windowSizeClass == MEDIUM
   // dpDirectly = 130.dp
   // dpViaResources = 108.33333.dp -> WRONG VALUE!!!!
}fun dimensionResource(@DimenRes id: Int): Dp {
    val context = LocalContext.current
    val density = LocalDensity.current
    val pxValue = context.resources.getDimension(id) // this returns the wrong value because here the DisplayMetrics are used
    return Dp(pxValue / density.density) -> this tries to get the correct value by dividing through the LocalDensity
}