Loading packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt +47 −10 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.qs.composefragment import android.annotation.SuppressLint import android.content.Context import android.content.res.Configuration import android.graphics.PointF import android.graphics.Rect import android.os.Bundle Loading @@ -35,6 +36,7 @@ import androidx.activity.setViewTreeOnBackPressedDispatcherOwner import androidx.annotation.VisibleForTesting import androidx.compose.animation.core.tween import androidx.compose.foundation.ScrollState import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Arrangement.spacedBy import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column Loading @@ -48,6 +50,7 @@ import androidx.compose.foundation.layout.requiredHeightIn import androidx.compose.foundation.verticalScroll import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue Loading @@ -70,6 +73,8 @@ import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.layout.positionInRoot import androidx.compose.ui.layout.positionOnScreen import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.CustomAccessibilityAction Loading Loading @@ -102,6 +107,7 @@ import com.android.compose.theme.PlatformTheme import com.android.mechanics.GestureContext import com.android.systemui.Dumpable import com.android.systemui.Flags import com.android.systemui.Flags.notificationShadeBlur import com.android.systemui.brightness.ui.compose.BrightnessSliderContainer import com.android.systemui.brightness.ui.compose.ContainerColors import com.android.systemui.compose.modifiers.sysuiResTag Loading Loading @@ -251,7 +257,7 @@ constructor( @Composable private fun Content() { PlatformTheme { PlatformTheme(isDarkTheme = if (notificationShadeBlur()) isSystemInDarkTheme() else true) { ProvideShortcutHelperIndication(interactionsConfig = interactionsConfig()) { // TODO(b/389985793): Make sure that there is no coroutine work or recompositions // happening when alwaysCompose is true but isQsVisibleAndAnyShadeExpanded is false. Loading Loading @@ -759,8 +765,10 @@ constructor( } ) ) { AlwaysDarkMode { BrightnessSliderContainer( viewModel = containerViewModel.brightnessSliderViewModel, viewModel = containerViewModel.brightnessSliderViewModel, containerColors = ContainerColors( Color.Transparent, Loading @@ -770,6 +778,7 @@ constructor( ) } } } val TileGrid = @Composable { Box { Loading Loading @@ -1245,3 +1254,31 @@ private fun interactionsConfig() = private inline val alwaysCompose get() = Flags.alwaysComposeQsUiFragment() /** * Forces the configuration and themes to be dark theme. This is needed in order to have * [colorResource] retrieve the dark mode colors. * * This should be removed when [notificationShadeBlur] is removed */ @Composable private fun AlwaysDarkMode(content: @Composable () -> Unit) { if (notificationShadeBlur()) { content() } else { val currentConfig = LocalConfiguration.current val darkConfig = Configuration(currentConfig).apply { uiMode = (uiMode and (Configuration.UI_MODE_NIGHT_MASK.inv())) or Configuration.UI_MODE_NIGHT_YES } val newContext = LocalContext.current.createConfigurationContext(darkConfig) CompositionLocalProvider( LocalConfiguration provides darkConfig, LocalContext provides newContext, ) { content() } } } Loading
packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt +47 −10 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.qs.composefragment import android.annotation.SuppressLint import android.content.Context import android.content.res.Configuration import android.graphics.PointF import android.graphics.Rect import android.os.Bundle Loading @@ -35,6 +36,7 @@ import androidx.activity.setViewTreeOnBackPressedDispatcherOwner import androidx.annotation.VisibleForTesting import androidx.compose.animation.core.tween import androidx.compose.foundation.ScrollState import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Arrangement.spacedBy import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column Loading @@ -48,6 +50,7 @@ import androidx.compose.foundation.layout.requiredHeightIn import androidx.compose.foundation.verticalScroll import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue Loading @@ -70,6 +73,8 @@ import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.layout.positionInRoot import androidx.compose.ui.layout.positionOnScreen import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.CustomAccessibilityAction Loading Loading @@ -102,6 +107,7 @@ import com.android.compose.theme.PlatformTheme import com.android.mechanics.GestureContext import com.android.systemui.Dumpable import com.android.systemui.Flags import com.android.systemui.Flags.notificationShadeBlur import com.android.systemui.brightness.ui.compose.BrightnessSliderContainer import com.android.systemui.brightness.ui.compose.ContainerColors import com.android.systemui.compose.modifiers.sysuiResTag Loading Loading @@ -251,7 +257,7 @@ constructor( @Composable private fun Content() { PlatformTheme { PlatformTheme(isDarkTheme = if (notificationShadeBlur()) isSystemInDarkTheme() else true) { ProvideShortcutHelperIndication(interactionsConfig = interactionsConfig()) { // TODO(b/389985793): Make sure that there is no coroutine work or recompositions // happening when alwaysCompose is true but isQsVisibleAndAnyShadeExpanded is false. Loading Loading @@ -759,8 +765,10 @@ constructor( } ) ) { AlwaysDarkMode { BrightnessSliderContainer( viewModel = containerViewModel.brightnessSliderViewModel, viewModel = containerViewModel.brightnessSliderViewModel, containerColors = ContainerColors( Color.Transparent, Loading @@ -770,6 +778,7 @@ constructor( ) } } } val TileGrid = @Composable { Box { Loading Loading @@ -1245,3 +1254,31 @@ private fun interactionsConfig() = private inline val alwaysCompose get() = Flags.alwaysComposeQsUiFragment() /** * Forces the configuration and themes to be dark theme. This is needed in order to have * [colorResource] retrieve the dark mode colors. * * This should be removed when [notificationShadeBlur] is removed */ @Composable private fun AlwaysDarkMode(content: @Composable () -> Unit) { if (notificationShadeBlur()) { content() } else { val currentConfig = LocalConfiguration.current val darkConfig = Configuration(currentConfig).apply { uiMode = (uiMode and (Configuration.UI_MODE_NIGHT_MASK.inv())) or Configuration.UI_MODE_NIGHT_YES } val newContext = LocalContext.current.createConfigurationContext(darkConfig) CompositionLocalProvider( LocalConfiguration provides darkConfig, LocalContext provides newContext, ) { content() } } }