package Ġsco oper Ċ Ċ // Ġimport Ġandroidx . compose . desktop . Window Ċ Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . material .* Ċ import Ġandroidx . compose . material . Material Theme . colors Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Composition Local Provider Ċ import Ġandroidx . compose . runtime . composition Local Of Ċ import Ġandroidx . compose . runtime . remember Coroutine Scope Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Experimental Compose Ui Api Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . awt . Compose Window Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . window .* Ċ import Ġkotlinx . coroutines . Internal Cor outines Api Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . k oin . core . context . start K oin Ċ import Ġsco oper . di . view Models Module Ċ import Ġsco oper . framework . navigation . Router Ċ import Ġsco oper . framework . navigation . core . Back Stack Ċ import Ġsco oper . repository . init Db Ċ import Ġsco oper . ui . App Screen Ċ import Ġsco oper . ui . Buckets Screen Ċ import Ġsco oper . ui . MenuBar Ċ import Ġsco oper . ui . theme . S co oper Theme Ċ import Ġsco oper . view models . Apps Side Effect Ċ import Ġsco oper . view models . Apps ViewModel Ċ Ċ sealed Ġclass ĠApp Route Ġ{ ĊĠĠĠ Ġdata Ġclass ĠApps ( val Ġscope : ĠString ) Ġ: ĠApp Route () ĊĠĠĠ Ġobject ĠSpl ash Ġ: ĠApp Route () ĊĠĠĠ Ġobject ĠBucket s Ġ: ĠApp Route () ĊĠĠĠ Ġobject ĠSettings Ġ: ĠApp Route () Ċ } Ċ Ċ val ĠLocal Window Ġ= Ġcomposition Local Of < Compose Window > Ġ{ Ġerror (" Undefined Ġwindow ") Ġ} Ċ Ċ @ Opt In ( Experimental Compose Ui Api :: class ) Ċ fun Ġmain () Ġ= Ġapplication Ġ{ ĊĠĠĠ Ġinit Db () ĊĠĠĠ Ġval Ġk oin App Ġ= Ġstart K oin Ġ{ ĊĠĠĠĠĠĠĠ Ġmodules ( view Models Module ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġstate Ġ= Ġremember Window State ( ĊĠĠĠĠĠĠĠ Ġplacement Ġ= ĠWindow Placement . Floating , ĊĠĠĠĠĠĠĠ Ġsize Ġ= ĠWindow Size ( 9 6 0 . dp , Ġ 6 5 0 . dp ), ĊĠĠĠĠĠĠĠ Ġposition Ġ= ĠWindow Position ( Alignment . Center ) ĊĠĠĠ Ġ) ĊĠĠĠ ĠWindow ( onClose Request Ġ= Ġ:: exit Application , Ġstate , Ġtitle Ġ= Ġ" S co oper ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapps ViewModel Ġ= Ġk oin App . k oin . get < Apps ViewModel >() ĊĠĠĠĠĠĠĠ Ġval Ġscope Ġ= Ġremember Coroutine Scope () ĊĠĠĠĠĠĠĠ Ġval Ġscaffold State Ġ= Ġremember Sca ffold State () ĊĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapps ViewModel . container . side Effect Flow . collect Ġ{ Ġside Effect Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( side Effect ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApps Side Effect . Empty Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" ..... ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApps Side Effect . Toast Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscaffold State . sn ackbar Host State . show Snackbar ( side Effect . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠComp osition Local Provider ( Local Window Ġprovides Ġwindow ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS co oper Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScaffold ( scaffold State Ġ= Ġscaffold State , Ġsn ackbar Host Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar Host ( it ) Ġ{ Ġsn ackbar Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Style Ġ= ĠMaterial Theme . typography . h 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp osition Local Provider ( Local TextStyle Ġprovides Ġtext Style ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= Ġcolors . primary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Color Ġ= Ġcolors . on Primary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( sn ackbar Data . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRouter < App Route >( start Ġ= ĠApp Route . Apps ( scope Ġ= Ġ"")) Ġ{ Ġcurrent Route Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRouter < App Route >( start Ġ= ĠApp Route . Buckets ) Ġ{ Ġcurrent Route Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġroute Ġ= Ġcurrent Route . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApp Route . Apps Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapps ViewModel . reset Filter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Screen ( route . scope ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Route . Buckets Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapps ViewModel . get Buckets () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBucket s Screen () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Route . Settings Ġ-> ĠSetting Screen () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Route . Splash Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Opt In ( Internal Cor outines Api :: class , Ġandroidx . compose . ui . Experimental Compose Ui Api :: class ) Ċ @ Composable Ċ fun ĠLayout ( navigator : ĠBack Stack < App Route >, Ġcontent : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠSurface ( color Ġ= Ġcolors . background ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier . default Min Size ( min Width Ġ= Ġ 8 0 0 . dp , ĠminHeight Ġ= Ġ 5 0 0 . dp ). fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( top Ġ= Ġ 2 . dp , Ġstart Ġ= Ġ 1 . dp , Ġend Ġ= Ġ 1 . dp , Ġbottom Ġ= Ġ 1 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMenu Bar ( navigator ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( Modifier . width ( 4 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠSetting Screen () Ġ{ ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġcontent Alignment Ġ= ĠAlignment . Center , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText (" Settings ") ĊĠĠĠ Ġ} Ċ } Ċ