package Ġcom . example . android dev challenge . ui . theme Ċ Ċ import Ġandroidx . compose . animation . animate Color As State Ċ import Ġandroidx . compose . animation . core . Tween Spec Ċ import Ġandroidx . compose . foundation . is System In Dark Theme Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . runtime . Stable Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ Ċ import Ġandroidx . compose . runtime . composition Local Of Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Composition Local Provider Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġdev . chr is ban es . ac comp an ist . in sets . Provide Window Insets Ċ Ċ @ Stable Ċ class ĠMy Colors ( ĊĠĠĠ Ġmain Background : ĠColor , ĊĠĠĠ Ġtime Background : ĠColor , ĊĠĠĠ Ġtime Text : ĠColor , Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġmain Background : ĠColor Ġby Ġmutable State Of ( main Background ) ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġtime Background : ĠColor Ġby Ġmutable State Of ( time Background ) ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġtime Text : ĠColor Ġby Ġmutable State Of ( time Text ) ĊĠĠĠĠĠĠĠ Ġprivate Ġset Ċ } Ċ Ċ private Ġval ĠLocal My Colors Ġ= Ġcomposition Local Of Ġ{ ĊĠĠĠ ĠLight Color Palette Ċ } Ċ Ċ @ Stable Ċ object ĠMy Theme Ġ{ ĊĠĠĠ Ġval Ġcolors : ĠMy Colors ĊĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠLocal My Colors . current Ċ } Ċ Ċ private Ġval ĠDark Color Palette Ġ= ĠMy Colors ( ĊĠĠĠ Ġmain Background Ġ= Ġmain _ dark , ĊĠĠĠ Ġtime Background Ġ= ĠBACK GROUND _ COLOR _ DARK , ĊĠĠĠ Ġtime Text Ġ= ĠTEXT _ COLOR _ DARK Ċ ) Ċ Ċ private Ġval ĠLight Color Palette Ġ= ĠMy Colors ( ĊĠĠĠ Ġmain Background Ġ= Ġmain _ dark , ĊĠĠĠ Ġtime Background Ġ= ĠBACK GROUND _ COLOR _ DARK , ĊĠĠĠ Ġtime Text Ġ= ĠTEXT _ COLOR _ DARK Ċ Ċ ) Ċ Ċ @ Composable Ċ fun ĠMy Theme ( dark Theme : ĠBoolean Ġ= Ġis System In Dark Theme (), Ġcontent : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġtarget Colors Ġ= Ġif Ġ( dark Theme ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDark Color Palette ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠLight Color Palette ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmain Background Ġ= Ġanimate Color As State ( target Colors . main Background , ĠT ween Spec ( 6 0 0 )) ĊĠĠĠ Ġval Ġtime Background Ġ= Ġanimate Color As State ( target Colors . time Background , ĠT ween Spec ( 6 0 0 )) ĊĠĠĠ Ġval Ġtime Text Ġ= Ġanimate Color As State ( target Colors . time Text , ĠT ween Spec ( 6 0 0 )) ĊĊĠĠĠ Ġval Ġcolors Ġ= ĠMy Colors ( ĊĠĠĠĠĠĠĠ Ġmain Background Ġ= Ġmain Background . value , ĊĠĠĠĠĠĠĠ Ġtime Background Ġ= Ġtime Background . value , ĊĠĠĠĠĠĠĠ Ġtime Text Ġ= Ġtime Text . value , ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠComp osition Local Provider ( Local My Colors Ġprovides Ġcolors ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMaterial Theme ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshapes Ġ= Ġshapes ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProvide Window Insets ( content Ġ= Ġcontent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ