package Ġcom . constant in . micro flux . ui . fragment Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . constant in . micro flux . R Ċ import Ġcom . constant in . micro flux . databinding . Fragment Navigation Bottom sheet Binding Ċ import Ġcom . constant in . micro flux . module . Navigation ViewModel Ċ import Ġcom . constant in . micro flux . module . State Ċ import Ġcom . constant in . micro flux . module . View model Factory Ċ import Ġcom . constant in . micro flux . util . Binding Bottom Sheet Dialog Fragment Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠBottom Navigation Drawer Fragment () Ġ: ĊĠĠĠ ĠBinding Bottom Sheet Dialog Fragment < Fragment Navigation Bottom sheet Binding >( ĊĠĠĠĠĠĠĠ ĠFragment Navigation Bottom sheet Binding :: inflate ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠView model Factory ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview model : ĠNavigation ViewModel ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġview model Ġ= ĠviewModel Factory . create ( State . Navigation ) Ġas ĠNavigation ViewModel ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Binding Created ( ĊĠĠĠĠĠĠĠ Ġbinding : ĠFragment Navigation Bottom sheet Binding , ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattach Current Account () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattach Account Selection Button () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattach Navigation () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFragment Navigation Bottom sheet Binding . attach Current Account () Ġ{ ĊĠĠĠĠĠĠĠ Ġview model . current Account . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername . text Ġ= ĠuserName . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Url . text Ġ= Ġserver Url . url ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFragment Navigation Bottom sheet Binding . attach Account Selection Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġroot . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Navigation Drawer Fragment Directions . action Bottom Navigation Drawer Fragment To Account Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFragment Navigation Bottom sheet Binding . attach Navigation () Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation View . set Navigation ItemSelected Listener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ all Ġ-> ĠBottom Navigation Drawer Fragment Directions . action Bottom Navigation Drawer Fragment To Entry Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ feeds Ġ-> ĠBottom Navigation Drawer Fragment Directions . action Bottom Navigation Drawer Fragment To Feed Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠBottom Navigation Drawer Fragment Directions . action Bottom Navigation Drawer Fragment To Category Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }