package Ġhu . k rist of . n agy . hi ke book client . view . groups Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġhu . k rist of . n agy . hi ke book client . R Ċ import Ġhu . k rist of . n agy . hi ke book client . data . network . handle Result Ċ import Ġhu . k rist of . n agy . hi ke book client . databinding . Fragment Groups Binding Ċ import Ġhu . k rist of . n agy . hi ke book client . util . catch And Show Illegal State And Argument Ċ import Ġhu . k rist of . n agy . hi ke book client . util . handle Offline Ċ import Ġhu . k rist of . n agy . hi ke book client . util . show Generic Error Or Ċ import Ġhu . k rist of . n agy . hi ke book client . view . help . Help Fragment Directions Ċ import Ġhu . k rist of . n agy . hi ke book client . view . help . Help RequestType Ċ import Ġhu . k rist of . n agy . hi ke book client . view . Text Dialog Fragment Ċ import Ġhu . k rist of . n agy . hi ke book client . viewModel . groups . Groups ViewModel Ċ Ċ /** Ċ Ġ* ĠA ĠFragment Ġthat Ġhas Ġ 2 Ġtabs : Ċ Ġ* Ġone Ġto Ġdisplay Ġa Ġlist Ġof Ġgroups Ġwhich Ġthe Ġuser Ġhas Ġnot Ġjoined , Ċ Ġ* Ġand Ġone Ġwhich Ġthe Ġuser Ġhas Ġjoined . Ċ Ġ* ĠIt Ġhas Ġa Ġbutton Ġwith Ġwhich Ġthe Ġuser Ġcan Ġcreate Ġa Ġgroup . Ċ Ġ*/ Ċ @ Android EntryPoint Ċ class ĠGroups Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠFragment Groups Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel : ĠGroups ViewModel Ġby Ġview Models () ĊĊĠĠĠĠĠĠĠ Ġsetup Observer ( viewModel ) ĊĊĠĠĠĠĠĠĠ Ġsetup Group Creation ( viewModel , Ġbinding ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsections Pager Adapter Ġ= ĠSe ctions Pager Adapter ( require Context (), Ġchild FragmentManager ) ĊĠĠĠĠĠĠĠ Ġval Ġview Pager : ĠView Pager Ġ= Ġbinding . groups ViewPager ĊĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= Ġsections Pager Adapter ĊĠĠĠĠĠĠĠ Ġval Ġtabs : ĠTab Layout Ġ= Ġbinding . groups Tab Layout ĊĠĠĠĠĠĠĠ Ġtabs . setup With ViewPager ( view Pager ) ĊĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Observer ( viewModel : ĠGroups ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . create Res . observe ( view Lifecycle Owner ) Ġ{ Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! viewModel . create Finished ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Result ( require Context (), Ġres ) Ġ{ Ġcreate Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Generic Error Or ( context , Ġcreate Res , Ġ" C sop ort Ġs ik eres en ĠlÃ©tre hoz va !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . create Finished Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Group Creation ( ĊĠĠĠĠĠĠĠ ĠviewModel : ĠGroups ViewModel , ĊĠĠĠĠĠĠĠ Ġbinding : ĠFragment Groups Binding ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Fragment Ġ= ĠText Dialog Fragment . instance Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . groups _ create _ dialog _ text , ĠR . string . groups _ create _ dialog _ hint _ text ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdialog Fragment . text . observe ( view Lifecycle Owner ) Ġ{ Ġname Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch And Show Illegal State And Argument ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . create Group ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . groups Group Create Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Offline ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Fragment . show ( parent FragmentManager , Ġ" group Ġcreate ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( item . itemId Ġ== ĠR . id . help MenuItem ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Type Ġ= ĠHelp RequestType . GROUP S ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirections Ġ= ĠHelp Fragment Directions . action Global Help Fragment ( request Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( directions ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }