package Ġcom . e gor iku . bel ar us res istance flag . screen . main Ċ Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . navigation . Nav Type Ċ import Ġandroidx . navigation . compose . Nav Host Ċ import Ġandroidx . navigation . compose . comp osable Ċ import Ġandroidx . navigation . compose . nav Argument Ċ import Ġandroidx . navigation . compose . remember Nav Controller Ċ import Ġcom . e gor iku . bel ar us res istance flag . activity . Flags ViewModel Ċ import Ġcom . e gor iku . bel ar us res istance flag . activity . Root Screen Ċ import Ġcom . e gor iku . bel ar us res istance flag . domain . model . Flag Area Ċ import Ġcom . e gor iku . bel ar us res istance flag . ext . extra NotNull Ċ import Ġcom . e gor iku . bel ar us res istance flag . screen . Detail Screen Ċ import Ġcom . e gor iku . bel ar us res istance flag . screen . flags . Flags Screen Ċ Ċ @ Composable Ċ fun ĠRoot Nav Graph ( ĊĠĠĠ ĠviewModel : ĠFlags ViewModel , ĊĠĠĠ Ġon Url Click : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠ Ġstart Destination : ĠString Ġ= ĠRoot Screen . Main Screen . route Ċ ) Ġ{ ĊĠĠĠ Ġval Ġnav Controller Ġ= Ġremember Nav Controller () ĊĠĠĠ Ġval Ġactions Ġ= Ġremember ( nav Controller ) Ġ{ ĠNavigation Actions ( nav Controller ) Ġ} ĊĊĠĠĠ ĠNav Host ( ĊĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġnav Controller , ĊĠĠĠĠĠĠĠ Ġstart Destination Ġ= Ġstart Destination ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcomp osable ( Root Screen . Main Screen . route ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Url Click Ġ= Ġon Url Click , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Area Ġ= Ġactions . select Flags Area ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcomp osable ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠRoot Screen . Flag Details . route , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠlistOf ( nav Argument (" area Id ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠNav Type . Enum Type ( Flag Area :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġnav Back Stack Entry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarea Ġ= Ġnav Back Stack Entry . extra NotNull < Flag Area >(" area Id ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠFlags Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġarea . title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠviewModel . getBy Area ( area ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Details Ġ= Ġactions . open Flag Detail , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġup Pressed Ġ= Ġactions . up Press ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcomp osable ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠRoot Screen . Full Size Flag . route , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠlistOf ( nav Argument (" id ") Ġ{ Ġtype Ġ= ĠNav Type . Int Type Ġ}) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġnav Back Stack Entry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġnav Back Stack Entry . extra NotNull < Int >(" id ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠDetail Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflag Model Ġ= ĠviewModel . get Flag Id ( id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġup Pressed Ġ= Ġactions . up Press ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }