package Ġcom . ch ir ag . rand omp e ople carousel test . ui . activities Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ch ir ag . rand omp e ople carousel test . R Ċ import Ġcom . ch ir ag . rand omp e ople carousel test . model . User Ċ import Ġcom . ch ir ag . rand omp e ople carousel test . ui . adapter . F avour ite People Adapter Ċ import Ġcom . ch ir ag . rand omp e ople carousel test . view model . F avour ite ViewModel Ċ import Ġcom . ch ir ag . rand omp e ople carousel test . view model . F avour ite ViewModel Factory Ċ import Ġcom . mind ork s . but ter kn if elite . B utter Kn ife Lite Ċ import Ġcom . mind ork s . but ter kn if elite . annotations . BindView Ċ Ċ // Activity Ġto Ġdisplay Ġfavour ite Ġpeople Ġlist Ġfrom Ġdatabase Ċ class ĠF avour ite People Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ@ BindView ( R . id . progress Bar ) ĊĠĠĠ Ġlateinit Ġvar ĠprogressBar : ĠProgress Bar ĊĊĠĠĠ Ġ@ BindView ( R . id . fav our ite _ people _ rv ) ĊĠĠĠ Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĊĠĠĠ Ġ@ BindView ( R . id . no _ fav our ite _ people ) ĊĠĠĠ Ġlateinit Ġvar Ġno F avour ite People : ĠTextView ĊĊĊĠĠĠ Ġprivate Ġval Ġfavour ite ViewModel : ĠF avour ite ViewModel Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( this , ĠF avour ite ViewModel Factory ( application Context )). get ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF avour ite ViewModel :: class . java ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfavour ite People Adapter : ĠF avour ite People Adapter ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ fav our ite _ people ) ĊĠĠĠĠĠĠĠ ĠB utter Kn ife Lite . bind ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Create ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Post Create ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġget F avour ite People List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget F avour ite People List () Ġ{ ĊĠĠĠĠĠĠĠ Ġre cyclerView . addItem Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDiv ider Item Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDiv ider Item Decoration . VERTICAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġshow ProgressBar () ĊĠĠĠĠĠĠĠ Ġ// Ob serve ĠF avour ite Ġpeople Ġlist Ġfrom ĠDatabase ĊĠĠĠĠĠĠĠ Ġfavour ite ViewModel . get ListOf F avour ite People ()?. observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno F avour ite People . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfavour ite People Adapter Ġ= ĠF avour ite People Adapter ( it ) Ġ{ Ġit 1 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon User Selected ( it 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġfavour ite People Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno F avour ite People . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide ProgressBar () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Change Ġprogress bar Ġvisibility Ġand Ġdisable Ġscreen Ġtouch ĊĠĠĠ Ġprivate Ġfun Ġshow ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġwindow ?. set Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ NOT _ TO UCH ABLE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ NOT _ TO UCH ABLE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Change Ġprogress bar Ġvisibility Ġand Ġenable Ġscreen Ġtouch ĊĠĠĠ Ġprivate Ġfun Ġhide ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġwindow ?. clear Flags ( WindowManager . LayoutParams . FLAG _ NOT _ TO UCH ABLE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Override Ġinterface Ġmethod Ġon ĠUser Ġtab Ġfrom Ġlist ĊĠĠĠ Ġprivate Ġfun Ġon User Selected ( user : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" TAG ", Ġ" Selected Ġuser Ġ: Ġ${ user . name . first }") ĊĠĠĠĠĠĠĠ Ġval Ġprofile View Intent Ġ= ĠIntent ( this , ĠProfile View Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġprofile View Intent . putExtra (" user ", Ġuser ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( profile View Intent ) ĊĠĠĠ Ġ} Ċ }