package Ġarch . extensions Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Nav Directions Ċ import Ġandroidx . navigation . Nav Options Ċ import Ġarch . event . Navigation Event Ċ import Ġarch . event . Navigation Graph Event Ċ import Ġarch . utils . safe Let Ċ import Ġcz . step ans on sky . mv vm . Build Config Ċ Ċ fun ĠNav Controller . safe Navigate ( nav Event : ĠNavigation Event ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( nav Event . res Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate ( nav Event . res Id !! , Ġnav Event . nav Args , Ġnav Event . nav Options ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( nav Event . nav Directions Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate ( nav Event . nav Directions !! , Ġnav Event . nav Options ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( it : ĠThrowable ){ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠNav Controller . safe Navigate (@ Id Res Ġres Id : ĠInt , Ġargs : ĠBundle ? Ġ= Ġnull , Ġnav Options : ĠNav Options ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigate ( res Id , Ġargs , Ġnav Options ) ĊĠĠĠ Ġ} Ġcatch Ġ( it : ĠThrowable ){ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ fun ĠNav Controller . safe Navigate ( directions : ĠNav Directions , Ġnav Options : ĠNav Options ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigate ( directions , Ġnav Options ) ĊĠĠĠ Ġ} Ġcatch Ġ( it : ĠThrowable ){ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠNav Controller . set Navigation Graph ( nav Event : ĠNavigation Graph Event ) Ġ{ ĊĠĠĠ Ġsafe Let ( nav Event . nav Graph Id , Ġnav Event . nav Start Destination Id ) Ġ{ Ġgraph Id , Ġstart Nav Id Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġgraph Ġ= Ġnav Inflater . inflate ( graph Id ) ĊĠĠĠĠĠĠĠ Ġgraph . start Destination Ġ= Ġstart Nav Id ĊĠĠĠĠĠĠĠ Ġset Graph ( graph ) ĊĠĠĠ Ġ} Ċ } Ċ