package Ġcom . andro . ind ie . school . poke dex . ui . navigation Ċ Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . h ilt . navigation . H ilt ViewModel Factory Ċ import Ġandroidx . lifecycle . view model . compose . viewModel Ċ import Ġandroidx . navigation . Nav Controller Ċ 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 . navigate Ċ import Ġandroidx . navigation . compose . remember Nav Controller Ċ import Ġcom . andro . ind ie . school . poke dex . presentation . detail . Detail ViewModel Ċ import Ġcom . andro . ind ie . school . poke dex . presentation . detail . component . Detail Screen Ċ import Ġcom . andro . ind ie . school . poke dex . presentation . home . Home ViewModel Ċ import Ġcom . andro . ind ie . school . poke dex . presentation . home . component . Home Screen Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġher is ul ist i yan to Ġon Ġ 0 6 / 0 3 / 2 1 . Ċ Ġ* ĠK jo ken K od ding er Ċ Ġ*/ Ċ Ċ @ Composable Ċ fun ĠNav Graph ( ĊĠĠĠ Ġstart Destination : ĠString Ġ= ĠScreen Route . Home Screen . route Ċ ) Ġ{ ĊĊĠĠĠ Ġval Ġnav Controller Ġ= Ġremember Nav Controller () ĊĠĠĠ Ġval Ġaction Ġ= Ġremember ( nav Controller ) Ġ{ ĠMain Action ( nav Controller ) Ġ} ĊĊĠĠĠ Ġ// ĠRegister ĠScreen ĊĠĠĠ ĠNav Host ( ĊĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġnav Controller , ĊĠĠĠĠĠĠĠ Ġstart Destination Ġ= Ġstart Destination ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠHome ĊĠĠĠĠĠĠĠ Ġcomp osable ( Screen Route . Home Screen . route ) Ġ{ Ġnav Back Stack Entry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠviewModel Factory Ġ= ĠH ilt ViewModel Factory ( Local Context . current , Ġnav Back Stack Entry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= ĠviewModel < Home ViewModel >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠScreen Route . Home Screen . route , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfactory Ġ= ĠviewModel Factory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHome Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠviewModel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Navigate Detail Ġ= Ġnav Controller :: navigate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠDetail ĊĠĠĠĠĠĠĠ Ġcomp osable ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠScreen Route . Detail Screen . route Ġ+ Ġ"/ { pokemon Id }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Argument (" pokemon Id ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠNav Type . StringType ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġnav Back Stack Entry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠviewModel Factory Ġ= ĠH ilt ViewModel Factory ( Local Context . current , Ġnav Back Stack Entry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= ĠviewModel < Detail ViewModel >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠScreen Route . Detail Screen . route , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfactory Ġ= ĠviewModel Factory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDetail Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠviewModel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon Id Ġ= Ġnav Back Stack Entry . arguments ?. getString (" pokemon Id "). or Empty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠMain Action ( nav Controller : ĠNav Controller ) Ġ{ ĊĠĠĠ Ġval Ġup Press : Ġ() Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġnav Controller . navigate Up () ĊĠĠĠ Ġ} Ċ }