package Ġcom . the tech sam ur ai . generic list . ui . shopping list Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . the tech sam ur ai . generic list . R Ċ import Ġcom . the tech sam ur ai . generic list . data . db . entities . Shopping Item Ċ import Ġcom . the tech sam ur ai . generic list . other . Shopping Item Adapter Ċ import Ġcom . the tech sam ur ai . generic list . ui . Shopping ViewModel Ċ import Ġkotlinx . android . synt hetic . main . activity _ shopping .* Ċ import Ġorg . kode in . di . android . kode in Ċ import Ġorg . kode in . di . K ode in Aware Ċ import Ġorg . kode in . di . generic . instance Ċ Ċ class ĠShop ping Activity Ġ: ĠAppCompatActivity (), ĠK ode in Aware Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġk ode in Ġby Ġk ode in () ĊĠĠĠ Ġprivate Ġval Ġfactory : ĠShop ping ViewModel Factory Ġby Ġinstance () ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ shopping ) ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= ĠViewModel Provider ( this , Ġfactory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Shopping ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠShop ping Item Adapter ( listOf (), viewModel ) ĊĊĠĠĠĠĠĠĠ Ġrv shopping Items . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġrv shopping Items . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ ĠviewModel . getAll Shopping Items (). observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . items Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġfab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Shopping Item Dialog ( this , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠAdd Dialog Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Add Button Clicked ( item : ĠShop ping Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . upsert ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }