Преглед изворни кода

修复无限升级的bug(大小写问题);修复版本之间不兼容问题

zengjiebin пре 7 година
родитељ
комит
148d0f8f4c

+ 9 - 1
app/build.gradle

@@ -258,6 +258,14 @@ def releaseTime() {
 android.applicationVariants.all {
 android.applicationVariants.all {
     variant ->
     variant ->
         variant.outputs.each {
         variant.outputs.each {
-            output -> buildType.name == "release" ? output.outputFile = new File(output.outputFile.parent, productFlavors[0].name + "_" + buildType.name + "_v" + android.defaultConfig.versionName  + "_" + android.defaultConfig.versionCode + "-${releaseTime()}.apk") : null
+            output ->
+                if(buildType.name == "release") {
+                    if (productFlavors[0].name == "sheep") {
+                        output.outputFile = new File(output.outputFile.parent, productFlavors[0].name + "_" + buildType.name + "_v" + android.defaultConfig.versionName + "_" + android.defaultConfig.versionCode + "-${releaseTime()}.apk")
+                    } else {
+                        output.outputFile = new File(output.outputFile.parent, productFlavors[0].name + "_" + buildType.name +".apk")
+                    }
+                }
+
         }
         }
 }
 }

+ 21 - 4
app/src/main/java/com/sheep/gamegroup/util/ConnectAddress.java

@@ -72,6 +72,16 @@ public enum ConnectAddress {
         public String getName() {
         public String getName() {
             return "测试服";
             return "测试服";
         }
         }
+    },sheeptestjiguang {
+
+        @Override
+        public String getAppUrl() {
+            return "http://test.sheep.kfzs.com/";
+        }
+        @Override
+        public String getName() {
+            return "测试服极光";
+        }
     },sheep {
     },sheep {
 
 
         @Override
         @Override
@@ -108,16 +118,23 @@ public enum ConnectAddress {
     }
     }
 
 
     public int getVersionType() {
     public int getVersionType() {
-        switch (BuildConfig.FLAVOR){
-            case "sheep":
+        switch (this){
+            case sheep:
                 return 1;
                 return 1;
-            case "sheeptestjiguang":
+            case sheeptestjiguang:
                 return 2;
                 return 2;
-            case "sheeptest":
             default:
             default:
                 return 0;
                 return 0;
         }
         }
     }
     }
+    public String getPackageName() {
+        switch (this){
+            case sheeptestjiguang:
+                return "com.sheep.jiuyan.samllsheep.test";
+            default:
+                return "com.sheep.jiuyan.samllsheep";
+        }
+    }
 
 
     public ConnectAddress getDefultConnectAddress() {
     public ConnectAddress getDefultConnectAddress() {
         String flavor = TestUtil.isSheep() ? "sheep" : SharedPreferences.getInstance().getString("flavor", BuildConfig.FLAVOR);
         String flavor = TestUtil.isSheep() ? "sheep" : SharedPreferences.getInstance().getString("flavor", BuildConfig.FLAVOR);

+ 17 - 5
app/src/main/java/com/sheep/gamegroup/util/SysAppUtil.java

@@ -339,21 +339,20 @@ public class SysAppUtil {
                             LogUtil.println("showVersionInfo", "忽略", ignoreMd5, version.getVersion_name());
                             LogUtil.println("showVersionInfo", "忽略", ignoreMd5, version.getVersion_name());
                             return;
                             return;
                         }
                         }
-                        PackageInfo packageInfo = ApkUtils.getPackageInfo(SheepApp.getInstance().getPackageName());
-                        if(packageInfo == null || TextUtils.isEmpty(packageInfo.applicationInfo.sourceDir)){
+                        String fileMD5 = SysAppUtil.getConnectAdrressFileMD5();
+                        if(TextUtils.isEmpty(fileMD5)){
 //                            G.showToast(R.string.unknown_error);
 //                            G.showToast(R.string.unknown_error);
                             Beta.checkUpgrade();//检查版本号
                             Beta.checkUpgrade();//检查版本号
                             return;
                             return;
                         }
                         }
-                        String fileMD5 = com.arialyy.aria.util.CommonUtil.getFileMD5(new File(packageInfo.applicationInfo.sourceDir));
-                        if(TextUtils.equals(version.getMd5_address(), fileMD5)){//已经是最新版本
+                        if(fileMD5.equalsIgnoreCase(version.getMd5_address())){//已经是最新版本
                             if(ignoreMd5 == null)
                             if(ignoreMd5 == null)
                                 G.showToast("当前版本为最新版本,无需更新");
                                 G.showToast("当前版本为最新版本,无需更新");
                         } else {//有新版本
                         } else {//有新版本
                             final String fileName = version.getMd5_address()+".apk";
                             final String fileName = version.getMd5_address()+".apk";
                             final File file = new File(ClassFileHelper.DIR, fileName);
                             final File file = new File(ClassFileHelper.DIR, fileName);
                             DialogConfig dialogConfig = new DialogConfig().setTitle("小绵羊V"+version.getVersion_name());
                             DialogConfig dialogConfig = new DialogConfig().setTitle("小绵羊V"+version.getVersion_name());
-                            dialogConfig.setMsg(TextUtils.isEmpty(version.getUpdate_content()) ? "当前版本小绵羊V"+packageInfo.versionName : version.getUpdate_content()).setLayoutId(R.layout.x_msg_wv_dialog)
+                            dialogConfig.setMsg(TextUtils.isEmpty(version.getUpdate_content()) ? "当前版本小绵羊V"+getConnectAdrressPackageInfo().versionName : version.getUpdate_content()).setLayoutId(R.layout.x_msg_wv_dialog)
                                     .setBtnLeftText(file.exists() ? "立即安装" : "立即更新").setBtnLeftNotDissDialog(true).setBtnLeftOnClickListener(new View.OnClickListener() {
                                     .setBtnLeftText(file.exists() ? "立即安装" : "立即更新").setBtnLeftNotDissDialog(true).setBtnLeftOnClickListener(new View.OnClickListener() {
                                 private void installApk(File file){
                                 private void installApk(File file){
                                     if(file != null && file.exists()) {
                                     if(file != null && file.exists()) {
@@ -419,4 +418,17 @@ public class SysAppUtil {
                     }
                     }
                 });
                 });
     }
     }
+
+    private static PackageInfo getConnectAdrressPackageInfo() {
+        return ApkUtils.getPackageInfo(SheepApp.getInstance().getConnectAddress().getPackageName());
+    }
+    public static String getConnectAdrressFileMD5() {
+        PackageInfo packageInfo = getConnectAdrressPackageInfo();
+        if(packageInfo == null || TextUtils.isEmpty(packageInfo.applicationInfo.sourceDir)){
+            return null;
+        }
+        String fileMD5 = com.arialyy.aria.util.CommonUtil.getFileMD5(new File(packageInfo.applicationInfo.sourceDir));
+        LogUtil.println("FileMD5", fileMD5);
+        return fileMD5;
+    }
 }
 }

+ 6 - 1
app/src/main/java/com/sheep/gamegroup/util/TestUtil.java

@@ -272,13 +272,18 @@ public class TestUtil {
      * @param activity
      * @param activity
      */
      */
     public static void test(final Activity activity) {
     public static void test(final Activity activity) {
-        final String[] items = {"空间不足提示框","显示已经安装应用列表","复制token","复制faq地址","复制代理地址","复制世界杯地址","任务游戏列表","世界杯活动","交通银行信用卡测试", "浦发银行信用卡测试", "测试游戏模块","打卡成功提示","定向货币详情","提交身份认证时的提示", "检查标签", "友盟分享"};
+        final String[] items = {"md5","空间不足提示框","显示已经安装应用列表","复制token","复制faq地址","复制代理地址","复制世界杯地址","任务游戏列表","世界杯活动","交通银行信用卡测试", "浦发银行信用卡测试", "测试游戏模块","打卡成功提示","定向货币详情","提交身份认证时的提示", "检查标签", "友盟分享"};
         AlertDialog dialog = new AlertDialog.Builder(activity).setTitle("请选择测试项目")
         AlertDialog dialog = new AlertDialog.Builder(activity).setTitle("请选择测试项目")
                 .setItems(items, new DialogInterface.OnClickListener() {
                 .setItems(items, new DialogInterface.OnClickListener() {
 
 
                     @Override
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                     public void onClick(DialogInterface dialog, int which) {
                         switch (items[which]) {
                         switch (items[which]) {
+                            case "md5":
+                                String md5 = SysAppUtil.getConnectAdrressFileMD5();
+                                StringUtils.CopyText(activity, md5);
+                                G.showToast(md5);
+                                break;
                             case "空间不足提示框":
                             case "空间不足提示框":
                                 DialogStorageLow.showDialog(activity);
                                 DialogStorageLow.showDialog(activity);
                                 break;
                                 break;

+ 7 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/SpUtils.java

@@ -130,8 +130,13 @@ public class SpUtils {
 
 
 
 
     public static int getDownNotice(Context context) {
     public static int getDownNotice(Context context) {
-        SharedPreferences user = context.getSharedPreferences("btn_download_notice", Context.MODE_PRIVATE);
-        return user.getInt("notice_down", 0);
+        try {//之所以加try catch 是因为2.5.3以前这个地方是保存的boolean型,2.5.3又尝试读取int型,导致获取失败
+            SharedPreferences user = context.getSharedPreferences("btn_download_notice", Context.MODE_PRIVATE);
+            return user.getInt("notice_down", 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return 0;
     }
     }
 
 
     /**
     /**