package Ġcom . think up . sample easy Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . think up . easy page d list . core . Filter Manager Ċ import Ġcom . think up . easy page d list . core . Paged ViewModel Ċ import Ġcom . think up . easy page d list . core . Renderer DataSource Ċ import Ġkotlinx . android . synt hetic . main . activity _ page d _ list .* Ċ import Ġorg . k oin . android . view model . ext . android . viewModel Ċ Ċ class ĠP aged List Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpage d : ĠP aged ViewModel < Sample DataSource > Ġby ĠviewModel () ĊĠĠĠ Ġprivate Ġval Ġfilter Manager Ġ= ĠFilters () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ page d _ list ) ĊĊĠĠĠĠĠĠĠ Ġprepare Refresh () ĊĠĠĠĠĠĠĠ Ġprepare List () ĊĠĠĠĠĠĠĠ Ġinit State () ĊĠĠĠĠĠĠĠ Ġinit List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit State () Ġ{ ĊĠĠĠĠĠĠĠ Ġpage d . init State ( this ) Ġ{ Ġempty , Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( empty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRenderer DataSource . State . ERROR Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Error ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRenderer DataSource . State . DONE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" No Ġitems ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit List () Ġ{ ĊĠĠĠĠĠĠĠ Ġpage d . init List ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Refresh . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare List () Ġ{ ĊĠĠĠĠĠĠĠ Ġsample List . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġpage d . add Render ers ( Sample Renderer ()) ĊĠĠĠĠĠĠĠ Ġpage d . set Footer Layout ( R . layout . footer _ loading , ĠR . layout . footer _ error ) ĊĠĠĠĠĠĠĠ Ġpage d . attach To RecyclerView ( sample List ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġsample Refresh . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġsample Refresh . setColor Scheme Resources ( R . color . color Primary ) ĊĠĠĠĠĠĠĠ Ġsample Refresh . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage d . update Filter ( filter Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// page d . refresh () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠFilters : ĠFilter Manager < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtext Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Filter (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtext ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Filter ( new : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġnew ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ