|
|
@@ -7,7 +7,7 @@ import android.arch.lifecycle.ViewModel;
|
|
|
import android.util.Log;
|
|
|
|
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
|
-import io.reactivex.disposables.CompositeDisposable;
|
|
|
+import io.reactivex.disposables.Disposable;
|
|
|
import io.reactivex.schedulers.Schedulers;
|
|
|
import kr.co.zumo.app.lifeplus.application.App;
|
|
|
import kr.co.zumo.app.lifeplus.network.NetworkWatcher;
|
|
|
@@ -33,8 +33,8 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
|
|
|
public abstract class Model extends ViewModel implements ILifeCycle {
|
|
|
|
|
|
private IModelResult listener;
|
|
|
+ private Disposable networkDisposable;
|
|
|
protected Presenter presenter;
|
|
|
- protected CompositeDisposable disposable = new CompositeDisposable();
|
|
|
|
|
|
public Model() {
|
|
|
Log.w("APP# Model | Model", "| >>>>>>>>>>>> " + this.getClass().getSimpleName());
|
|
|
@@ -50,7 +50,7 @@ public abstract class Model extends ViewModel implements ILifeCycle {
|
|
|
*/
|
|
|
private void watchNetwork() {
|
|
|
Log.w("APP# Model | watchNetwork", "| " + this.getClass().getSimpleName() + " - Start network watching............");
|
|
|
- disposable.add(
|
|
|
+ networkDisposable =
|
|
|
NetworkWatcher.watch(App.getInstance().getContext())
|
|
|
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
|
|
|
.subscribe(isConnectedAll -> {
|
|
|
@@ -63,13 +63,15 @@ public abstract class Model extends ViewModel implements ILifeCycle {
|
|
|
if (null != presenter) {
|
|
|
presenter.onChangedConnection(false, 0);
|
|
|
}
|
|
|
- })
|
|
|
- );
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
private void stopNetworkWatching() {
|
|
|
Log.w("APP# Model | stopNetworkWatching", "| " + this.getClass().getSimpleName() + " - Stop network watching___________");
|
|
|
- disposable.clear();
|
|
|
+ if (null != networkDisposable) {
|
|
|
+ networkDisposable.dispose();
|
|
|
+ networkDisposable = null;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
protected void onResult(Event event) {
|
|
|
@@ -175,9 +177,10 @@ public abstract class Model extends ViewModel implements ILifeCycle {
|
|
|
|
|
|
/**
|
|
|
* dispose
|
|
|
+ * - Model 은 Activity 가 destroy 될 때 함께 destroy 된다.
|
|
|
*/
|
|
|
private void destroy() {
|
|
|
- Log.w("APP# Model | dispose", "| " + this.getClass().getSimpleName() + "<<<<<<<<<<<<");
|
|
|
+ Log.w("APP# Model | destroy", "| " + this.getClass().getSimpleName() + "<<<<<<<<<<<<");
|
|
|
destroyInternal();
|
|
|
}
|
|
|
|