Commit 5815282424d0eac4ff6b7d359b9b3d112402ac59

Authored by 朱显松
1 parent ec1f1cd7

1.test code

app/demo_launch/src/main/java/com/cnlive/test/launch/LaunchPresenter.java
1 1 package com.cnlive.test.launch;
2 2  
  3 +import android.content.Context;
  4 +import android.content.pm.PackageInfo;
  5 +import android.content.pm.PackageManager;
  6 +import android.os.Build;
  7 +
  8 +import com.cnlive.core.libs.base.application.BaseApplication;
3 9 import com.cnlive.core.libs.base.frame.presenter.BasePresenter;
4 10 import com.cnlive.core.network.HttpConn;
5 11 import com.cnlive.core.network.NetCallBack;
6 12 import com.cnlive.core.network.model.BaseResult;
7 13 import com.cnlive.core.network.request.BaseRequest;
  14 +import com.cnlive.test.launch.bean.AppVersionInfo;
8 15  
  16 +import java.util.HashMap;
  17 +import java.util.Map;
9 18 import java.util.concurrent.TimeUnit;
10 19  
11 20 import io.reactivex.Observable;
... ... @@ -16,26 +25,66 @@ class LaunchPresenter extends BasePresenter<LaunchView> {
16 25  
17 26 private Disposable disposableLoadLaunchData;
18 27  
  28 + private static Map<String, String> getBaseParames() {
  29 + Map<String, String> parames = new HashMap<>();
  30 + parames.put("plat", "a");
  31 + return parames;
  32 + }
  33 +
  34 + public static long getAppVersionCode(Context context) {
  35 + long appVersionCode = -1;
  36 + try {
  37 + PackageInfo packageInfo = context.getApplicationContext()
  38 + .getPackageManager()
  39 + .getPackageInfo(context.getPackageName(), 0);
  40 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
  41 + appVersionCode = packageInfo.getLongVersionCode();
  42 + } else {
  43 + appVersionCode = packageInfo.versionCode;
  44 + }
  45 + } catch (PackageManager.NameNotFoundException ignored) {
  46 + }
  47 + return appVersionCode;
  48 + }
  49 +
19 50 public void loadLaunchData() {
20   - Observable<BaseResult<CreateQrInfo>> observable = BaseRequest
  51 + Map<String, String> parames = getBaseParames();
  52 +
  53 + Observable<BaseResult<AppVersionInfo>> observable = BaseRequest
21 54 .init()
22   - .service(ApiServiceQrcode.class)
23   - .getQrContent(requestData);
24   - HttpConn.action(observable, new NetCallBack<BaseResult<CreateQrInfo>>() {
  55 + .setConnectTimeout(2_500)
  56 + .setReadTimeout(2_500)
  57 + .service(LaunchService.class)
  58 + .getshotTimeVersion(parames);
  59 +
  60 + HttpConn.action(observable, new NetCallBack<BaseResult<AppVersionInfo>>() {
25 61 @Override
26 62 public void onRequestState(int state) {
27 63  
28 64 }
29 65  
30 66 @Override
31   - public void onSuccess(BaseResult<CreateQrInfo> data) {
32   - String content = data.getData().getQrcode();
33   - if (content.length() > 0) ifViewAttached(view -> view.creataQr(content));
  67 + public void onSuccess(BaseResult<AppVersionInfo> data) {
  68 + if (data.getData() != null) {
  69 + long versionCodeService = data.getData().getVersionCode();
  70 + long versionCodeApp = getAppVersionCode(BaseApplication.getInstance());
  71 +
  72 +
  73 +
  74 + if(data.getData().isForceUpdating()){
  75 + //当前版本大于0且最新版本大于当前版本,更新App
  76 + if (versionCodeApp > 0 && versionCodeService > versionCodeApp) {
  77 + ifViewAttached(view -> view.toUpload(content));
  78 + return;
  79 + }
  80 + }
  81 + }
  82 + ifViewAttached(view -> view.toNextPage());
34 83 }
35 84  
36 85 @Override
37 86 public void onFailure(String errCode, String errMsg, Exception e) {
38   - ifViewAttached(view -> view.showCreateErr(errMsg));
  87 + ifViewAttached(view -> view.toNextPage());
39 88 }
40 89 }
41 90 );
... ... @@ -45,6 +94,10 @@ class LaunchPresenter extends BasePresenter&lt;LaunchView&gt; {
45 94 .subscribe(aLong -> ifViewAttached(view -> view.nextPage("test")));
46 95 }
47 96  
  97 + public void chencaAppUpload(AppVersionInfo versionInfo) {
  98 +
  99 + }
  100 +
48 101 public void cancelLoad() {
49 102 if (disposableLoadLaunchData != null) disposableLoadLaunchData.dispose();
50 103 }
... ...
app/demo_launch/src/main/java/com/cnlive/test/launch/LaunchService.java
1 1 package com.cnlive.test.launch;
2 2  
  3 +import com.cnlive.core.network.model.BaseResult;
  4 +import com.cnlive.test.launch.bean.AppVersionInfo;
  5 +
3 6 import java.util.Map;
4 7  
5 8 import io.reactivex.Observable;
6   -import retrofit2.adapter.rxjava2.Result;
7 9 import retrofit2.http.POST;
8 10 import retrofit2.http.QueryMap;
9 11  
... ... @@ -15,5 +17,5 @@ public interface LaunchService {
15 17 */
16 18  
17 19 @POST("Daren/common/getNewestVersion.action")
18   - Observable<Result<BaseInfo<AppVersionInfo>>> getshotTimeVersion(@QueryMap() Map<String, String> map);
  20 + Observable<BaseResult<AppVersionInfo>> getshotTimeVersion(@QueryMap() Map<String, String> map);
19 21 }
... ...
app/demo_launch/src/main/java/com/cnlive/test/launch/bean/AppVersionInfo.java 0 → 100644
  1 +package com.cnlive.test.launch.bean;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +public class AppVersionInfo implements Serializable {
  6 +
  7 +
  8 + private String deviceType;
  9 + private String msg;
  10 + private String createTime;
  11 + private String id;
  12 + private String type;
  13 + private String version;
  14 + private int versionCode;
  15 + private String downLoadUrl;
  16 + private boolean forceUpdating;
  17 + private OpenScreenAdv openScreenAdv;
  18 +
  19 + public OpenScreenAdv getOpenScreenAdv() {
  20 + return openScreenAdv;
  21 + }
  22 +
  23 + public void setOpenScreenAdv(OpenScreenAdv openScreenAdv) {
  24 + this.openScreenAdv = openScreenAdv;
  25 + }
  26 +
  27 + public boolean isForceUpdating() {
  28 + return forceUpdating;
  29 + }
  30 +
  31 + public void setForceUpdating(boolean forceUpdating) {
  32 + this.forceUpdating = forceUpdating;
  33 + }
  34 +
  35 + public int getVersionCode() {
  36 + return versionCode;
  37 + }
  38 +
  39 + public void setVersionCode(int versionCode) {
  40 + this.versionCode = versionCode;
  41 + }
  42 +
  43 + public String getDownLoadUrl() {
  44 + return downLoadUrl;
  45 + }
  46 +
  47 + public void setDownLoadUrl(String downLoadUrl) {
  48 + this.downLoadUrl = downLoadUrl;
  49 + }
  50 +
  51 + public String getDeviceType() {
  52 + return deviceType;
  53 + }
  54 +
  55 + public void setDeviceType(String deviceType) {
  56 + this.deviceType = deviceType;
  57 + }
  58 +
  59 + public String getMsg() {
  60 + return msg;
  61 + }
  62 +
  63 + public void setMsg(String msg) {
  64 + this.msg = msg;
  65 + }
  66 +
  67 + public String getCreateTime() {
  68 + return createTime;
  69 + }
  70 +
  71 + public void setCreateTime(String createTime) {
  72 + this.createTime = createTime;
  73 + }
  74 +
  75 + public String getId() {
  76 + return id;
  77 + }
  78 +
  79 + public void setId(String id) {
  80 + this.id = id;
  81 + }
  82 +
  83 + public String getType() {
  84 + return type;
  85 + }
  86 +
  87 + public void setType(String type) {
  88 + this.type = type;
  89 + }
  90 +
  91 + public String getVersion() {
  92 + return version;
  93 + }
  94 +
  95 + public void setVersion(String version) {
  96 + this.version = version;
  97 + }
  98 +
  99 + public static class OpenScreenAdv implements Serializable {
  100 + //广告id
  101 + private String id;
  102 + // 0 内部打开 1 外部打开
  103 + private int wjjAdv;
  104 + //广告链接
  105 + private String url;
  106 + //广告图片
  107 + private String andImg;
  108 + // 动画时长
  109 + private int duration;
  110 + // 是否更新
  111 + private int modifyStatus;
  112 +
  113 + public int getModifyStatus() {
  114 + return modifyStatus;
  115 + }
  116 +
  117 + public void setModifyStatus(int modifyStatus) {
  118 + this.modifyStatus = modifyStatus;
  119 + }
  120 +
  121 + public int getDuration() {
  122 + return duration;
  123 + }
  124 +
  125 + public void setDuration(int duration) {
  126 + this.duration = duration;
  127 + }
  128 +
  129 + public String getId() {
  130 + return id;
  131 + }
  132 +
  133 + public void setId(String id) {
  134 + this.id = id;
  135 + }
  136 +
  137 + public int getWjjAdv() {
  138 + return wjjAdv;
  139 + }
  140 +
  141 + public void setWjjAdv(int wjjAdv) {
  142 + this.wjjAdv = wjjAdv;
  143 + }
  144 +
  145 + public String getUrl() {
  146 + return url;
  147 + }
  148 +
  149 + public void setUrl(String url) {
  150 + this.url = url;
  151 + }
  152 +
  153 + public String getAndImg() {
  154 + return andImg;
  155 + }
  156 +
  157 + public void setAndImg(String andImg) {
  158 + this.andImg = andImg;
  159 + }
  160 + }
  161 +
  162 +
  163 +}
0 164 \ No newline at end of file
... ...