/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . example . android . databinding . basics ample . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcn . bing oog ol apple . bg ab anner . BG AB anner Ċ import Ġcom . example . android . databinding . basics ample . R Ċ import Ġcom . example . android . databinding . basics ample . data . Simple ViewModel Ċ import Ġcom . example . android . databinding . basics ample . databinding . Plain Activity Binding Ċ import Ġcom . example . android . databinding . basics ample . model . Banner Ċ import Ġcom . example . android . databinding . basics ample . ui . adapter . Article Adapter Ċ import Ġcom . example . android . databinding . basics ample . util . display With Url Ċ import Ġkotlinx . android . synt hetic . main . plain _ activity .* Ċ Ċ /** Ċ Ġ* ĠPlain Ġold Ġactivity Ġwith Ġlots Ġof Ġproblems Ġto Ġfix . Ċ Ġ*/ Ċ class ĠPlain Old Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ// ĠObtain ĠViewModel Ġfrom ĠViewModel Providers ĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġlazy Ġ{ ĠViewModel Providers . of ( this ). get ( Simple ViewModel :: class . java ) Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġarticle Adapter : ĠArticle Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) Ċ Ċ // ĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . plain _ activity ) ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠPlain Activity Binding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . plain _ activity ) ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠExplicit ly Ġsetting Ġinitial Ġvalues Ġis Ġa Ġbad Ġpattern . ĠWe 'll Ġfix Ġthat . ĊĠĠĠĠĠĠĠ Ġbinding . view model Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġbinding . refresh Layout . auto Refresh () ĊĊĠĠĠĠĠĠĠ Ġval Ġlive String : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĠĠĠĠĠĠĠ Ġlive String . observe ( this , ĠObserver Ġ{ Ġstr -> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" TAG ", Ġstr ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġlive String . post Value (" hi ") ĊĊĠĠĠĠĠĠĠ Ġbinding . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbanner Adapter Ġ= ĠBG AB anner . Adapter < ImageView , ĠBanner >{ _, Ġimage , Ġmodel , Ġ_ -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . display With Url ( this @ Plain Old Activity , Ġmodel ?. image Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbanner . setAdapter ( banner Adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview model ?. b anners ?. observe ( this @ Plain Old Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbanner . setData ( it , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġview model ?. load More () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . re cyclerView . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarticle Adapter Ġ= ĠArticle Adapter ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . adapter Ġ= Ġarticle Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . addItem Decoration ( Divider Item Decoration ( this , Ġ( it . layout Manager Ġas ĠLinearLayoutManager ). orientation )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . view model ?. articles ?. observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle Adapter . submit List ( datas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } ĊĊ