package Ġhu . k rist of . n agy . hi ke book client . view . group hi ke Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . os . bundle Of Ċ 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 Ġ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 Group Hi ke List Binding Ċ import Ġhu . k rist of . n agy . hi ke book client . util . Constants Ċ 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 . handle Offline Load Ċ 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 . viewModel . group hi ke . Group Hi ke List ViewModel Ċ Ċ /** Ċ Ġ* ĠA ĠFragment Ġto Ġdisplay Ġa Ġlist Ġof Ġgroup Ġh ikes . Ċ Ġ* ĠA Ġlist Ġitem Ġconsists Ġof Ċ Ġ* Ġthe Ġgroup Ġhi ke 's Ġname , Ġdate , Ġand Ċ Ġ* Ġit Ġalso Ġhas Ġa Ġbutton Ġwith Ġwhich Ġthe Ġuser Ċ Ġ* Ġcan Ġjoin Ġor Ġleave Ġthe Ġgiven Ġgroup Ġhi ke . Ċ Ġ*/ Ċ @ Android EntryPoint Ċ class ĠGroup Hi ke List Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠGroup Hi ke List ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠFragment Group Hi ke List Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Observer ( viewModel ) ĊĊĠĠĠĠĠĠĠ Ġval Ġis Connected Page Ġ= Ġarguments ?. getBoolean ( Constants . IS _ CONNECTED _ PAGE _ B UNDLE _ KEY ) !! ĊĊĠĠĠĠĠĠĠ Ġsetup Load ( isConnected Page , ĠviewModel , Ġbinding ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Observer ( viewModel : ĠGroup Hi ke List ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . general Connect Res . observe ( view Lifecycle Owner ) Ġ{ Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Result ( context , Ġres ) Ġ{ Ġgeneral Connect Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! viewModel . general Connect Finished ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Generic Error Or ( context , Ġgeneral Connect Res ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Connected Page Ġ= Ġarguments ?. getBoolean ( Constants . IS _ CONNECTED _ PAGE _ B UNDLE _ KEY ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isConnected Page ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" A Ġle cs atl ako z Ã¡s Ġs ik eres !", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" A Ġcs atl ako z Ã¡s Ġs ik eres !", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Offline Load ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . list Group H ikes ( isConnected Page ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . general Connect Finished Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Load ( ĊĠĠĠĠĠĠĠ Ġis Connected Page : ĠBoolean , ĊĠĠĠĠĠĠĠ ĠviewModel : ĠGroup Hi ke List ViewModel , ĊĠĠĠĠĠĠĠ Ġbinding : ĠFragment Group Hi ke List Binding ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup List ( isConnected Page , ĠviewModel , Ġbinding ) ĊĠĠĠĠĠĠĠ Ġhandle Offline Load ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . list Group H ikes ( isConnected Page ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup List ( ĊĠĠĠĠĠĠĠ Ġis Connected Page : ĠBoolean , ĊĠĠĠĠĠĠĠ ĠviewModel : ĠGroup Hi ke List ViewModel , ĊĠĠĠĠĠĠĠ Ġbinding : ĠFragment Group Hi ke List Binding ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠGroup Hi ke ListAdapter ( isConnected Page , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGroup Hi ke ClickListener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgeneral Connect Listener Ġ= Ġ{ Ġgroup Hi ke Name , ĠdateTime Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Offline ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . general Connect ( group Hi ke Name , Ġis Connected Page , ĠdateTime ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetail Nav Listener Ġ= Ġ{ Ġgroup Hi ke Name , ĠdateTime Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirections Ġ= ĠGroup Hi ke Fragment Directions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. action Group Hi ke Fragment To Group Hi ke Detail Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Hi ke Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Connected Page , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdateTime ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( directions ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġbinding . group Hi ke List RecyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ ĠviewModel . group H ikes . observe ( view Lifecycle Owner ) Ġ{ Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Result ( context , Ġres ) Ġ{ Ġgroup H ikes Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit List ( group H ikes . to Mutable List ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġval Ġis Connected Page Ġ= Ġarguments ?. getBoolean ( Constants . IS _ CONNECTED _ PAGE _ B UNDLE _ KEY ) !! ĊĠĠĠĠĠĠĠ Ġhandle Offline Load ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . list Group H ikes ( isConnected Page ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( isConnected Page : ĠBoolean ): ĠGroup Hi ke List Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠGroup Hi ke List Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= Ġbundle Of ( Constants . IS _ CONNECTED _ PAGE _ B UNDLE _ KEY Ġto Ġis Connected Page ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }