|
@@ -2,13 +2,16 @@ package com.miekir.newmvp.ui.home.article.presenter;
|
|
|
|
|
|
|
|
import com.miekir.common.utils.LogTool;
|
|
import com.miekir.common.utils.LogTool;
|
|
|
import com.miekir.mvp.presenter.BasePresenter;
|
|
import com.miekir.mvp.presenter.BasePresenter;
|
|
|
-import com.miekir.network.widget.consumer.LoadingObserver;
|
|
|
|
|
|
|
+import com.miekir.network.widget.observe.cancelable.CancelConsumer;
|
|
|
|
|
+import com.miekir.network.widget.observe.cancelable.common.CancelableObserver;
|
|
|
|
|
+import com.miekir.network.widget.observe.sticky.common.LoadingStickyObserver;
|
|
|
import com.miekir.newmvp.ui.home.IArticleView;
|
|
import com.miekir.newmvp.ui.home.IArticleView;
|
|
|
|
|
|
|
|
import io.reactivex.Observable;
|
|
import io.reactivex.Observable;
|
|
|
import io.reactivex.ObservableOnSubscribe;
|
|
import io.reactivex.ObservableOnSubscribe;
|
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
|
import io.reactivex.disposables.Disposable;
|
|
import io.reactivex.disposables.Disposable;
|
|
|
|
|
+import io.reactivex.internal.observers.LambdaObserver;
|
|
|
import io.reactivex.schedulers.Schedulers;
|
|
import io.reactivex.schedulers.Schedulers;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -53,8 +56,23 @@ public class SimpleArticlePresenter extends BasePresenter<IArticleView> {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 直接在Presenter执行任务
|
|
* 直接在Presenter执行任务
|
|
|
|
|
+ * 有进度,可以手动取消的任务
|
|
|
*/
|
|
*/
|
|
|
public void doProgressWork() {
|
|
public void doProgressWork() {
|
|
|
|
|
+ LambdaObserver<String> disposable = new CancelableObserver<String>(this, new CancelConsumer<String>(this) {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onResult(String s) {
|
|
|
|
|
+ LogTool.d("MainPresenter", "onNext thread is: " + Thread.currentThread().getName());
|
|
|
|
|
+ post(view -> view.onArticleResult("result"));
|
|
|
|
|
+ }
|
|
|
|
|
+ }, new CancelConsumer<Throwable>(this) {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onResult(Throwable throwable) {
|
|
|
|
|
+ LogTool.d("MainPresenter", "onNext thread is: " + Thread.currentThread().getName());
|
|
|
|
|
+ post(view -> view.onArticleResult("result"));
|
|
|
|
|
+ }
|
|
|
|
|
+ }).getCancelableObserver();
|
|
|
|
|
+
|
|
|
Observable.create((ObservableOnSubscribe<String>) emitter -> {
|
|
Observable.create((ObservableOnSubscribe<String>) emitter -> {
|
|
|
try {
|
|
try {
|
|
|
Thread.sleep(5000);
|
|
Thread.sleep(5000);
|
|
@@ -66,8 +84,27 @@ public class SimpleArticlePresenter extends BasePresenter<IArticleView> {
|
|
|
})
|
|
})
|
|
|
.subscribeOn(Schedulers.io())
|
|
.subscribeOn(Schedulers.io())
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
|
- .subscribe(new LoadingObserver<String>(this) {
|
|
|
|
|
|
|
+ .subscribe(disposable);
|
|
|
|
|
|
|
|
|
|
+ mProgressDisposableList.add(disposable);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 直接在Presenter执行任务
|
|
|
|
|
+ */
|
|
|
|
|
+ public void doStickyWork() {
|
|
|
|
|
+ Observable.create((ObservableOnSubscribe<String>) emitter -> {
|
|
|
|
|
+ try {
|
|
|
|
|
+ Thread.sleep(5000);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ emitter.onNext("");
|
|
|
|
|
+ emitter.onComplete();
|
|
|
|
|
+ })
|
|
|
|
|
+ .subscribeOn(Schedulers.io())
|
|
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
|
|
+ .subscribe(new LoadingStickyObserver<String>(this) {
|
|
|
@Override
|
|
@Override
|
|
|
public void onSuccess(String result) {
|
|
public void onSuccess(String result) {
|
|
|
post(view -> view.onArticleResult("result"));
|
|
post(view -> view.onArticleResult("result"));
|
|
@@ -75,7 +112,7 @@ public class SimpleArticlePresenter extends BasePresenter<IArticleView> {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void onFailure(int code, Throwable e, String errMsg) {
|
|
public void onFailure(int code, Throwable e, String errMsg) {
|
|
|
-
|
|
|
|
|
|
|
+ post(view -> view.onArticleResult("result"));
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|