package Ġir . nc box . example Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . widget . Toast Ċ import Ġir . nc box . example . adapter . Users Adapter Ċ import Ġir . nc box . example . cell . User Ċ import Ġir . nc box . example . util . Logger Ċ import Ġir . nc box . lib ar ary . lis eners . On Refresh Listener Ċ import Ġir . nc box . lib ar ary . lis eners . On Scroll End Listener Ċ import Ġir . nc box . lib ar ary . util . Swipe To Dismiss Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . network _ error _ message . view .* Ċ import Ġjava . util .* ĊĊ Ċ class ĠMainActivity Ġ: ĠActivity (), ĠOn Refresh Listener , ĠOn Scroll End Listener , ĠSw ipe To Dismiss . Swipe to Dismiss CallBack Ġ{ ĊĊĊĠĠĠ Ġval Ġusers Collection Ġ= ĠArrayList < HashMap < String , ĠString >>() ĊĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠ Ġval Ġadapter Ġ= ĠUsers Adapter ( this ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĊĠĠĠĠĠĠĠ Ġfill Collection () ĊĊĠĠĠĠĠĠĠ Ġlist Mode Setup () ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġlist Mode Setup () Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . setLayout Manager ( layout Manager ) ĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . setAdapter ( adapter ) ĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . on Refresh Listener Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . scroll End Listener Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . set Footer Loading View ( R . layout . footer _ loading ) ĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . set To Right Swipe Item ( R . drawable . ic _ delete _ grey _ 6 0 0 _ 3 6 dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this , ĠR . color . red _ light ), Ġthis ) ĊĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . show Content Loading () ĊĊĊĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġshow Network ErrorMessage () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv _ advance _ list . show Content Message ( resources . getString ( R . string . network _ error ), ĠR . drawable . ic _ wifi _ grey _ 6 0 0 _ 4 8 dp ) ĊĊĠĠĠĠĠĠĠ Ġ}, Ġ 1 5 0 0 ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Network ErrorMessage () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . show Content Message ( R . layout . network _ error _ message ) ĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . getContent Message View () !!. ll _ try _ again . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv _ advance _ list . show Content Loading () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . data Ġ= Ġget Test Users ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrv _ advance _ list . show List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 5 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Test Users ( count : ĠInt ): ĠArrayList < User > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġusers Ġ= ĠArrayList < User >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġ 0 .. count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Ġ= ĠRandom (). nextInt ( users Collection . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Data Ġ= Ġusers Collection [ random ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠUser ( random Data [" name "], Ġrandom Data [" job "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusers . add ( user ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġusers ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfill Collection () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġuser 1 Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġuser 1 [" name "] Ġ= Ġ" Bill ĠG ates " ĊĠĠĠĠĠĠĠ Ġuser 1 [" job "] Ġ= Ġ" Microsoft ĠLeader " ĊĊĊĠĠĠĠĠĠĠ Ġval Ġuser 2 Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġuser 2 [" name "] Ġ= Ġ" Ste ve ĠJobs " ĊĠĠĠĠĠĠĠ Ġuser 2 [" job "] Ġ= Ġ" Apple ĠLeader " ĊĊĊĠĠĠĠĠĠĠ Ġval Ġuser 3 Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġuser 3 [" name "] Ġ= Ġ" Re za ĠMas ou di " ĊĠĠĠĠĠĠĠ Ġuser 3 [" job "] Ġ= Ġ" NC BOX ĠLeader " ĊĊĠĠĠĠĠĠĠ Ġusers Collection . add ( user 1 ) ĊĠĠĠĠĠĠĠ Ġusers Collection . add ( user 2 ) ĊĠĠĠĠĠĠĠ Ġusers Collection . add ( user 3 ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġon Ġpage Ġrefresh ĊĠĠĠ Ġoverride Ġfun Ġon Refresh () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( adapter . data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . data . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . data Ġ= Ġget Test Users ( Random (). nextInt ( 1 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv _ advance _ list . cancel Refresh ing () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv _ advance _ list . show List () ĊĊĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġon Ġpage Ġscroll Ġend ĊĠĠĠ Ġoverride Ġfun Ġon End Page () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . pause End less Listener () ĊĊĠĠĠĠĠĠĠ ĠLogger . i (" On ĠPage ĠEnd ...") ĊĊĠĠĠĠĠĠĠ Ġrv _ advance _ list . show Footer Loading () ĊĊĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . data . addAll ( getTest Users ( Random (). nextInt ( 1 3 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv _ advance _ list . cancel Footer Loading () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv _ advance _ list . start End less Listener () ĊĊĠĠĠĠĠĠĠ Ġ}, Ġ 2 0 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sw ip ed To Right ( view Holder : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠviewHolder . adapter Position ĊĠĠĠĠĠĠĠ Ġadapter . data !!. remove At ( position ) ĊĠĠĠĠĠĠĠ Ġadapter . notify Item Removed ( position ) ĊĠĠĠĠĠĠĠ Ġadapter . notify Item Range Changed ( position , Ġadapter . data !!. size ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sw ip ed To Left ( view Holder : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠ Ġ} Ċ Ċ } Ċ