package Ġcom . sm ass ive . bit co int icker . core . presentation . view model Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . sm ass ive . bit co int icker . core . util . addTo Ċ import Ġcom . sm ass ive . bit co int icker . core . util . onComplete Stub Ċ import Ġcom . sm ass ive . bit co int icker . core . util . onError Stub Ċ import Ġcom . sm ass ive . bit co int icker . core . util . onNext Stub Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . Scheduler Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ open Ġclass ĠBase ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġsubscribe On : ĠScheduler Ġ= ĠS chedulers . io (), ĊĠĠĠ Ġprivate Ġval Ġobserve On : ĠScheduler Ġ= ĠAndroid Schedulers . main Thread () Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĊĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠ Ġcomposite Disposable . clear () ĊĠĠĠ Ġsuper . on Cle ared () ĊĠ Ġ} ĊĊĠ Ġprotected Ġfun ĠComp letable . execute ( ĊĠĠĠĠĠ ĠonComplete : Ġ() Ġ-> ĠUnit Ġ= ĠonComplete Stub , ĊĠĠĠĠĠ ĠonError : Ġ( Throwable ) Ġ-> ĠUnit Ġ= ĠonError Stub ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġthis . subscribe On ( subscribe On ). observe On ( observe On ). subscribe ( onComplete , ĠonError ). addTo ( composite Disposable ) ĊĠ Ġ} ĊĊĠ Ġprotected Ġfun Ġ< T Ġ: ĠAny > ĠSingle < T >. execute ( ĊĠĠĠĠĠ ĠonSuccess : Ġ( T ) Ġ-> ĠUnit Ġ= Ġon Next Stub , ĊĠĠĠĠĠ ĠonError : Ġ( Throwable ) Ġ-> ĠUnit Ġ= ĠonError Stub ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġthis . subscribe On ( subscribe On ). observe On ( observe On ). subscribe ( on Success , ĠonError ). addTo ( composite Disposable ) ĊĠ Ġ} ĊĊĠ Ġprotected Ġfun Ġ< T Ġ: ĠAny > ĠFlow able < T >. execute ( ĊĠĠĠĠĠ Ġon Next : Ġ( T ) Ġ-> ĠUnit Ġ= Ġon Next Stub , ĊĠĠĠĠĠ ĠonError : Ġ( Throwable ) Ġ-> ĠUnit Ġ= ĠonError Stub , ĊĠĠĠĠĠ ĠonComplete : Ġ() Ġ-> ĠUnit Ġ= ĠonComplete Stub ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġthis . subscribe On ( subscribe On ). observe On ( observe On ). subscribe ( onNext , ĠonError , ĠonComplete ). addTo ( composite Disposable ) ĊĠ Ġ} Ċ }