package Ġcom . tiny fish . j eek alarm . edit čĊč Ċ import Ġandroidx . compose . foundation . layout . Column č Ċ import Ġandroidx . compose . foundation . layout . padding č Ċ import Ġandroidx . compose . foundation . remember Scroll State č Ċ import Ġandroidx . compose . foundation . vertical Scroll č Ċ import Ġandroidx . compose . material . Material Theme č Ċ import Ġandroidx . compose . material . Slider č Ċ import Ġandroidx . compose . material . Surface č Ċ import Ġandroidx . compose . material . Text č Ċ import Ġandroidx . compose . runtime .* č Ċ import Ġandroidx . compose . ui . Modifier č Ċ import Ġandroidx . compose . ui . graphics . vector . Image Vector č Ċ import Ġandroidx . compose . ui . res . vector Resource č Ċ import Ġandroidx . compose . ui . unit . dp č Ċ import Ġcom . tiny fish . j eek alarm . R č Ċ import Ġcom . tiny fish . j eek alarm . schedule . Schedule č Ċ import Ġcom . tiny fish . j eek alarm . schedule . Schedule Service č Ċ import Ġcom . tiny fish . j eek alarm . start . App č Ċ import Ġcom . tiny fish . j eek alarm . start . Screen Type č Ċ import Ġcom . tiny fish . ui .* č Ċ import Ġjava . util .* čĊč Ċ private Ġlateinit Ġvar Ġediting Schedule : ĠSchedule č Ċ private Ġvar Ġis Adding Ġ= Ġfalse čĊč Ċ @ Composable č Ċ fun ĠEdit Screen () Ġ{ čĊĠĠĠ Ġis Adding Ġ= ĠApp . edit Schedule Id Ġ== Ġ- 1 čĊĠĠĠ Ġediting Schedule Ġ= čĊĠĠĠĠĠĠĠ Ġif Ġ( is Adding ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule () čĊĠĠĠĠĠĠĠ Ġelse čĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Service . schedule List . filter Ġ{ Ġit . id Ġ== ĠApp . edit Schedule Id Ġ} [ 0 ] čĊč Ċ // ĠĠĠ ĠScaffold ( č Ċ // ĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĠMy Top Bar ( R . drawable . ic _ edit , Ġif Ġ( is Adding ) Ġ" Add " Ġelse Ġ" Edit ") Ġ}, č Ċ // ĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ{ č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠSurface ( č Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . background , č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ č Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditor () č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} č Ċ // ĠĠĠĠĠĠĠ Ġ}, č Ċ // ĠĠĠĠĠĠĠ Ġbottom Bar Ġ= Ġ{ ĠBottom Bar () Ġ} č Ċ // ĠĠĠ Ġ) čĊčĊĠĠĠ ĠColumn Ġ{ čĊĠĠĠĠĠĠĠ ĠMy Top Bar ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ edit , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Adding ) Ġ" Add " Ġelse Ġ" Edit " čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ ĠSurface ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . background , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . weight ( 1 f , Ġtrue ) čĊĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ ĠBottom Bar () čĊĠĠĠ Ġ} č Ċ } čĊč Ċ @ Composable č Ċ private Ġfun ĠEditor () Ġ{ čĊĠĠĠ ĠColumn ( čĊĠĠĠĠĠĠĠ ĠModifier čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 1 5 . dp , Ġend Ġ= Ġ 1 5 . dp ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. vertical Scroll ( remember Scroll State ()) čĊĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠ ĠHeight Spacer () čĊčĊĠĠĠĠĠĠĠ ĠMy GroupBox Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠOb serve Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp . edit Enabled Change Trigger čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Switch (" Enabled ", Ġediting Schedule :: enabled ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Switch (" Only ĠOnce ", Ġediting Schedule :: only Once ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ ĠHeight Spacer () čĊčĊĠĠĠĠĠĠĠ ĠMy GroupBox Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠonChange Ġ= Ġ{ Ġ_: ĠString Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! editing Schedule . enabled ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . enabled Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp . edit Enabled Change Trigger ++ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ron Time TextField ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Name : Ġ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule :: name , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ron Time TextField ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Hour : Ġ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule :: hour Config , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ron Time TextField ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Minute : Ġ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule :: minute Config , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ron Time TextField ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Week Day : Ġ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule :: week Day Config , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ron Time TextField ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Month : Ġ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule :: month Config , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ron Time TextField ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Day : Ġ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule :: day Config , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ron Time TextField ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Year : Ġ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule :: year Config , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ ĠHeight Spacer () čĊčĊĠĠĠĠĠĠĠ ĠMy GroupBox Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠOb serve Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplay Scope Ġ= Ġcurrent Re compose Scope čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Switch ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhint Ġ= Ġ" Play ĠMusic :", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboolean Prop Ġ= Ġediting Schedule :: play Music , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Checked Change Ġ= Ġ{ Ġplay Scope . invalidate () Ġ}) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( editing Schedule . play Music ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( Modifier . padding ( start Ġ= Ġ 2 0 . dp )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOb serve Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Select Scope Ġ= Ġcurrent Re compose Scope čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy File Selector (" Music ĠFile :", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . music File , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSelect Ġ= Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Selector . open Music File Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . music File Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . path ?. substring After (': ') !! čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Select Scope . invalidate () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Clear Ġ= Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . music File Ġ= Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Select Scope . invalidate () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOb serve Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Select Scope Ġ= Ġcurrent Re compose Scope čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy File Selector (" Music ĠFolder :", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . music Folder , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSelect Ġ= Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Selector . open Folder Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . music Folder Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . path ?. substring After (': ') !! čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Select Scope . invalidate () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Clear Ġ= Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . music Folder Ġ= Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Select Scope . invalidate () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOb serve Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvi br ation Scope Ġ= Ġcurrent Re compose Scope čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Switch ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" V ibration ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule :: vi br ation , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Checked Change Ġ= Ġ{ Ġvi br ation Scope . invalidate () Ġ}) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( editing Schedule . vi br ation ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġvi br ation Count Ġby Ġremember Ġ{ Ġmutable State Of ( editing Schedule . vi br ation Count . toFloat ()) Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvi br ation Count . toInt (). toString () Ġ+ Ġ" Ġtimes ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( start Ġ= Ġ 2 0 . dp ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSlider ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvi br ation Count , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvi br ation Count Ġ= Ġit čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . vi br ation Count Ġ= Ġvi br ation Count . toInt () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvi br ation Scope . invalidate () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( start Ġ= Ġ 2 0 . dp , Ġend Ġ= Ġ 2 0 . dp ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsteps Ġ= Ġ 3 0 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Range Ġ= Ġ 1 f .. 3 0 f , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ ĠHeight Spacer () čĊĠĠĠ Ġ} č Ċ } čĊč Ċ @ Composable č Ċ fun ĠBottom Bar () Ġ{ čĊĠĠĠ ĠMy Bottom Bar Ġ{ čĊĠĠĠĠĠĠĠ ĠSimple Vector Button ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Vector . vector Resource ( R . drawable . ic _ back ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Adding ) Ġ" Add " Ġelse Ġ" Back " čĊĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Edit Screen Press Back () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( is Adding ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠTool Button Width Spacer () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Vector Button ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Vector . vector Resource ( R . drawable . ic _ cancel ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cancel " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp . screen Ġ= ĠScreen Type . HOME čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ ĠTool Button Width Spacer () čĊĠĠĠĠĠĠĠ ĠSimple Vector Button ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Vector . vector Resource ( R . drawable . ic _ access _ time ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Now " čĊĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . getInstance (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . minute Config Ġ= Ġget ( Calendar . MINUTE ). toString () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . hour Config Ġ= Ġget ( Calendar . HOUR _ OF _ DAY ). toString () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . day Config Ġ= Ġget ( Calendar . DAY _ OF _ MONTH ). toString () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . month Config Ġ= Ġ( get ( Calendar . MONTH ) Ġ+ Ġ 1 ). toString () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . year Config Ġ= Ġ( get ( Calendar . YEAR )). toString () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp . edit Time Config Changed ++ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ ĠTool Button Width Spacer () čĊĠĠĠĠĠĠĠ ĠOb serve Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġif Ġ( App . is Playing ) Ġ" Stop " Ġelse Ġ" Play " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠonClick Ġ= Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App . is Playing ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Service . stop Playing () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġediting Schedule . play () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App . is Playing ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Vector Button ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Vector . vector Resource ( R . drawable . ic _ stop ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Vector Button ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Vector . vector Resource ( R . drawable . ic _ play _ arrow ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊč Ċ fun Ġon Edit Screen Press Back () Ġ{ čĊĠĠĠ Ġediting Schedule . time Config Changed () čĊĠĠĠ Ġif Ġ( is Adding ) Ġ{ čĊĠĠĠĠĠĠĠ Ġediting Schedule . id Ġ= ĠSchedule Service . next Schedule Id ++ čĊĠĠĠĠĠĠĠ ĠSchedule Service . schedule List . add ( editing Schedule ) čĊĠĠĠ Ġ} čĊĠĠĠ ĠSchedule Service . sort () čĊĠĠĠ ĠSchedule Service . save () čĊčĊĠĠĠ ĠSchedule Service . stop Playing () čĊĠĠĠ ĠApp . screen Ġ= ĠScreen Type . HOME č Ċ } čĊ