|
|
@@ -1,5 +1,6 @@
|
|
|
package com.miekir.eden.ui.welcome;
|
|
|
|
|
|
+import android.annotation.SuppressLint;
|
|
|
import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
|
|
|
@@ -29,13 +30,67 @@ import com.miekir.eden.ui.mine.login.LoginActivity;
|
|
|
import com.miekir.mvp.presenter.InjectPresenter;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
-import io.reactivex.Observer;
|
|
|
+import io.reactivex.Observable;
|
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
|
-import io.reactivex.disposables.Disposable;
|
|
|
+import io.reactivex.functions.BiFunction;
|
|
|
+import io.reactivex.functions.Consumer;
|
|
|
import io.reactivex.schedulers.Schedulers;
|
|
|
|
|
|
|
|
|
+/**
|
|
|
+ * 串行获取,效率低
|
|
|
+ */
|
|
|
+/*private void getKawayiSetting() {
|
|
|
+ RetrofitHelper.getInstance().getRequestApi(KwyAPI.class, KwyAPI.KWY_BASE)
|
|
|
+ .getKwyPhotoList()
|
|
|
+ .doOnNext(photoResult -> {
|
|
|
+ if (photoResult != null) {
|
|
|
+ String detailJson = null;
|
|
|
+ try {
|
|
|
+ detailJson = AESTool.decryptKawayi(photoResult.getJson(), WalkApp.KEY_SECRET);
|
|
|
+ List<EncryptKwyPhotoBean> photoList = JSON.parseObject(detailJson, new TypeReference<List<EncryptKwyPhotoBean>>() {});
|
|
|
+ if (photoList != null && photoList.size() > 0) {
|
|
|
+ EdenManager.getInstance().setKwyPhotoReady(true);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .flatMap(response -> {
|
|
|
+ // 这里是子线程
|
|
|
+ // 根据站点编号查询站点人员信息
|
|
|
+ return RetrofitHelper.getInstance().getRequestApi(KwyAPI.class, KwyAPI.KWY_BASE).getKwyVideo();
|
|
|
+ })
|
|
|
+ .subscribeOn(Schedulers.io())
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribe(new Observer<BaseKwyBean>() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onSubscribe(Disposable d) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNext(BaseKwyBean videoBean) {
|
|
|
+ if (videoBean != null) {
|
|
|
+ EdenManager.getInstance().setVideoUrl(videoBean.getJson());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(Throwable e) {
|
|
|
+ goOnActivity();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onComplete() {
|
|
|
+ goOnActivity();
|
|
|
+ }
|
|
|
+ });
|
|
|
+}*/
|
|
|
/**
|
|
|
* Copyright (C), 2019-2020, Miekir
|
|
|
*
|
|
|
@@ -80,14 +135,30 @@ public class WelcomeActivity extends BaseBeiActivity implements ILoginView, ISys
|
|
|
getKawayiSetting();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 并行获取,效率高
|
|
|
+ */
|
|
|
+ @SuppressLint("CheckResult")
|
|
|
private void getKawayiSetting() {
|
|
|
- RetrofitHelper.getInstance().getRequestApi(KwyAPI.class, KwyAPI.KWY_BASE)
|
|
|
+ Observable<BaseKwyBean> photoObservable = RetrofitHelper.getInstance()
|
|
|
+ .getRequestApi(KwyAPI.class, KwyAPI.KWY_BASE)
|
|
|
.getKwyPhotoList()
|
|
|
- .doOnNext(photoResult -> {
|
|
|
- if (photoResult != null) {
|
|
|
+ .timeout(6, TimeUnit.SECONDS)
|
|
|
+ .subscribeOn(Schedulers.io());
|
|
|
+
|
|
|
+ Observable<BaseKwyBean> videoObservable = RetrofitHelper.getInstance()
|
|
|
+ .getRequestApi(KwyAPI.class, KwyAPI.KWY_BASE)
|
|
|
+ .getKwyVideo()
|
|
|
+ .timeout(6, TimeUnit.SECONDS)
|
|
|
+ .subscribeOn(Schedulers.io());
|
|
|
+
|
|
|
+ Observable.zip(photoObservable, videoObservable, new BiFunction<BaseKwyBean, BaseKwyBean, String>() {
|
|
|
+ @Override
|
|
|
+ public String apply(BaseKwyBean photoBean, BaseKwyBean videoBean) throws Exception {
|
|
|
+ if (photoBean != null) {
|
|
|
String detailJson = null;
|
|
|
try {
|
|
|
- detailJson = AESTool.decryptKawayi(photoResult.getJson(), WalkApp.KEY_SECRET);
|
|
|
+ detailJson = AESTool.decryptKawayi(photoBean.getJson(), WalkApp.KEY_SECRET);
|
|
|
List<EncryptKwyPhotoBean> photoList = JSON.parseObject(detailJson, new TypeReference<List<EncryptKwyPhotoBean>>() {});
|
|
|
if (photoList != null && photoList.size() > 0) {
|
|
|
EdenManager.getInstance().setKwyPhotoReady(true);
|
|
|
@@ -96,38 +167,25 @@ public class WelcomeActivity extends BaseBeiActivity implements ILoginView, ISys
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
- })
|
|
|
- .flatMap(response -> {
|
|
|
- // 这里是子线程
|
|
|
- // 根据站点编号查询站点人员信息
|
|
|
- return RetrofitHelper.getInstance().getRequestApi(KwyAPI.class, KwyAPI.KWY_BASE).getKwyVideo();
|
|
|
- })
|
|
|
- .subscribeOn(Schedulers.io())
|
|
|
- .observeOn(AndroidSchedulers.mainThread())
|
|
|
- .subscribe(new Observer<BaseKwyBean>() {
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onSubscribe(Disposable d) {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onNext(BaseKwyBean videoBean) {
|
|
|
- if (videoBean != null) {
|
|
|
- EdenManager.getInstance().setVideoUrl(videoBean.getJson());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onError(Throwable e) {
|
|
|
- goOnActivity();
|
|
|
- }
|
|
|
|
|
|
- @Override
|
|
|
- public void onComplete() {
|
|
|
- goOnActivity();
|
|
|
+ if (videoBean != null) {
|
|
|
+ EdenManager.getInstance().setVideoUrl(videoBean.getJson());
|
|
|
}
|
|
|
- });
|
|
|
+ // 如果返回null会走onError
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribe(new Consumer<String>() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void accept(String userInfo) throws Exception {
|
|
|
+ goOnActivity();
|
|
|
+ }
|
|
|
+ }, onError -> {
|
|
|
+ // 必须要重写处理error的逻辑
|
|
|
+ goOnActivity();
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
private void goOnActivity() {
|