package Ġorg . ro bin . app . expense tracker Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġorg . ro bin . app . expense tracker . adapter . Category Adapter Ċ import Ġorg . ro bin . app . expense tracker . databinding . Fragment Category List Binding Ċ import Ġorg . ro bin . app . expense tracker . view model . Category List ViewModel Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ author ĠRob in ĠSh i Ċ Ġ* Ġ@ since Ġ 5 / 0 8 / 2 1 Ċ Ġ*/ Ċ @ Android EntryPoint Ċ class ĠCategory List Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC ATEG ORY _ ARGUMENT _ KEY Ġ= Ġ" category _ name _ key " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠREQUEST _ KEY Ġ= Ġ" Category List Fragment _ REQUEST _ KEY " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Category List Binding ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠCategory List ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Category List Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġsetup Category List () ĊĠĠĠĠĠĠĠ Ġsetup Click Listeners () ĊĠĠĠĠĠĠĠ Ġshow Back Button () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Back Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġ( require Activity () Ġas ĠMainActivity ). support ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Click Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . btn Add . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġ" TODO : Ġadd Ġnew Ġcategory ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Category List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠCategory Adapter () ĊĠĠĠĠĠĠĠ Ġbinding . rv Category List . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġsubscribe Ui ( adapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe Ui ( adapter : ĠCategory Adapter ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . category List . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit List ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate Up () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} Ċ }