package Ġcom . s ailer . core . base . view Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . annotation . Navigation Res Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ import Ġandroidx . view binding . View Binding Ċ import Ġcom . s ailer . core . base . view model . Base ViewModel Ċ import Ġcom . s ailer . core . navigation . Coordinator Ċ import Ġcom . s ailer . core . navigation . Coordinator Host Ċ import Ġcom . s ailer . core . navigation . Start Destination Ċ import Ġcom . s ailer . core . view state . View Action Ċ import Ġcom . s ailer . core . view state . View Event Ċ import Ġcom . s ailer . core . view state . ViewState Ċ Ċ /** Ċ Ġ* ĠTo Ġsupport Ġchild Ġcoord in ators / flows Ġin Ġa Ġsingle Ġactivity Ġsetup . Ċ Ġ* ĠCreated Ġby ĠAh med ĠA bd - El me ged Ġon Ġ 6 / 2 9 / 2 0 . Ċ Ġ*/ Ċ abstract Ġclass ĠBase Host Fragment < VS Ġ: ĠView State , ĊĠĠĠĠĠĠĠ ĠV E Ġ: ĠView Event , ĊĠĠĠĠĠĠĠ ĠVA Ġ: ĠView Action , ĊĠĠĠĠĠĠĠ ĠVM Ġ: ĠBase ViewModel < VS , ĠV E , ĠVA >, ĊĠĠĠĠĠĠĠ ĠVB Ġ: ĠView Binding , ĊĠĠĠĠĠĠĠ ĠC Ġ: ĠCoord inator ĊĠĠĠĠĠĠĠ Ġ> Ġ: ĠBase Fragment < VS , ĠV E , ĠVA , ĠVM , ĠVB >(), ĠCoord inator Host < C > Ġ{ ĊĊĠĠĠ Ġ@ get : Navigation Res ĊĠĠĠ Ġabstract Ġval Ġgraph : ĠInt ĊĊĠĠĠ Ġ@ get : Id Res ĊĠĠĠ Ġabstract Ġval Ġnav Host Id : ĠInt ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġcoord inator . activity Ġ= Ġrequire Activity () ĊĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= Ġchild FragmentManager . find Fragment ById ( nav Host Id ) Ġas ĠNav Host Fragment ĊĠĠĠĠĠĠĠ Ġcoord inator . nav Controller Ġ= Ġhost . nav Controller ĊĠĠĠĠĠĠĠ Ġcoord inator . nav Host Fragment Ġ= Ġhost ĊĊĠĠĠĠĠĠĠ Ġif Ġ( coordinator . nav Controller ?. current Destination Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Navigation Graph ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraph Id Ġ= Ġgraph , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhost Ġ= Ġhost , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Destination Ġ= Ġcoord inator . onStart () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Navigation Graph ( ĊĠĠĠĠĠĠĠ Ġ@ Navigation Res Ġgraph Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġhost : ĠNav Host Fragment , ĊĠĠĠĠĠĠĠ Ġstart Destination : ĠStart Destination ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= Ġhost . nav Controller . nav Inflater ĊĠĠĠĠĠĠĠ Ġval Ġgraph Ġ= Ġinflater . inflate ( graph Id ) ĊĠĠĠĠĠĠĠ Ġgraph . start Destination Ġ= Ġstart Destination . destination ĊĠĠĠĠĠĠĠ Ġhost . nav Controller . set Graph ( graph , Ġstart Destination . args ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġcoord inator . clear () ĊĠĠĠ Ġ} Ċ }