package Ġru . a as mc . p unch line Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . ray w ender lich . android . p unch line . databinding . Activity Main Binding Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠMain ViewModel Ġby ĠviewModel () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Main Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . state . observe ( this , Ġ{ Ġui Model Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender ( ui Model ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . get Jo ke () ĊĊĠĠĠĠĠĠĠ Ġbinding . button New Jo ke . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . get Jo ke () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrender ( ui Model : ĠUi Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ui Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUi Model . Success Ġ-> Ġshow Jo ke ( ui Model . jo ke ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUi Model . Error Ġ-> Ġshow Error ( ui Model . error ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Jo ke ( jo ke : ĠJo ke ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . text Jo ke . text Ġ= Ġjo ke . jo ke ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Error ( error : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġerror , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} Ċ } ĊĊ