package Ġcom . ny iny i ht un l win . projects . food ah olic . mv vm . view models Ċ Ċ import Ġandroid . arch . lifecycle . Mutable LiveData Ċ import Ġandroid . content . Context Ċ import Ġandroid . databinding . Observable Boolean Ċ import Ġandroid . databinding . Observable Field Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . activities . Me al Details Activity Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . adapters . Me al Re cy Adapter Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . deleg ates . Me al Delegate Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . events . Data Events Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . events . Error Events Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . mv vm . models . Me al Model Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . network . Network Repository Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . utils . App Utils Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . green robot . event bus . Subscribe Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ class ĠCategory Details ViewModel ( ĊĠĠĠ Ġprivate Ġvar Ġcontext Weak Reference : ĠWeak Reference < Context >, ĊĠĠĠ Ġvar Ġcategory Name : ĠString , ĊĠĠĠ Ġvar Ġcategory Image : ĠString , ĊĠĠĠ Ġvar Ġcategory Description : ĠString Ċ ) Ġ: ĠBase ViewModel (), ĠMe al Delegate Ġ{ ĊĊĠĠĠ Ġvar Ġm Response LD : ĠMutable LiveData < List < Me al Model >> Ġ= ĠMutable LiveData () ĊĠĠĠ Ġvar Ġm Error LD : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Adapter : ĠMe al Re cy Adapter ĊĊĠĠĠ Ġvar ĠisLoading Ġ= ĠObservable Boolean () ĊĠĠĠ Ġvar Ġm Category Name Ġ= ĠObservable Field < String >() ĊĠĠĠ Ġvar Ġm Description Ġ= ĠObservable Field < String >() ĊĠĠĠ Ġvar Ġm Image Ġ= ĠObservable Field < String >() ĊĠĠĠ Ġvar Ġm Area Ġ= ĠObservable Field < String >() ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! EventBus . getDefault (). is Registered ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). register ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠMe al Re cy Adapter ( context Weak Reference . get () !! , Ġthis ) ĊĠĠĠĠĠĠĠ Ġstart Loading Me als By Category ( category Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Loading Me als By Category ( category Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠisLoading . set ( true ) ĊĠĠĠĠĠĠĠ Ġif Ġ( App Utils . getInstance (). has Connection ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Repository . getInstance (). start Loading Me als By Category ( category Name ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Error LD . value Ġ= Ġ" No Ġinternet Ġconnection !" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget LayoutManager (): ĠRecyclerView . LayoutManager Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGrid LayoutManager ( context Weak Reference . get () !! , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Adapter (): ĠMe al Re cy Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Has Fixed Size (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart Loading Me als By Category ( category Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonTap Me al ( meal Model : ĠMe al Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Weak Reference . get () !!. startActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMe al Details Activity . new Inst n ace ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Weak Reference . get () !!. application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme al Model . id Me al ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġif Ġ( EventBus . getDefault (). is Registered ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). unregister ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext Weak Reference . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset New Data ( me als : ĠList < Me al Model >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Adapter . set New Data ( me als Ġas ĠMutable List < Me al Model >) ĊĠĠĠĠĠĠĠ Ġm Category Name . set ( category Name ) ĊĠĠĠĠĠĠĠ Ġm Image . set ( category Image ) ĊĠĠĠĠĠĠĠ Ġm Description . set ( category Description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdismiss Loading () Ġ{ ĊĠĠĠĠĠĠĠ ĠisLoading . set ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġfun Ġon Me al Loaded ( events : ĠData Events . Category Me als Loaded Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Response LD . value Ġ= Ġevents . loaded Me als ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġfun Ġon ApiError Loaded ( event : ĠError Events . ApiError Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Error LD . value Ġ= Ġevent . get Msg () ĊĠĠĠ Ġ} Ċ }