package Ġhu . k rist of . n agy . hi ke book client . view . groups . detail Ċ Ċ 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 . core . os . bundle Of Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ 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 . 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 Detail List Binding Ċ import Ġhu . k rist of . n agy . hi ke book client . model . Route Type Ċ 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 . 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 . viewModel . groups . Groups Detail List ViewModel Ċ import Ġhu . k rist of . n agy . hi ke book client . viewModel . groups . Groups Detail Map ViewModel Ċ Ċ /** Ċ Ġ* ĠA ĠFragment Ġto Ġdisplay Ġthe Ġroutes Ġof Ġa Ġgroup Ġin Ġa Ġlist . Ċ Ġ* ĠA Ġlist Ġitem Ġconsists Ġof Ġthe Ġroute 's Ġname , Ġand Ġ 3 Ġbuttons : Ċ Ġ* Ġone Ġto Ġedit Ġand Ġone Ġto Ġdelete Ġthe Ġgiven Ġroute , Ġand Ċ Ġ* Ġone Ġto Ġadd Ġthe Ġroute Ġto Ġthe Ġuser 's Ġmap . Ċ Ġ*/ Ċ @ Android EntryPoint Ċ class ĠGroups Detail List Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠFragment Groups Detail List Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmap ViewModel : ĠGroups Detail Map ViewModel Ġby Ġactivity ViewModels () ĊĠĠĠĠĠĠĠ Ġval Ġlist ViewModel : ĠGroups Detail List ViewModel Ġby Ġview Models () ĊĠĠĠĠĠĠĠ Ġval ĠgroupName Ġ= Ġrequire Arguments (). getString ( Constants . GROUP _ NAME _ B UNDLE _ KEY ) !! ĊĠĠĠĠĠĠĠ Ġval Ġis Connected Page Ġ= Ġrequire Arguments (). getBoolean ( Constants . IS _ CONNECTED _ PAGE _ B UNDLE _ KEY ) !! ĊĊĠĠĠĠĠĠĠ Ġsetup Observer s ( map ViewModel , Ġlist ViewModel , ĠgroupName ) ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġinit Adapter ( map ViewModel , Ġlist ViewModel , ĠgroupName , Ġis Connected Page ) ĊĠĠĠĠĠĠĠ Ġbinding . groups Detail List RecyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġmap ViewModel . routes . observe ( view Lifecycle Owner ) Ġ{ Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Result ( context , Ġres ) Ġ{ Ġroutes Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit List ( routes . map Ġ{ Ġit . route Name Ġ}. to Mutable List ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Observer s ( ĊĠĠĠĠĠĠĠ Ġmap ViewModel : ĠGroups Detail Map ViewModel , ĊĠĠĠĠĠĠĠ Ġlist ViewModel : ĠGroups Detail List ViewModel , ĊĠĠĠĠĠĠĠ ĠgroupName : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( list ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Res . observe ( view Lifecycle Owner ) Ġ{ Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! list ViewModel . delete Finished ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Result ( context , Ġres ) Ġ{ Ġdelete Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Generic Error Or ( context , Ġdelete Res ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" A ĠtÃ¶ rl Ã©s Ġs ik eres !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Offline Load ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap ViewModel . load Routes Of Group ( groupName ) Ġ// Ġrefresh ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ViewModel . delete Finished Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠaddTo My Map Res . observe ( view Lifecycle Owner ) Ġ{ Ġres Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! list ViewModel . addTo My Map Finished ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Result ( context , Ġres ) Ġ{ ĠaddTo My Map Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Generic Error Or ( context , ĠaddTo My Map Res , Ġ" A Ġho zz Ã¡ ad Ã¡s Ġs ik eres !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ViewModel . addTo My Map Finished Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Adapter ( ĊĠĠĠĠĠĠĠ Ġmap ViewModel : ĠGroups Detail Map ViewModel , ĊĠĠĠĠĠĠĠ Ġlist ViewModel : ĠGroups Detail List ViewModel , ĊĠĠĠĠĠĠĠ ĠgroupName : ĠString , ĊĠĠĠĠĠĠĠ Ġis Connected Page : ĠBoolean ĊĠĠĠ Ġ) Ġ= ĠGroups Detail ListAdapter ( Groups Detail List ClickListener ( ĊĠĠĠĠĠĠĠ Ġedit Listener Ġ= Ġ{ Ġroute Name Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirections Ġ= ĠGroups Detail Fragment Directions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. action Groups Detail Fragment To Route Edit Fragment ( Route Type . GROUP , ĠgroupName , Ġroute Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( directions ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Listener Ġ= Ġ{ Ġroute Name Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Offline ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ViewModel . delete Group Route ( groupName , Ġroute Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ ĠaddTo My Map Listener Ġ= Ġ{ Ġroute Name Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Offline ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroute Ġ= Ġmap ViewModel . get Route ( route Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ViewModel . addTo My Map ( route ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ), Ġis Connected Page ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( item . itemId Ġ== ĠR . id . help MenuItem ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Type Ġ= ĠHelp RequestType . GROUP S _ DETAIL _ LIST ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirections Ġ= ĠHelp Fragment Directions . action Global Help Fragment ( request Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( directions ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( groupName : ĠString , Ġis Connected Page : ĠBoolean ): ĠGroups Detail List Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠGroups Detail List Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= Ġbundle Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . GROUP _ NAME _ B UNDLE _ KEY Ġto ĠgroupName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . IS _ CONNECTED _ PAGE _ B UNDLE _ KEY Ġto Ġis Connected Page ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }