Quellcode durchsuchen

升级功能添加忽略

zengjiebin vor 7 Jahren
Ursprung
Commit
ac6bdb86bc

+ 1 - 1
app/build.gradle

@@ -65,7 +65,7 @@ android {
     }
     productFlavors {
         sheeptest {
-            applicationId "com.sheep.jiuyan.samllsheep"
+            applicationId "com.sheep.jiuyan.samllsheep.test"
             manifestPlaceholders = [DUANDUAN_GRAPH     : "sheeptest",
                                     DUANDUAN_DATASHARE : "sheeptest",
                                     jpush_appkey       : "4fea09bdbf9661a9689ee306",

+ 1 - 1
app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java

@@ -240,7 +240,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 }
                 break;
             case R.id.version_layout://版本更新
-                SysAppUtil.showVersionInfo(getActivity());
+                SysAppUtil.showVersionInfo(getActivity(), null);
                 break;
             case R.id.clear_layout://清除缓存
                 ViewUtil.showMsgDialog(getActivity(), new DialogConfig().setTitle("清除缓存").setMsg("所有本地的缓存都会被清理").setBtnRightText("取消")

+ 19 - 3
app/src/main/java/com/sheep/gamegroup/util/SysAppUtil.java

@@ -28,6 +28,7 @@ import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.tencent.bugly.beta.Beta;
 import com.zhy.http.okhttp.OkHttpUtils;
 import com.zhy.http.okhttp.callback.FileCallBack;
@@ -316,7 +317,12 @@ public class SysAppUtil {
         }
     }
 
-    public static void showVersionInfo(final Activity activity) {
+    /**
+     * 显示升级对话框
+     * @param activity
+     * @param ignoreMd5 用户手动时传null;进入主要界面时不要传null,传保存的忽略md5值,为空字符串时传""
+     */
+    public static void showVersionInfo(final Activity activity, final String ignoreMd5) {
         SheepApp.getInstance().getNetComponent().getApiService().getNewVersion(TestUtil.isSheep() ? 1 : 0)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
@@ -329,6 +335,10 @@ public class SysAppUtil {
                             G.showToast(baseMessage);
                             return;
                         }
+                        if(ignoreMd5 != null && TextUtils.equals(ignoreMd5, version.getMd5_address())){
+                            LogUtil.println("showVersionInfo", "忽略", ignoreMd5, version.getVersion_name());
+                            return;
+                        }
                         PackageInfo packageInfo = ApkUtils.getPackageInfo(SheepApp.getInstance());
                         if(packageInfo == null || TextUtils.isEmpty(packageInfo.applicationInfo.sourceDir)){
 //                            G.showToast(R.string.unknown_error);
@@ -337,7 +347,8 @@ public class SysAppUtil {
                         }
                         String fileMD5 = com.arialyy.aria.util.CommonUtil.getFileMD5(new File(packageInfo.applicationInfo.sourceDir));
                         if(TextUtils.equals(version.getMd5_address(), fileMD5)){//已经是最新版本
-                            G.showToast("当前版本为最新版本,无需更新");
+                            if(ignoreMd5 == null)
+                                G.showToast("当前版本为最新版本,无需更新");
                         } else {//有新版本
                             final String fileName = version.getMd5_address()+".apk";
                             final File file = new File(ClassFileHelper.DIR, fileName);
@@ -390,7 +401,12 @@ public class SysAppUtil {
                             if(version.isForceUpdate()){//强更
                                 dialogConfig.setCancelable(false);
                             } else {
-                                dialogConfig.setBtnRightText("下次更新");
+                                dialogConfig.setBtnRightText("下次更新").setBtnRightOnClickListener(new View.OnClickListener() {
+                                    @Override
+                                    public void onClick(View view) {
+                                        SpUtils.saveIgnoreMd5(version.getMd5_address());
+                                    }
+                                });
                             }
                             ViewUtil.showMsgDialog(activity, dialogConfig);
                         }

+ 9 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -6,6 +6,7 @@ import android.os.Bundle;
 import android.support.multidex.MultiDex;
 import android.util.DisplayMetrics;
 
+import com.kfzs.duanduan.ActMain;
 import com.kfzs.duanduan.react.SharedPreferences;
 import com.sheep.gamegroup.di.components.DaggerNetComponent;
 import com.sheep.gamegroup.di.components.NetComponent;
@@ -19,8 +20,13 @@ import com.sheep.gamegroup.util.ConnectAddress;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyDbManager;
+import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.view.activity.LoginAct;
+import com.sheep.gamegroup.view.activity.PhoneAct;
+import com.sheep.gamegroup.view.activity.SplashAct;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.tencent.bugly.Bugly;
 
 /**
@@ -133,6 +139,9 @@ public class SheepApp extends BaseApplication {
         public void onActivityResumed(Activity activity) {
             UMConfigUtils.onPageStart(activity);
             if (mActivityAount > 0) {
+                if(activity instanceof SplashAct || activity instanceof LoginAct || activity instanceof PhoneAct || activity instanceof ActMain){
+                    SysAppUtil.showVersionInfo(activity, SpUtils.getIgnoreMd5());
+                }
                 if(!notStop) {
                     notStop = true;
                     LogUtil.println("SheepApp SHEEP_RESUME");

+ 16 - 3
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/SpUtils.java

@@ -4,6 +4,8 @@ import android.content.Context;
 import android.content.SharedPreferences;
 import android.text.TextUtils;
 
+import com.sheep.jiuyan.samllsheep.SheepApp;
+
 /**
  * Created by kemllor on 2017/12/21.
  */
@@ -168,7 +170,18 @@ public class SpUtils {
     }
 
 
-
-
-
+    /**
+     * 保存要忽略的版本的md5值,只能忽略一个
+     * @param vaule
+     */
+    public static void saveIgnoreMd5(String vaule) {
+        SharedPreferences user = SheepApp.getInstance().getSharedPreferences("save_data", Context.MODE_PRIVATE);
+        SharedPreferences.Editor editor = user.edit();
+        editor.putString("ignore_md5", vaule);
+        editor.apply();
+    }
+    public static String getIgnoreMd5() {
+        SharedPreferences user = SheepApp.getInstance().getSharedPreferences("save_data", Context.MODE_PRIVATE);
+        return user.getString("ignore_md5", "");
+    }
 }