diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt index defccdf3fa..c2c6fb7f80 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt @@ -68,7 +68,7 @@ import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavig import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaTopAppBar import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons import com.google.samples.apps.nowinandroid.core.designsystem.theme.GradientColors -import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalGradientColors +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.feature.settings.SettingsDialog import com.google.samples.apps.nowinandroid.navigation.NiaNavHost import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination @@ -88,7 +88,7 @@ fun NiaApp( NiaBackground(modifier = modifier) { NiaGradientBackground( gradientColors = if (shouldShowGradientBackground) { - LocalGradientColors.current + NiaTheme.gradientColors } else { GradientColors() }, diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt index 9ef52dd765..913b127ec9 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt @@ -36,7 +36,6 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.designsystem.theme.GradientColors import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalBackgroundTheme -import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalGradientColors import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import kotlin.math.tan @@ -52,8 +51,8 @@ fun NiaBackground( modifier: Modifier = Modifier, content: @Composable () -> Unit, ) { - val color = LocalBackgroundTheme.current.color - val tonalElevation = LocalBackgroundTheme.current.tonalElevation + val color = NiaTheme.niaBackground.color + val tonalElevation = NiaTheme.niaBackground.tonalElevation Surface( color = if (color == Color.Unspecified) Color.Transparent else color, tonalElevation = if (tonalElevation == Dp.Unspecified) 0.dp else tonalElevation, @@ -76,7 +75,7 @@ fun NiaBackground( @Composable fun NiaGradientBackground( modifier: Modifier = Modifier, - gradientColors: GradientColors = LocalGradientColors.current, + gradientColors: GradientColors = NiaTheme.gradientColors, content: @Composable () -> Unit, ) { val currentTopColor by rememberUpdatedState(gradientColors.top) diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Background.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Background.kt index e75758ea8e..747ef2ad92 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Background.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Background.kt @@ -33,4 +33,4 @@ data class BackgroundTheme( /** * A composition local for [BackgroundTheme]. */ -val LocalBackgroundTheme = staticCompositionLocalOf { BackgroundTheme() } +internal val LocalBackgroundTheme = staticCompositionLocalOf { BackgroundTheme() } diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Gradient.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Gradient.kt index bad1c62a19..b775165573 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Gradient.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Gradient.kt @@ -37,4 +37,4 @@ data class GradientColors( /** * A composition local for [GradientColors]. */ -val LocalGradientColors = staticCompositionLocalOf { GradientColors() } +internal val LocalGradientColors = staticCompositionLocalOf { GradientColors() } diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Theme.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Theme.kt index 582f884734..7585ead4a0 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Theme.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Theme.kt @@ -20,7 +20,9 @@ import android.os.Build import androidx.annotation.ChecksSdkIntAtLeast import androidx.annotation.VisibleForTesting import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.ColorScheme import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Typography import androidx.compose.material3.darkColorScheme import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme @@ -28,6 +30,7 @@ import androidx.compose.material3.lightColorScheme import androidx.compose.material3.surfaceColorAtElevation import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp @@ -246,5 +249,34 @@ fun NiaTheme( } } + @ChecksSdkIntAtLeast(api = Build.VERSION_CODES.S) fun supportsDynamicTheming() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S + +object NiaTheme { + + val gradientColors: GradientColors + @Composable + @ReadOnlyComposable + get() = LocalGradientColors.current + + val niaBackground: BackgroundTheme + @Composable + @ReadOnlyComposable + get() = LocalBackgroundTheme.current + + val tintTheme: TintTheme + @Composable + @ReadOnlyComposable + get() = LocalTintTheme.current + + val colorScheme: ColorScheme + @Composable + @ReadOnlyComposable + get() = MaterialTheme.colorScheme + + val typography: Typography + @Composable + @ReadOnlyComposable + get() = MaterialTheme.typography +} diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Tint.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Tint.kt index 75ab3a8f67..d18ce131cc 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Tint.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/theme/Tint.kt @@ -31,4 +31,4 @@ data class TintTheme( /** * A composition local for [TintTheme]. */ -val LocalTintTheme = staticCompositionLocalOf { TintTheme() } +internal val LocalTintTheme = staticCompositionLocalOf { TintTheme() } diff --git a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt index 0b7b9f570d..f1c1f0c70f 100644 --- a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt +++ b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt @@ -27,7 +27,6 @@ import androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope import androidx.compose.foundation.lazy.staggeredgrid.LazyVerticalStaggeredGrid import androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells import androidx.compose.foundation.lazy.staggeredgrid.items -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.toArgb @@ -61,7 +60,7 @@ fun LazyStaggeredGridScope.newsFeed( ) { userNewsResource -> val context = LocalContext.current val analyticsHelper = LocalAnalyticsHelper.current - val backgroundColor = MaterialTheme.colorScheme.background.toArgb() + val backgroundColor = NiaTheme.colorScheme.background.toArgb() NewsResourceCardExpanded( userNewsResource = userNewsResource, diff --git a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt b/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt index 7c229c5ea5..71e82c4157 100644 --- a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt +++ b/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt @@ -64,7 +64,6 @@ import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaLoadi import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.DraggableScrollbar import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.rememberDraggableScroller import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.scrollbarState -import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalTintTheme import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState @@ -225,7 +224,7 @@ private fun EmptyState(modifier: Modifier = Modifier) { verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ) { - val iconTint = LocalTintTheme.current.iconTint + val iconTint = NiaTheme.tintTheme.iconTint Image( modifier = Modifier.fillMaxWidth(), painter = painterResource(id = R.drawable.feature_bookmarks_img_empty_bookmarks),