package Ġme . dest ro . android . playground . reactivex Ċ Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġcom . jak ew h art on . r xb ind ing 3 . view . click s Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . subjects . Publish Subject Ċ import Ġme . dest ro . playground . android . R Ċ import Ġme . dest ro . playground . android . databinding . Activity Observable Errors Binding Ċ import Ġkotlin . random . Random Ċ Ċ class ĠObservable Errors Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtag Ġ= ĠObservable Errors :: class . java . simple Name ĊĊĠĠĠ Ġprivate Ġval Ġrequest Data Ġ= ĠPublish Subject . create < Unit >() ĊĊĠĠĠ Ġprivate Ġval ĠdataSource Ġ= Ġrequest Data . flatMap Ġ{ ĠObservable . from Callable Ġ{ ĠRandom . nextInt () Ġ} Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdis poser Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Observable Errors Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ observable _ errors ) ĊĊĠĠĠĠĠĠĠ ĠdataSource . subscribe ( this :: on DataSource Next , Ġthis :: on DataSource Error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġdis poser . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . generate . click s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( this :: on Request Next Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġdis poser . add ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! dis poser . is Disposed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdis poser . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Request Next Data ( unit : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest Data . onNext ( unit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon DataSource Next ( item : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( tag , Ġ" Data Ġreceived : Ġ$ item ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon DataSource Error ( error : ĠThrowable ) Ġ{ ĊĊĠĠĠ Ġ} Ċ }