package Ġcom . gor rot ow i . cert 1 0 5 Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠMain ViewModel Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( this ). get ( Main ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ ĠsetUp Listeners () ĊĠĠĠĠĠĠĠ ĠsetUp Observable s () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Observable s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . name . observe ( this , ĠObserver Ġ{ Ġname Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Name ?. text Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . books List . observe ( this , ĠObserver Ġ{ Ġlist Books Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Books ", Ġ"${ list Books ?. map Ġ{ Ġit . toString () Ġ}} ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn GetName ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġed txt Name ?. text ?. toString () Ġ?: Ġ"" Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . setName ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . add Book ( name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn Get Books ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . get Books By Flow () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . get Books () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }