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

Commit 21632b2d authored by Jordan Demeulenaere's avatar Jordan Demeulenaere
Browse files

Recompute color schemes in PlatformTheme when config changes

Bug: 438964734
Fixes: 438964734
Test: Manual, verified that b/438964734 was not happening with this CL
Flag: EXEMPT bug fix
Change-Id: Ic0f0f9d87163ba842692edb1328291f14df3c32e
parent 8db99b66
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -29,7 +29,9 @@ import androidx.compose.material3.dynamicLightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalContext
import com.android.app.tracing.TraceUtils
import com.android.compose.theme.AndroidColorScheme.Companion.color
import com.android.compose.theme.typography.TypeScaleTokens
import com.android.compose.theme.typography.TypefaceNames
@@ -46,8 +48,19 @@ import com.android.internal.R
fun PlatformTheme(isDarkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) {
    val context = LocalContext.current

    val colorScheme = remember(context, isDarkTheme) { platformColorScheme(isDarkTheme, context) }
    val androidColorScheme = remember(context, isDarkTheme) { AndroidColorScheme(context) }
    // Force recreate the color schemes if the theme might have changed.
    val configuration = LocalConfiguration.current
    val colorScheme =
        remember(context, isDarkTheme, configuration) {
            TraceUtils.trace("PlatformTheme.colorScheme") {
                platformColorScheme(isDarkTheme, context)
            }
        }
    val androidColorScheme =
        remember(context, isDarkTheme, configuration) {
            TraceUtils.trace("PlatformTheme.androidColorScheme") { AndroidColorScheme(context) }
        }

    val typefaceNames = remember(context) { TypefaceNames.get(context) }
    val typefaceTokens = remember(typefaceNames) { TypefaceTokens(typefaceNames) }
    val typography =