package Ġcom . th om ask io ko . st arg az ers . settings . ui Ċ Ċ import Ġandroidx . compose . foundation . layout . Arrange ment Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Padding Values Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . material . Content Alpha Ċ import Ġandroidx . compose . material . Divider Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . Local Content Alpha Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . material . Switch Ċ import Ġandroidx . compose . material . Switch Defaults Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . Top AppBar Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Arrow Back Ċ import Ġandroidx . compose . material . primary Surface Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Composition Local Provider Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . compose . ui . res . p ainter Resource Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . navigation . Nav Host Controller Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . components . AppBar Image Vector Icon Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . theme . St arg azer Theme Ċ import Ġcom . th om ask io ko . st arg az ers . settings . R ĊĊ Ċ @ Composable Ċ internal Ġfun ĠSettings Screen ( ĊĠĠĠ ĠviewModel : ĠSettings ViewModel , ĊĠĠĠ Ġnav Controller : ĠNav Host Controller Ċ ) Ġ{ ĊĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTop AppBar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ{ ĠRow Ġ{ ĠText ( text Ġ= Ġstring Resource ( R . string . title _ settings )) Ġ} Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Icon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Bar Image Vector Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠIcons . Filled . Arrow Back , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Action Ġ= Ġ{ Ġnav Controller . navigate Up () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠMaterial Theme . colors . primary Surface ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ{ Ġinner Padding Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Theme Changed Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . dispatch Action ( Settings Actions . Update Theme ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( inner Padding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ Ċ } Ċ Ċ @ Composable Ċ fun ĠSettings List ( ĊĠĠĠ Ġon Theme Changed : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier Ċ ) Ġ{ ĊĠĠĠ ĠLazy Column ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠ Ġcontent Padding Ġ= ĠPadding Values ( start Ġ= Ġ 2 . dp , Ġend Ġ= Ġ 1 6 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Settings Item ( on Theme Changed ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAbout Settings Item () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠTheme Settings Item ( ĊĠĠĠ Ġon Theme Changed : Ġ( String ) Ġ-> ĠUnit , Ċ ) Ġ{ ĊĊĠĠĠ Ġvar Ġchecked State Ġby Ġremember Ġ{ Ġmutable State Of ( false ) Ġ} ĊĊĠĠĠ ĠSetting Header Title ( ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġstring Resource ( R . string . settings _ title _ ui ), ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( start Ġ= Ġ 1 6 . dp , Ġtop Ġ= Ġ 1 6 . dp ) ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 1 6 . dp ), ĊĠĠĠĠĠĠĠ Ġvertical Alignment Ġ= ĠAlignment . Center Vert ically , ĊĠĠĠĠĠĠĠ Ġhorizontal Arrange ment Ġ= ĠArrange ment . Space Between ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSettings Image ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable Id Ġ= ĠR . drawable . ic _ palette _ 2 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( end Ġ= Ġ 1 6 . dp ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( end Ġ= Ġ 8 . dp , Ġbottom Ġ= Ġ 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. weight ( 1 f ), ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetting Title ( string Resource ( R . string . settings _ title _ theme _ dark )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetting Description ( string Resource ( R . string . settings _ theme _ description )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= ĠLocal Context . current . resources ĊĊĠĠĠĠĠĠĠ ĠSwitch ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġchecked State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Checked Change Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked State Ġ= Ġit ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġon Theme Changed ( resources . getString ( R . string . pref _ theme _ dark _ value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġon Theme Changed ( resources . getString ( R . string . pref _ theme _ light _ value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠSwitch Defaults . colors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Thumb Color Ġ= ĠMaterial Theme . colors . secondary Variant , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Track Color Ġ= ĠMaterial Theme . colors . secondary Variant , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠSetting List Divider () Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠAbout Settings Item () Ġ{ ĊĊĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 1 6 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠSetting Header Title ( title Ġ= Ġstring Resource ( R . string . settings _ title _ info )) ĊĊĠĠĠĠĠĠĠ ĠSetting Title ( title Ġ= Ġstring Resource ( R . string . settings _ title _ about )) ĊĊĠĠĠĠĠĠĠ ĠSetting Description ( description Ġ= Ġstring Resource ( R . string . settings _ about _ description )) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠSetting List Divider () Ċ } Ċ Ċ @ Composable Ċ fun ĠSetting Header Title ( title : ĠString , Ġmodifier : ĠModifier Ġ= ĠModifier ) Ġ{ ĊĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġtitle , ĊĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . body 2 . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . secondary ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( bottom Ġ= Ġ 8 . dp ), ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠSettings Image ( drawable Id : ĠInt , Ġmodifier : ĠModifier Ġ= ĠModifier ) Ġ{ ĊĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( drawable Id ), ĊĠĠĠĠĠĠĠ Ġt int Ġ= ĠMaterial Theme . colors . primary , ĊĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 2 8 . dp ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠSetting Title ( title : ĠString ) Ġ{ ĊĠĠĠ ĠText ( title , Ġstyle Ġ= ĠMaterial Theme . typography . subtitle 1 ) Ċ } Ċ Ċ @ Composable Ċ fun ĠSetting Description ( description : ĠString ) Ġ{ ĊĠĠĠ ĠComp osition Local Provider ( Local Content Alpha Ġprovides ĠContent Alpha . medium ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText ( description , Ġstyle Ġ= ĠMaterial Theme . typography . body 2 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠFull - width Ġdivider Ġwith Ġpadding Ġfor Ġsettings Ġitems Ċ Ġ*/ Ċ @ Composable Ċ private Ġfun ĠSetting List Divider () Ġ{ ĊĠĠĠ ĠDiv ider ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( horizontal Ġ= Ġ 1 4 . dp ), ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . on Surface . copy ( alpha Ġ= Ġ 0 . 0 8 f ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Preview (" Settings ĠList ") Ċ @ Composable Ċ fun ĠSettings Property Preview () Ġ{ ĊĠĠĠ ĠSt arg azer Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠSettings List ( on Theme Changed Ġ= Ġ{}) ĊĠĠĠ Ġ} Ċ } Ċ