package Ġcom . l ud ens . android App . navigation . router Ċ Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġcom . l ud ens . android App . R Ċ import Ġcom . l ud ens . android App . navigation . extensions . in Transaction Ċ import Ġcom . l ud ens . android App . screen . dashboard . Dashboard Fragment Ċ import Ġcom . l ud ens . android App . screen . main . MainActivity Ċ import Ġcom . l ud ens . android App . screen . signup . SignUp Activity Ċ import Ġcom . l ud ens . android App . screen . start . Start Activity Ċ Ċ @ Id Res Ċ val ĠMAIN _ CONTAINER Ġ= ĠR . id . main _ container Ċ Ċ class ĠRouter Impl ( ĊĠĠĠ Ġprivate Ġval Ġactivity : ĠAppCompatActivity , ĊĠĠĠ Ġfragment Manager : ĠFragment Manager , ĊĠĠĠ Ġclose able Router Context : ĠClose able Router Context Ċ ) Ġ: ĠClose able Router ( fragment Manager , Ġclose able Router Context ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġshow Start () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . startActivity ( Start Activity . create Intent ( activity )) ĊĠĠĠĠĠĠĠ Ġactivity . finish Affinity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow SignUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . startActivity ( SignUp Activity . create Intent ( activity )) ĊĠĠĠĠĠĠĠ Ġactivity . finish Affinity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Dashboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ! is ĠMainActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity ( MainActivity . create Intent ( activity )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish Affinity () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager . in Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( MAIN _ CONTAINER , ĠDashboard Fragment . newInstance (), ĠDashboard Fragment . TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgo Back () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( fragment Manager . back Stack Entry Count Ġ> Ġ 0 ) Ġfragment Manager . pop Back Stack Immediate () ĊĠĠĠĠĠĠĠ Ġelse Ġactivity . finish () ĊĠĠĠ Ġ} Ċ } Ċ