package keijumt.devandroid.viewmodel import android.arch.lifecycle.Lifecycle import android.arch.lifecycle.LifecycleObserver import android.arch.lifecycle.OnLifecycleEvent import android.arch.lifecycle.ViewModel import io.reactivex.disposables.CompositeDisposable import io.reactivex.disposables.Disposable /** * ViewModelの基底クラス */ abstract class BaseViewModel : ViewModel(), LifecycleObserver { val compositeDisposable = CompositeDisposable() @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) open fun onCreate() { } @OnLifecycleEvent(Lifecycle.Event.ON_START) open fun onStart() { } @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) open fun onResume() { } @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) open fun onPause() { } @OnLifecycleEvent(Lifecycle.Event.ON_STOP) open fun onStop() { } @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) open fun onDestroy() { } protected fun addDisposable(disposable: Disposable) { compositeDisposable.add(disposable) } override fun onCleared() { super.onCleared() compositeDisposable.clear() } }