package Ġcom . jes en . cod . git app kotlin . view . widget Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . support . design . widget . Navigation View Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . view . MenuItem Ċ import Ġcom . jes en . cod . common . log . logger Ċ import Ġcom . jes en . cod . git app kotlin . R Ċ import Ġcom . jes en . cod . git app kotlin . entities . User 2 Ċ import Ġcom . jes en . cod . git app kotlin . model . account . Account Manager Ċ import Ġcom . jes en . cod . git app kotlin . setting . Settings Ċ import Ġcom . jes en . cod . git app kotlin . utils . load With G lide Ċ import Ġcom . jes en . cod . git app kotlin . view . config . Nav View Item Ċ import Ġdo On Layout Available Ċ import Ġkotlinx . android . synt hetic . main . nav _ header _ main . view .* Ċ import Ġorg . jetbrains . ank o . Android Ċ import Ġorg . jetbrains . ank o . image Resource Ċ import Ġorg . jetbrains . ank o . sdk 1 5 . listeners . onClick Ċ import Ġselect Item Ċ Ċ class ĠNavigation Controller ( ĊĠĠĠ Ġprivate Ġval Ġnavigation View : ĠNavigation View , ĊĠĠĠ Ġprivate Ġval Ġon Nav Item Changed : Ġ( Nav View Item ) Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Header Click : Ġ() Ġ-> ĠUnit Ċ ) Ġ: ĠNavigation View . On Navigation ItemSelected Listener Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation View . set Navigation ItemSelected Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġcurrent Item : ĠNav View Item ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Navigation ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation View . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . last Page Ġ= Ġitem . itemId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnav Item Ġ= ĠNav View Item [ item . itemId ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Nav Item Changed ( nav Item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġuse Login Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation View . menu . clear () ĊĠĠĠĠĠĠĠ Ġnavigation View . inflate Menu ( R . menu . activity _ main _ drawer ) ĊĠĠĠĠĠĠĠ ĠonUpdate ( Account Manager . currentUser ) ĊĠĠĠĠĠĠĠ Ġselect Pro per Item () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġuse No Login Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation View . menu . clear () ĊĠĠĠĠĠĠĠ Ġnavigation View . inflate Menu ( R . menu . activity _ main _ drawer _ no _ logged _ in ) ĊĠĠĠĠĠĠĠ ĠonUpdate ( Account Manager . currentUser ) ĊĠĠĠĠĠĠĠ Ġselect Pro per Item () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonUpdate ( user : ĠUser 2 ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation View . do On Layout Available Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation View . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername View . text Ġ= Ġuser ?. login Ġ?: Ġ" Login Ġin " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail View . text Ġ= Ġuser ?. email Ġ?: Ġ" email " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar View . image Resource Ġ= ĠR . drawable . ic _ github ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar View . load With G lide ( user . avatar _ url , Ġuser . login . first ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Header . onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Header Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġselect Pro per Item () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" select Pro per Item Ġon Layout : Ġ$ currentItem ") ĊĠĠĠĠĠĠĠ Ġval Ġpage Ġ= Ġcurrent Item ?. let Ġ{ ĠNav View Item [ it ] Ġ} Ġ?: ĠSettings . last Page ĊĊĠĠĠĠĠĠĠ Ġ( page . take If Ġ{ Ġnavigation View . menu . find Item ( it ) Ġ!= Ġnull Ġ} Ġ?: Ġkotlin . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . default Page ĊĠĠĠĠĠĠĠ Ġ}). let ( navigation View :: select Item ) ĊĠĠĠ Ġ} Ċ }