package Ġcom . mar b ax . movie finder . ui . generic Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġio . reactivex . rx java 3 . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . rx java 3 . core . Single Ċ import Ġio . reactivex . rx java 3 . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx java 3 . schedul ers . Schedulers Ċ Ċ open Ġclass ĠBase ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġprotected Ġfun Ġ< T > Ġdispose On Cle ared ( ĊĠĠĠĠĠĠĠ Ġsingle : ĠSingle < T >, ĊĠĠĠĠĠĠĠ ĠonSuccess : Ġ( T ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ ĠonError : Ġ( Throwable ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( single ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġif Ġ(! dis pos ables . is Disposed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . dispose () ĊĠĠĠ Ġ} Ċ }