package Ġcom . d re amp rogram ming r . paging 3 app . view Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . d re amp rogram ming r . paging 3 app . R Ċ import Ġcom . d re amp rogram ming r . paging 3 app . model . Product Bean Ċ import Ġcom . d re amp rogram ming r . paging 3 app . view model . Main ViewModel Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . launch Ċ Ċ @ Suppress (" DE PREC ATION ") Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġmain ViewModel : Main ViewModel ĊĊĠĠĠ Ġlateinit Ġvar Ġproduct Paging Adapter Ġ: ĠProduct Paging Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġmain ViewModel Ġ= ĠViewModel Providers . of ( this ). get ( Main ViewModel :: class . java ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġcreate Fake Data () ĊĠĠĠĠĠĠĠ Ġproduct Paging Adapter Ġ= ĠProduct Paging Adapter () ĊĠĠĠĠĠĠĠ Ġrv Product List . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġrv Product List . adapter Ġ= Ġproduct Paging Adapter ĊĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain ViewModel . product List . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Paging Adapter . submit Data ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Fake Data (){ ĊĠĠĠĠĠĠĠ ĠGlobal Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 2 0 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain ViewModel . save ( Product Bean (_ id Ġ= Ġi , product Name Ġ= Ġ" name Ġ Ġ$ i ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }