package Ġcom . leon . app . watch list . fragments ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . widget . Swipe Refresh Layout Ċ import Ġandroid . support . v 7 . widget . Default Item Animator Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . leon . app . watch list .* Ċ import Ġcom . leon . app . watch list . activities . MainActivity Ċ import Ġcom . leon . app . watch list . adapter . Movie Flat Adapter Ċ import Ġcom . leon . app . watch list . model . List Ċ import Ġio . realm . Realm Ċ import Ġio . realm . Realm Results Ċ import Ġkotlin . properties . Deleg ates Ċ import Ġio . realm . Realm Configuration ĊĊĊĊ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ*/ Ċ class ĠMy List Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġval ĠTAG : ĠString Ġ= ĠMy List Fragment :: class . simple Name !! ĊĊĠĠĠ Ġvar Ġrealm : ĠRealm Ġby ĠDeleg ates . notNull () ĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠMovie Flat Adapter ĊĠĠĠ Ġlateinit Ġvar Ġrefresh Layout : ĠSw ipe Refresh Layout ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetUser Visible Hint ( isVisible To User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUser Visible Hint ( isVisible To User ) ĊĠĠĠĠĠĠĠ Ġif Ġ( isVisible To User ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġupdate UI from Realm () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġuser Visible Hint Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġinflater !!. inflate ( R . layout . fragment _ my _ list , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠMovie Flat Adapter ( activity Ġas ĠMainActivity ) ĊĠĠĠĠĠĠĠ Ġrefresh Layout Ġ= ĠSw ipe Refresh Layout ( activity Ġas ĠMainActivity ) ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= Ġroot View . findViewById ( R . id . re cyclerView ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġrefresh Layout Ġ= Ġroot View . findViewById ( R . id . refresh Container ) Ġas ĠSw ipe Refresh Layout ĊĊĠĠĠĠĠĠĠ Ġval Ġquery Adapter Ġ= ĠQuery Adapter ( activity Ġas ĠMainActivity ) ĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġrealm ĊĊĊĊĠĠĠĠĠĠĠ Ġrealm Ġ= ĠRealm Controller ( activity Ġas ĠMainActivity ). realm ĊĠĠĠĠĠĠĠ Ġrealm . refresh () ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġup Ġre cycler Ġview ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠMovie Flat Adapter ( activity Ġas ĠMainActivity ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġre cyclerView . item Animator Ġ= ĠDefault Item Animator () ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( activity ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġup Ġrefresh Ġlistener ĊĠĠĠĠĠĠĠ Ġrefresh Layout . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠBus . observe < Details Loaded >(). subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" Movie ĠTag line Ġloaded ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify Item Changed ( adapter . data Manager . indexOf ( it . movie )) ĊĠĠĠĠĠĠĠ Ġ}. register In Bus ( this ) ĊĠĠĠĠĠĠĠ ĠBus . observe < Movie Event Add >(). subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . movie . e volution Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Adapter . get Detail ( it . movie . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . add ( it . movie ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . movie . e volution Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . remove Movie ( it . movie ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. register In Bus ( this ) ĊĠĠĠĠĠĠĠ ĠBus . observe < Movie Event Remove >(). subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . movie . e volution Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . remove Movie ( it . movie ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . movie . e volution Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . add ( it . movie ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}. register In Bus ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġload Ġdata Ġfrom Ġhttps :// api . the mov ied b . org / 3 ĊĠĠĠĠĠĠĠ Ġupdate UI from Realm () ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ ĠBus . unregister ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġupdates Ġthe Ġre cycler Ġview Ġwith Ġthe Ġdata Ġfrom Ġthe Ġrealm ĊĠĠĠ Ġprivate Ġfun Ġupdate UI from Realm () Ġ{ ĊĠĠĠĠĠĠ Ġval Ġresults : ĠRealm Results < List > Ġ= Ġrealm . where ( List :: class . java ). equalTo (" id ", Ġ 2 Ġas ĠInt ). findAll () ĊĠĠĠĠĠĠĠ Ġif Ġ( results . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠ Ġadapter . addData ( results [ 0 ] !!. results ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrefresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ