From 4a8ff39b0fab0627ef8f7459587d514cc01c3676 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 20 十月 2025 10:52:02 +0800
Subject: [PATCH] Merge branch 'wuhuyancao' of http://139.186.142.91:10010/r/productDev/dmvisit into wuhuyancao
---
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/update/UpdateUtil.java | 212 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 212 insertions(+), 0 deletions(-)
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/update/UpdateUtil.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/update/UpdateUtil.java
new file mode 100644
index 0000000..cd748b5
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/update/UpdateUtil.java
@@ -0,0 +1,212 @@
+package com.doumee.keyCabinet.utils.update;
+
+import android.content.DialogInterface;
+import android.view.KeyEvent;
+
+import androidx.annotation.NonNull;
+
+import com.doumee.keyCabinet.ui.main.MainActivity;
+import com.doumee.lib_coremodel.http.rxJava.SimpleObserver;
+import com.doumee.lib_coremodel.http.utils.RxUtils;
+import com.doumee.keyCabinet.BuildConfig;
+import com.doumee.keyCabinet.MApplication;
+import com.doumee.keyCabinet.R;
+import com.doumee.keyCabinet.bean.AndroidVersionBean;
+import com.doumee.keyCabinet.http.Apis;
+import com.doumee.keyCabinet.http.param.BaseResponse;
+import com.doumee.keyCabinet.http.param.DevAppVersionParam;
+import com.doumee.keyCabinet.http.param.RequestBaseObject;
+
+public class UpdateUtil {
+ public static String newVerName = "";
+ public static String upgradeurl = "";
+ private static String updatelog = "";
+ public MainActivity activity;
+ int verCode = 0;
+ static String verName = null;
+ private static boolean checkupdate;
+ // 闄愬埗鏃堕棿,浠ョ涓哄崟浣�
+ // private final int waitTime;
+ // 宸茬粡娴侀�濈殑鏃堕棿
+ private int passedTime;
+ private DownloadDialog downloadDialog;
+ private boolean isNeedShow = true;
+ private boolean isNewUserTag = false;
+
+ /**
+ * @param activity
+ * checkupdate true妫�鏌ユ洿鏂帮紱false鑷姩鏇存柊
+ */
+ public UpdateUtil(MainActivity activity) {
+ this.activity = activity;
+ }
+
+ private void timeListener() {
+ passedTime++;
+ int modSeed = passedTime % 3;
+ if (modSeed == 0) {
+ System.out.println("鍝嶅簲涓�");
+ } else if (modSeed == 1) {
+ System.out.println("鍝嶅簲涓�..");
+ } else if (modSeed == 2) {
+ System.out.println("鍝嶅簲涓�.");
+ }
+ // // 濡傛灉娴侀�濇椂闂村ぇ浜庤瀹氭椂闂村垯涓柇绾跨▼
+ // if (passedTime > waitTime) {
+ // passedTime = waitTime;
+ // thread.interrupt();
+ // }
+ }
+ public static interface VersionCallBack{
+ void isNeedUpdate(boolean isUpdate);
+ }
+ private VersionCallBack versionCallBack;
+
+ // 鑾峰彇鏈嶅姟鍣ㄧ鐗堟湰鍙�
+ public void getServerVerCode(VersionCallBack versionCallBack) {
+ this.versionCallBack = versionCallBack;
+ getUpgradeInfo();
+ }
+
+ private void getUpgradeInfo() {
+ activity.getVM().getRetrofitService(Apis.class).getVersion()
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new SimpleObserver<BaseResponse<AndroidVersionBean>>(activity.getVM().rxJavaGcManager) {
+ @Override
+ public void onNext(@NonNull BaseResponse<AndroidVersionBean> response) {
+ if (200==response.getCode()) {
+ if (response.getData()!=null) {
+ AndroidVersionBean data = response.getData();
+ if(data!=null&&data.getVersionNum()!=null&&data.getVersionNum()>BuildConfig.VERSION_CODE){
+ versionCallBack.isNeedUpdate(true);
+ upgradeurl=data.getFullFileUrl();
+ updatelog=data.getContent();
+ newVerName = response.getData().getVersionInfo();
+ doNewVersionUpdate(true);
+ }else {
+ versionCallBack.isNeedUpdate(false);
+ }
+ }else {
+ versionCallBack.isNeedUpdate(false);
+ }
+ }else {
+ versionCallBack.isNeedUpdate(false);
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ activity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ versionCallBack.isNeedUpdate(false);
+ }
+ });
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ private void destroy(){
+ if(activity!=null){
+ activity=null;
+ }
+ }
+
+ // 鏇存柊鏂扮増鏈�
+ public void doNewVersionUpdate(boolean type) {
+ StringBuffer sb = new StringBuffer();
+ //sb.append(newVerName);
+ sb.append(MApplication.mContext.getString(R.string.download_8)+"\n");
+ String[] arr = updatelog.split(";");
+ for (int i = 0; i < arr.length; i++) {
+ if (i == arr.length - 1) {
+ sb.append(arr[i] + "." + "\n\n\r");
+ } else {
+ sb.append(arr[i] + ";" + "\n");
+ }
+ }
+ // sb.append(updatelog+"\n\n\r");
+ // new UpdateDialog(activity).show();
+ final UpdateDialog updateDialog = new UpdateDialog(activity);
+ updateDialog.setText(sb.toString(),newVerName);
+ updateDialog.setOnOtemListener(new UpdateDialog.UpdialogListener() {
+
+ @Override
+ public void setOnclickUpdate() {
+ updateDialog.hide();
+ downloadDialog = new DownloadDialog(activity, upgradeurl);
+ downloadDialog.show();
+ downloadDialog.setCanceledOnTouchOutside(false);
+ downloadDialog.setUpdateDialog(updateDialog);
+ downloadDialog
+ .setOnKeyListener(new DialogInterface.OnKeyListener() {
+ @Override
+ public boolean onKey(DialogInterface dialog,
+ int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK
+ && event.getRepeatCount() == 0) {
+ if (updateDialog != null) {
+ updateDialog.show();
+ }
+ }
+ return false;
+ }
+ });
+ }
+
+ @Override
+ public void setOnclickNoUpdate() {
+ updateDialog.dismiss();
+ }
+ });
+ updateDialog.isneedupdate(type);
+ if (type) {
+ // 寮哄埗鍗囩骇
+ updateDialog.setCanceledOnTouchOutside(false);
+ } else {
+ updateDialog.setCanceledOnTouchOutside(true);
+ }
+ updateDialog.show();
+ updateDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
+ @Override
+ public boolean onKey(DialogInterface dialog, int keyCode,
+ KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK
+ && event.getRepeatCount() == 0) {
+ return true;
+ } else {
+ return false;
+
+ }
+ }
+ });
+ }
+
+ /**
+ * 鏄惁闇�瑕佹樉绀哄湡鍙�
+ *
+ * @param isNeedShow
+ * @return
+ */
+ public UpdateUtil setShowToast(boolean isNeedShow) {
+ this.isNeedShow = isNeedShow;
+ return this;
+ }
+
+ /**
+ * 鏄惁鏄柊鐢ㄦ埛
+ *
+ * @param isNewUserTag
+ * @return
+ */
+ public UpdateUtil setNewsUserTag(boolean isNewUserTag) {
+ this.isNewUserTag = isNewUserTag;
+ return this;
+ }
+
+}
--
Gitblit v1.9.3