@@ -12,12 +12,23 @@ import com.softartdev.theme.pref.ThemeEnum
1212import com.softartdev.theme.pref.ThemePrefs
1313import com.softartdev.theme.pref.rememberPreferenceHelper
1414
15+ /* *
16+ * [ThemePrefs] implementation for Material (v1) theming.
17+ * Provides [colors] that switch based on [ThemeEnum] (light/dark/system).
18+ *
19+ * @param preferenceHelper Backing storage for the selected theme.
20+ * @param darkColorPalette Colors used when dark theme is active. Defaults to [darkColors].
21+ * @param lightColorPalette Colors used when light theme is active. Defaults to [lightColors].
22+ */
1523public class MaterialThemePrefs (
1624 preferenceHelper : PreferenceHelper ,
1725 private val darkColorPalette : Colors = darkColors(),
1826 private val lightColorPalette : Colors = lightColors()
1927) : ThemePrefs(preferenceHelper) {
2028
29+ /* *
30+ * Current [Colors] based on [ThemeEnum]. For [ThemeEnum.SystemDefault], follows system dark/light.
31+ */
2132 public val colors: Colors
2233 @Composable
2334 @ReadOnlyComposable
@@ -28,20 +39,34 @@ public class MaterialThemePrefs(
2839 }
2940}
3041
42+ /* *
43+ * Returns [Colors] when this [ThemePrefs] is a [MaterialThemePrefs]; use inside Material theme scope.
44+ */
3145public val ThemePrefs .colors: Colors
3246 @Composable
3347 @ReadOnlyComposable
3448 get() {
3549 val materialThemePrefs = this as MaterialThemePrefs
36- return materialThemePrefs.colors
37- }
50+ return materialThemePrefs.colors
51+ }
3852
53+ /* *
54+ * Returns a [MaterialThemePrefs] remembered across recompositions using default [rememberPreferenceHelper].
55+ */
3956@Composable
4057public fun rememberThemePrefs (): MaterialThemePrefs {
4158 val preferenceHelper = rememberPreferenceHelper()
4259 return remember { MaterialThemePrefs (preferenceHelper) }
4360}
4461
62+ /* *
63+ * Returns a [MaterialThemePrefs] with the given [PreferenceHelper] and color palettes.
64+ *
65+ * @param preferHelper Backing storage for theme preference.
66+ * @param darkColorPalette Colors for dark theme.
67+ * @param lightColorPalette Colors for light theme.
68+ * @return Remembered [MaterialThemePrefs] instance.
69+ */
4570@Composable
4671public fun rememberThemePrefs (
4772 preferHelper : PreferenceHelper = rememberPreferenceHelper(),
0 commit comments