package Ġcom . aos . app . ui . origin Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . aos . app . databinding . A Origin Vm Binding Ċ import Ġcom . aos . app . dto . Book Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠOrigin Vm Activity Ġ: ĠAppCompatActivity () Ġ{ Ċ Ċ // ĠĠĠ Ġcompanion Ġobject Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠOrigin Vm Activity :: class . java ). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( this ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠA Origin Vm Binding ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Provider : ĠViewModel Provider ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// ä¸į çĶ¨ viewModel Ċ // ĠĠĠĠĠĠĠ Ġbinding Ġ= ĠA Origin Vm Binding . inflate ( layout Inflater ) Ċ // ĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠUser (" åĲ ¾ çİĭ ", 2 8 ) Ċ // ĠĠĠĠĠĠĠ Ġbinding . user Ġ= Ġuser ĊĊĊĠĠĠĠĠĠĠ Ġ// çĶ¨ viewModel ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠA Origin Vm Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) Ċ // ĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . a _ origin _ vm ) ĊĠĠĠĠĠĠĠ ĠviewModel Provider Ġ= ĠViewModel Provider ( this ) Ċ // ĠĠĠĠĠĠĠ Ġval ĠviewModel : ĠOrigin ViewModel Ġby Ġview Models () ĊĠĠĠĠĠĠĠ Ġbinding . user Ġ= ĠUser (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" å¤§ çİĭ æĽ´æĸ° " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġage Ġ= Ġ 1 8 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel Provider [ Origin ViewModel :: class . java ] ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġbinding . viewModel ?. users ?. observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġupdate ĠUI Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv User . text Ġ= Ġit [ 0 ]. name Ġ+ Ġit [ 0 ]. age Ġ// åĴĮ ç»ĳå®ļ 2 éĢī 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( binding . user Ġas ? ĠUser )?. name Ġ= Ġ" åĲįåŃĹ ï¼ļ" Ġ+ Ġit [ 0 ]. name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( binding . user Ġas ? ĠUser )?. age Ġ= Ġit [ 0 ]. age ĊĠĠĠĠĠĠĠ Ġ}) Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget SharedPreferences ( packageName , ĠContext . MODE _ PRIVATE ). getInt (" restore ", Ġ- 1 ) Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġ 1 ) Ġ{ Ċ //// ĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" æģ ¢å¤į äºĨ ") Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () Ċ //// ĠĠĠĠĠĠĠ Ġtoast (" è¢« æĿĢ æŃ» äºĨ ") Ċ // ĠĠĠĠĠĠĠ Ġget SharedPreferences ( packageName , ĠContext . MODE _ PRIVATE ). edit ( true ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġput Int (" restore ", Ġ 1 ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġsuspend Ġfun ĠgetText From Net () Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest (" github . com ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest ( url : ĠString ): ĠBook Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBook (" kotlin Ġprogram Ġtechnology ", Ġ" ql t ") ĊĠĠĠ Ġ} Ċ } Ċ