|
|
@@ -1,14 +1,28 @@
|
|
|
package com.miekir.eden.ui.home.coupon;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.TypeReference;
|
|
|
import com.miekir.eden.base.ApiService;
|
|
|
import com.miekir.eden.constant.EdenError;
|
|
|
+import com.miekir.eden.kawayi.AES;
|
|
|
+import com.miekir.eden.kawayi.API;
|
|
|
+import com.miekir.eden.kawayi.WalkApp;
|
|
|
+import com.miekir.eden.kawayi.bean.BaseBean;
|
|
|
+import com.miekir.eden.kawayi.bean.EncryptBean;
|
|
|
+import com.miekir.eden.manager.EdenManager;
|
|
|
import com.miekir.eden.net.RetrofitHelper;
|
|
|
import com.miekir.mvp.presenter.BasePresenter;
|
|
|
import com.miekir.network.core.base.BaseObserver;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
|
+import io.reactivex.Observable;
|
|
|
+import io.reactivex.ObservableEmitter;
|
|
|
+import io.reactivex.ObservableOnSubscribe;
|
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
|
+import io.reactivex.functions.Action;
|
|
|
import io.reactivex.schedulers.Schedulers;
|
|
|
|
|
|
/**
|
|
|
@@ -20,28 +34,79 @@ import io.reactivex.schedulers.Schedulers;
|
|
|
*/
|
|
|
public class TemplatePresenter extends BasePresenter<ITemplateView<String>> {
|
|
|
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 获取照片
|
|
|
+ * @param pageNum
|
|
|
+ * @param pageSize
|
|
|
+ */
|
|
|
public void getTemplateData(int pageNum, int pageSize) {
|
|
|
- RetrofitHelper.getInstance()
|
|
|
- .getRequestApi(ApiService.class)
|
|
|
- .getCouponList(pageNum, pageSize)
|
|
|
- .subscribeOn(Schedulers.io())
|
|
|
- .observeOn(AndroidSchedulers.mainThread())
|
|
|
- .subscribe(new BaseObserver<List<String>>() {
|
|
|
- @Override
|
|
|
- public void onSuccess(int code, List<String> result) {
|
|
|
- if (getView() != null) {
|
|
|
- getView().onTemplateDataCome(true, EdenError.SUCCESS, result);
|
|
|
+ if (EdenManager.getInstance().isKwyPhotoReady()) {
|
|
|
+ Observable<List<String>> observable = Observable.create(new ObservableOnSubscribe<List<String>>() {
|
|
|
+ @Override
|
|
|
+ //将事件发射出去,持有观察者的对象
|
|
|
+ public void subscribe(ObservableEmitter<List<String>> e) throws Exception {
|
|
|
+ String result = HttpUtil.get(API.PHOTO_LIST, 15000);
|
|
|
+ List<String> photoList = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ BaseBean homeBean = JSON.parseObject(result, BaseBean.class);
|
|
|
+ if (homeBean != null) {
|
|
|
+ String detailJson = AES.decryptKawayi(homeBean.getJson(), WalkApp.KEY_SECRET);
|
|
|
+ List<EncryptBean> photoBeanList = JSON.parseObject(detailJson, new TypeReference<List<EncryptBean>>() {});
|
|
|
+ if (photoBeanList != null && photoBeanList.size() > 0) {
|
|
|
+ for (EncryptBean bean : photoBeanList) {
|
|
|
+ photoList.addAll(bean.getFiles());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ e.onNext(photoList);
|
|
|
}
|
|
|
+ } catch (Exception photoException) {
|
|
|
+ photoException.printStackTrace();
|
|
|
+ e.onNext(null);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void onFailure(int code, Throwable e, String errMsg) {
|
|
|
- if (getView() != null) {
|
|
|
- getView().onTemplateDataCome(false, code, null);
|
|
|
+ e.onComplete();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ observable.observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribeOn(Schedulers.io())
|
|
|
+ .doOnNext(result -> {
|
|
|
+ if (result != null && result.size() > 0) {
|
|
|
+ getView().onTemplateDataCome(true, EdenError.SUCCESS, result);
|
|
|
+ } else {
|
|
|
+ getView().onTemplateDataCome(false, EdenError.FAILED_COMMON, result);
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ })
|
|
|
+ .doOnError(err -> {
|
|
|
+ err.printStackTrace();
|
|
|
+ })
|
|
|
+ .doOnComplete(new Action() {
|
|
|
+ @Override
|
|
|
+ public void run() throws Exception { }
|
|
|
+ }).subscribe();
|
|
|
+ } else {
|
|
|
+ RetrofitHelper.getInstance()
|
|
|
+ .getRequestApi(ApiService.class)
|
|
|
+ .getCouponList(pageNum, pageSize)
|
|
|
+ .subscribeOn(Schedulers.io())
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribe(new BaseObserver<List<String>>() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(int code, List<String> result) {
|
|
|
+ if (getView() != null) {
|
|
|
+ getView().onTemplateDataCome(true, EdenError.SUCCESS, result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailure(int code, Throwable e, String errMsg) {
|
|
|
+ if (getView() != null) {
|
|
|
+ getView().onTemplateDataCome(false, code, null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|