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 . 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 . Bookmark Re cy Adapter Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . deleg ates . Bookmark Delegate Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . mv vm . models . Bookmark Model Ċ import Ġcom . ny iny i ht un l win . projects . food ah olic . persistence . Local Repository Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ class ĠBook mark ViewModel ( ĊĠĠĠ Ġprivate Ġvar Ġcontext Weak Reference : ĠWeak Reference < Context > Ċ ) Ġ: ĠBase ViewModel (), ĠBook mark Delegate Ġ{ ĊĊĠĠĠ Ġvar Ġm Response LD : ĠMutable LiveData < List < Bookmark Model >> Ġ= ĠMutable LiveData () ĊĠĠĠ Ġvar Ġm Error LD : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Adapter : ĠBook mark Re cy Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! EventBus . getDefault (). is Registered ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). register ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠBook mark Re cy Adapter ( context Weak Reference . get () !! , Ġthis ) ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= ĠLocal Repository . getInstance (). get DB (). bookmark Dao (). get Book marked Me als () ĊĠĠĠĠĠĠĠ Ġif Ġ(! value . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Response LD . value Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Error LD . value Ġ= Ġ" No Ġdata ." ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget LayoutManager (): ĠRecyclerView . LayoutManager Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGrid LayoutManager ( context Weak Reference . get (), Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Adapter (): ĠBook mark Re cy Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Has Fixed Size (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġif Ġ( EventBus . getDefault (). is Registered ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). unregister ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Response LD Ġ= ĠMutable LiveData () ĊĠĠĠĠĠĠĠ Ġm Error LD Ġ= ĠMutable LiveData () ĊĠĠĠĠĠĠĠ Ġcontext Weak Reference . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonTap Me al ( bookmark Model : ĠBook mark Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Weak Reference . get () !!. startActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMe al Details Activity . new Inst n ace ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Weak Reference . get () !!. application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark Model . id Me al ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset New Data ( meal List : ĠList < Bookmark Model >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Adapter . set New Data ( meal List Ġas ĠMutable List < Bookmark Model >) ĊĠĠĠ Ġ} Ċ Ċ }