From f0de01d017c0ce0a4954dd1215449ceea05af29b Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 10 九月 2024 14:13:52 +0800
Subject: [PATCH] 添加混淆,修复因权限问题的bug

---
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java             |    3 
 qiheonlinelibrary/build.gradle                                                            |    2 
 baselibrary/src/main/java/com/dayu/baselibrary/dao/BaseDaoSingleton.java                  |    1 
 baselibrary/proguard-rules.pro                                                            |  133 ++++++++++
 qihealonelibrary/build.gradle                                                             |    2 
 qihealonelibrary/proguard-rules.pro                                                       |  133 ++++++++++
 qiheonlinelibrary/proguard-rules.pro                                                      |  132 +++++++++
 baselibrary/build.gradle                                                                  |    4 
 app/src/main/java/com/dayu/recharge/activity/LoginActivity.java                           |   16 
 app/src/main/res/layout/activity_login.xml                                                |    4 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java |   77 +++--
 henanlibrary/build.gradle                                                                 |    2 
 henanlibrary/proguard-rules.pro                                                           |  134 ++++++++++
 app/proguard-rules.pro                                                                    |  127 +++++++++
 app/build.gradle                                                                          |    9 
 15 files changed, 718 insertions(+), 61 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index 7456738..d8d6824 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,8 +16,8 @@
         applicationId "com.dayu.recharge"
         minSdk 23
         targetSdk 26
-        versionCode 265
-        versionName "2.6.5"
+        versionCode 266
+        versionName "2.6.6"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 
         ndk {
@@ -28,7 +28,10 @@
 
     buildTypes {
         release {
-            minifyEnabled false
+            //琛ㄧず鍚敤浠g爜娣锋穯銆�
+            minifyEnabled true
+            // 琛ㄧず绉婚櫎鏈娇鐢ㄧ殑璧勬簮鏂囦欢銆�
+            shrinkResources true
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
     }
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 481bb43..b536631 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -18,4 +18,129 @@
 
 # If you keep the line number information, uncomment this to
 # hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
+#-renamesourcefileattribute SourceFile
+-keepattributes SourceFile,LineNumberTable
+-keepattributes Exceptions, Signature, InnerClasses
+-keepclasseswithmembernames class * { # 淇濇寔native鏂规硶涓嶈娣锋穯
+    native <methods>;
+}
+-keep class * implements Android.os.Parcelable { # 淇濇寔Parcelable涓嶈娣锋穯
+    public static final Android.os.Parcelable$Creator *;
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keepattributes *Annotation*        #淇濇寔娉ㄨВ
+#---------------------------------榛樿淇濈暀鍖�---------------------------------
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class * extends android.view.View
+-keep public class com.android.vending.licensing.ILicensingService
+-keep class android.support.** {*;}
+
+-keepclasseswithmembernames class * {
+    native <methods>;
+}
+-keepclassmembers class * extends android.app.Activity{
+    public void *(android.view.View);
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keep public class * extends android.view.View{
+    *** get*();
+    void set*(***);
+    public <init>(android.content.Context);
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keepclasseswithmembers class * {
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keep class * implements android.os.Parcelable {
+  public static final android.os.Parcelable$Creator *;
+}
+-keepclassmembers class * implements java.io.Serializable {
+    static final long serialVersionUID;
+    private static final java.io.ObjectStreamField[] serialPersistentFields;
+    private void writeObject(java.io.ObjectOutputStream);
+    private void readObject(java.io.ObjectInputStream);
+    java.lang.Object writeReplace();
+    java.lang.Object readResolve();
+}
+-keep class **.R$* {
+ *;
+}
+-keepclassmembers class * {
+    void *(**On*Event);
+}
+# 绉婚櫎鏃ュ織璇彞
+-assumenosideeffects class android.util.Log {
+    public static *** d(...);
+#    public static *** v(...);
+#    public static *** i(...);
+#    public static *** w(...);
+#    public static *** e(...);
+}
+#----------------------------------------------------------------------------
+-keep public class * extends android.view.View {
+}
+-keep class **.R$* {*;}
+
+#okhttp
+-dontwarn okhttp3.**
+-keep class okhttp3.**{*;}
+-keep interface okhttp3.**{*;}
+
+#rxjava
+-keep public class io.reactivex.android.**{*;}
+-keep public class io.reactivex.**{*;}
+-keep public class rx.android.**{*;}
+-keep public class rx.**{*;}
+-keep public class javax.annotation.**{*;}
+-keep public class javax.inject.**{*;}
+-keep class com.google.gson.** { *; }
+#glide
+-keep public class com.bumptech.glide.**{*;}
+-keep public class com.luck.picture.lib.**{*;}
+-keep public class androidx.**{*;}
+
+-keep public class com.bumptech.**{*;}
+-keep public class com.scwang.**{*;}
+-keep public class kotlin.**{*;}
+-keep public class retrofit2.**{*;}
+-keep public class okio.**{*;}
+-keep public class com.google.**{*;}
+
+
+# 鑻ndroid API 楂樹簬27娣诲姞浠ヤ笅锛堜笉闇�瑕�/锛�:
+
+-dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder
+# for DexGuard only
+#-keep resource xmlelements manifest/application/meta-data@value=GlideModule
+-keep class com.xuexiang.xupdate.entity.** { *; }
+
+# Note: if you use a custom API parser for parsing, you need to add confusion to your custom API entities. Here are the custom API entity obfuscation rules configured in this demo:
+-keep class com.xuexiang.xupdatedemo.entity.** { *; }
+
+-keep class com.hjq.permissions.** {*;}
+
+#鑵捐鐩稿叧
+-keep class com.qq.** {*;}
+-keep class com.tencent.** {*;}
+#鏉冮檺鐢宠
+-keep class com.hjq.** {*;}
+#鍒楄〃鐩稿叧
+-keep class com.scwang.** {*;}
+#鍏朵粬
+-keep class com.contrarywind.** {*;}
+-keep class com.bigkoo.** {*;}
+-keep class org.** {*;}
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
index 7b46a21..95354c4 100644
--- a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
@@ -47,7 +47,6 @@
 
     ActivityLoginBinding binding;
     PassWordBean passWordBean;
-    //    com.dayu.qihealonelibrary.dbBean.PassWordBean
     int clickNumber;
 
     @Override
@@ -55,12 +54,9 @@
         super.onCreate(savedInstanceState);
         binding = ActivityLoginBinding.inflate(LayoutInflater.from(this));
         setContentView(binding.getRoot());
-        getPermission();
         initView();
-        if (MyApplication.myApplication.libraryType == BaseCommon.NoLibrary) {
-            choesLibrary();
-            //娌℃湁閫夋嫨鐗堟湰鍏堥�夋嫨鐗堟湰
-        }
+        getPermission();
+
     }
 
     private void initView() {
@@ -194,6 +190,9 @@
         }
     }
 
+    /**
+     * 鑾峰彇閫氱敤鏉冮檺
+     */
     private void getPermission() {
         try {
             XXPermissions.with(this)
@@ -212,6 +211,10 @@
                                             file.mkdirs();
                                         }
                                         passWordBean = BaseDaoSingleton.getInstance(LoginActivity.this).loginPsDao().findFirst();
+                                        if (MyApplication.myApplication.libraryType == BaseCommon.NoLibrary) {
+                                            choesLibrary();
+                                            //娌℃湁閫夋嫨鐗堟湰鍏堥�夋嫨鐗堟湰
+                                        }
                                     } catch (Exception e) {
                                         e.printStackTrace();
                                     }
@@ -282,6 +285,7 @@
     }
 
     long mExitTime;
+
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK) {
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 7297574..59d8d49 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -45,7 +45,7 @@
                 android:hint="璇疯緭鍏ヨ处鍙�"
                 android:maxLines="1"
                 android:singleLine="true"
-                android:text="zuoxiao" />
+                android:text="" />
         </LinearLayout>
         <LinearLayout
             android:layout_width="match_parent"
@@ -66,7 +66,7 @@
                 android:layout_height="wrap_content"
                 android:hint="鍒濆瀵嗙爜涓烘暟瀛�1-6"
                 android:inputType="textPassword"
-                android:text="ZX@@123qwA" />
+                android:text="" />
         </LinearLayout>
 
 
diff --git a/baselibrary/build.gradle b/baselibrary/build.gradle
index b32585c..16f5ba9 100644
--- a/baselibrary/build.gradle
+++ b/baselibrary/build.gradle
@@ -12,7 +12,7 @@
 
     buildTypes {
         release {
-            minifyEnabled false
+            minifyEnabled true
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
     }
@@ -30,7 +30,7 @@
 
 dependencies {
 
-    implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
+    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
     implementation 'com.android.support:appcompat-v7:28.0.0'
     implementation 'com.android.support.constraint:constraint-layout:1.1.3'
     implementation 'androidx.core:core-ktx:1.8.0'
diff --git a/baselibrary/proguard-rules.pro b/baselibrary/proguard-rules.pro
index 481bb43..9aeee16 100644
--- a/baselibrary/proguard-rules.pro
+++ b/baselibrary/proguard-rules.pro
@@ -18,4 +18,135 @@
 
 # If you keep the line number information, uncomment this to
 # hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
+#-renamesourcefileattribute SourceFile
+-keepattributes SourceFile,LineNumberTable
+-keepattributes Exceptions, Signature, InnerClasses
+-keepclasseswithmembernames class * { # 淇濇寔native鏂规硶涓嶈娣锋穯
+    native <methods>;
+}
+-keep class * implements Android.os.Parcelable { # 淇濇寔Parcelable涓嶈娣锋穯
+    public static final Android.os.Parcelable$Creator *;
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keepattributes *Annotation*        #淇濇寔娉ㄨВ
+#---------------------------------榛樿淇濈暀鍖�---------------------------------
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class * extends android.view.View
+-keep public class com.android.vending.licensing.ILicensingService
+-keep class android.support.** {*;}
+
+-keepclasseswithmembernames class * {
+    native <methods>;
+}
+-keepclassmembers class * extends android.app.Activity{
+    public void *(android.view.View);
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keep public class * extends android.view.View{
+    *** get*();
+    void set*(***);
+    public <init>(android.content.Context);
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keepclasseswithmembers class * {
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keep class * implements android.os.Parcelable {
+  public static final android.os.Parcelable$Creator *;
+}
+-keepclassmembers class * implements java.io.Serializable {
+    static final long serialVersionUID;
+    private static final java.io.ObjectStreamField[] serialPersistentFields;
+    private void writeObject(java.io.ObjectOutputStream);
+    private void readObject(java.io.ObjectInputStream);
+    java.lang.Object writeReplace();
+    java.lang.Object readResolve();
+}
+-keep class **.R$* {
+ *;
+}
+-keepclassmembers class * {
+    void *(**On*Event);
+}
+# 绉婚櫎鏃ュ織璇彞
+-assumenosideeffects class android.util.Log {
+    public static *** d(...);
+#    public static *** v(...);
+#    public static *** i(...);
+#    public static *** w(...);
+#    public static *** e(...);
+}
+#----------------------------------------------------------------------------
+-keep public class * extends android.view.View {
+}
+-keep class **.R$* {*;}
+
+#okhttp
+-dontwarn okhttp3.**
+-keep class okhttp3.**{*;}
+-keep interface okhttp3.**{*;}
+
+#rxjava
+-keep public class io.reactivex.android.**{*;}
+-keep public class io.reactivex.**{*;}
+-keep public class rx.android.**{*;}
+-keep public class rx.**{*;}
+-keep public class javax.annotation.**{*;}
+-keep public class javax.inject.**{*;}
+-keep class com.google.gson.** { *; }
+#glide
+-keep public class com.bumptech.glide.**{*;}
+-keep public class com.luck.picture.lib.**{*;}
+-keep public class androidx.**{*;}
+
+-keep public class com.bumptech.**{*;}
+-keep public class com.scwang.**{*;}
+-keep public class kotlin.**{*;}
+-keep public class retrofit2.**{*;}
+-keep public class okio.**{*;}
+-keep public class com.google.**{*;}
+
+
+# 鑻ndroid API 楂樹簬27娣诲姞浠ヤ笅锛堜笉闇�瑕�/锛�:
+
+-dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder
+# for DexGuard only
+#-keep resource xmlelements manifest/application/meta-data@value=GlideModule
+-keep class com.xuexiang.xupdate.entity.** { *; }
+
+# Note: if you use a custom API parser for parsing, you need to add confusion to your custom API entities. Here are the custom API entity obfuscation rules configured in this demo:
+-keep class com.xuexiang.xupdatedemo.entity.** { *; }
+
+-keep class com.hjq.permissions.** {*;}
+
+#鑵捐鐩稿叧
+-keep class com.qq.** {*;}
+-keep class com.tencent.** {*;}
+#鏉冮檺鐢宠
+-keep class com.hjq.** {*;}
+#鍒楄〃鐩稿叧
+-keep class com.scwang.** {*;}
+#鍏朵粬
+-keep class com.contrarywind.** {*;}
+-keep class com.bigkoo.** {*;}
+-keep class org.** {*;}
+#褰撳墠妯″潡
+-keep class com.dayu.baselibrary.R
+-keep class com.dayu.baselibrary.activity.** {*;}
+-keep class com.dayu.baselibrary.view.** {*;}
+-keep class com.dayu.baselibrary.bean.** {*;}
+-keep class com.dayu.baselibrary.dbbean.** {*;}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/dao/BaseDaoSingleton.java b/baselibrary/src/main/java/com/dayu/baselibrary/dao/BaseDaoSingleton.java
index 3d09e8f..2b40851 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/dao/BaseDaoSingleton.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/dao/BaseDaoSingleton.java
@@ -2,6 +2,7 @@
 
 import android.content.Context;
 import android.os.Environment;
+import android.util.Log;
 
 import androidx.room.Room;
 
diff --git a/henanlibrary/build.gradle b/henanlibrary/build.gradle
index 02deea0..5ae6fac 100644
--- a/henanlibrary/build.gradle
+++ b/henanlibrary/build.gradle
@@ -14,7 +14,7 @@
 
     buildTypes {
         release {
-            minifyEnabled false
+            minifyEnabled true
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
     }
diff --git a/henanlibrary/proguard-rules.pro b/henanlibrary/proguard-rules.pro
index 481bb43..8311792 100644
--- a/henanlibrary/proguard-rules.pro
+++ b/henanlibrary/proguard-rules.pro
@@ -18,4 +18,136 @@
 
 # If you keep the line number information, uncomment this to
 # hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
+#-renamesourcefileattribute SourceFile
+-keepattributes SourceFile,LineNumberTable
+-keepattributes Exceptions, Signature, InnerClasses
+-keepclasseswithmembernames class * { # 淇濇寔native鏂规硶涓嶈娣锋穯
+    native <methods>;
+}
+-keep class * implements Android.os.Parcelable { # 淇濇寔Parcelable涓嶈娣锋穯
+    public static final Android.os.Parcelable$Creator *;
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keepattributes *Annotation*        #淇濇寔娉ㄨВ
+#---------------------------------榛樿淇濈暀鍖�---------------------------------
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class * extends android.view.View
+-keep public class com.android.vending.licensing.ILicensingService
+-keep class android.support.** {*;}
+
+-keepclasseswithmembernames class * {
+    native <methods>;
+}
+-keepclassmembers class * extends android.app.Activity{
+    public void *(android.view.View);
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keep public class * extends android.view.View{
+    *** get*();
+    void set*(***);
+    public <init>(android.content.Context);
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keepclasseswithmembers class * {
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keep class * implements android.os.Parcelable {
+  public static final android.os.Parcelable$Creator *;
+}
+-keepclassmembers class * implements java.io.Serializable {
+    static final long serialVersionUID;
+    private static final java.io.ObjectStreamField[] serialPersistentFields;
+    private void writeObject(java.io.ObjectOutputStream);
+    private void readObject(java.io.ObjectInputStream);
+    java.lang.Object writeReplace();
+    java.lang.Object readResolve();
+}
+-keep class **.R$* {
+ *;
+}
+-keepclassmembers class * {
+    void *(**On*Event);
+}
+# 绉婚櫎鏃ュ織璇彞
+-assumenosideeffects class android.util.Log {
+    public static *** d(...);
+#    public static *** v(...);
+#    public static *** i(...);
+#    public static *** w(...);
+#    public static *** e(...);
+}
+#----------------------------------------------------------------------------
+-keep public class * extends android.view.View {
+}
+-keep class **.R$* {*;}
+
+#okhttp
+-dontwarn okhttp3.**
+-keep class okhttp3.**{*;}
+-keep interface okhttp3.**{*;}
+
+#rxjava
+-keep public class io.reactivex.android.**{*;}
+-keep public class io.reactivex.**{*;}
+-keep public class rx.android.**{*;}
+-keep public class rx.**{*;}
+-keep public class javax.annotation.**{*;}
+-keep public class javax.inject.**{*;}
+-keep class com.google.gson.** { *; }
+#glide
+-keep public class com.bumptech.glide.**{*;}
+-keep public class com.luck.picture.lib.**{*;}
+-keep public class androidx.**{*;}
+
+-keep public class com.bumptech.**{*;}
+-keep public class com.scwang.**{*;}
+-keep public class kotlin.**{*;}
+-keep public class retrofit2.**{*;}
+-keep public class okio.**{*;}
+-keep public class com.google.**{*;}
+
+
+# 鑻ndroid API 楂樹簬27娣诲姞浠ヤ笅锛堜笉闇�瑕�/锛�:
+
+-dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder
+# for DexGuard only
+#-keep resource xmlelements manifest/application/meta-data@value=GlideModule
+-keep class com.xuexiang.xupdate.entity.** { *; }
+
+# Note: if you use a custom API parser for parsing, you need to add confusion to your custom API entities. Here are the custom API entity obfuscation rules configured in this demo:
+-keep class com.xuexiang.xupdatedemo.entity.** { *; }
+
+-keep class com.hjq.permissions.** {*;}
+
+#鑵捐鐩稿叧
+-keep class com.qq.** {*;}
+-keep class com.tencent.** {*;}
+#鏉冮檺鐢宠
+-keep class com.hjq.** {*;}
+#鍒楄〃鐩稿叧
+-keep class com.scwang.** {*;}
+#鍏朵粬
+-keep class com.contrarywind.** {*;}
+-keep class com.bigkoo.** {*;}
+-keep class org.** {*;}
+#褰撳墠妯″潡
+-keep class com.dayu.henanlibrary.view.** {*;}
+-keep class com.dayu.henanlibrary.activity.** {*;}
+-keep class com.dayu.henanlibrary.card.** {*;}
+-keep class com.dayu.henanlibrary.dbBean.** {*;}
+-keep class com.dayu.henanlibrary.net.** {*;}
+-keep class com.dayu.henanlibrary.socketBean.** {*;}
\ No newline at end of file
diff --git a/qihealonelibrary/build.gradle b/qihealonelibrary/build.gradle
index 08d91f6..527f133 100644
--- a/qihealonelibrary/build.gradle
+++ b/qihealonelibrary/build.gradle
@@ -14,7 +14,7 @@
 
     buildTypes {
         release {
-            minifyEnabled false
+            minifyEnabled true
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
     }
diff --git a/qihealonelibrary/proguard-rules.pro b/qihealonelibrary/proguard-rules.pro
index 481bb43..8961f96 100644
--- a/qihealonelibrary/proguard-rules.pro
+++ b/qihealonelibrary/proguard-rules.pro
@@ -18,4 +18,135 @@
 
 # If you keep the line number information, uncomment this to
 # hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
+#-renamesourcefileattribute SourceFile
+-keepattributes SourceFile,LineNumberTable
+-keepattributes Exceptions, Signature, InnerClasses
+-keepclasseswithmembernames class * { # 淇濇寔native鏂规硶涓嶈娣锋穯
+    native <methods>;
+}
+-keep class * implements Android.os.Parcelable { # 淇濇寔Parcelable涓嶈娣锋穯
+    public static final Android.os.Parcelable$Creator *;
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keepattributes *Annotation*        #淇濇寔娉ㄨВ
+#---------------------------------榛樿淇濈暀鍖�---------------------------------
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class * extends android.view.View
+-keep public class com.android.vending.licensing.ILicensingService
+-keep class android.support.** {*;}
+
+-keepclasseswithmembernames class * {
+    native <methods>;
+}
+-keepclassmembers class * extends android.app.Activity{
+    public void *(android.view.View);
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keep public class * extends android.view.View{
+    *** get*();
+    void set*(***);
+    public <init>(android.content.Context);
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keepclasseswithmembers class * {
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keep class * implements android.os.Parcelable {
+  public static final android.os.Parcelable$Creator *;
+}
+-keepclassmembers class * implements java.io.Serializable {
+    static final long serialVersionUID;
+    private static final java.io.ObjectStreamField[] serialPersistentFields;
+    private void writeObject(java.io.ObjectOutputStream);
+    private void readObject(java.io.ObjectInputStream);
+    java.lang.Object writeReplace();
+    java.lang.Object readResolve();
+}
+-keep class **.R$* {
+ *;
+}
+-keepclassmembers class * {
+    void *(**On*Event);
+}
+# 绉婚櫎鏃ュ織璇彞
+-assumenosideeffects class android.util.Log {
+    public static *** d(...);
+#    public static *** v(...);
+#    public static *** i(...);
+#    public static *** w(...);
+#    public static *** e(...);
+}
+#----------------------------------------------------------------------------
+-keep public class * extends android.view.View {
+}
+-keep class **.R$* {*;}
+
+#okhttp
+-dontwarn okhttp3.**
+-keep class okhttp3.**{*;}
+-keep interface okhttp3.**{*;}
+
+#rxjava
+-keep public class io.reactivex.android.**{*;}
+-keep public class io.reactivex.**{*;}
+-keep public class rx.android.**{*;}
+-keep public class rx.**{*;}
+-keep public class javax.annotation.**{*;}
+-keep public class javax.inject.**{*;}
+-keep class com.google.gson.** { *; }
+#glide
+-keep public class com.bumptech.glide.**{*;}
+-keep public class com.luck.picture.lib.**{*;}
+-keep public class androidx.**{*;}
+
+-keep public class com.bumptech.**{*;}
+-keep public class com.scwang.**{*;}
+-keep public class kotlin.**{*;}
+-keep public class retrofit2.**{*;}
+-keep public class okio.**{*;}
+-keep public class com.google.**{*;}
+
+
+# 鑻ndroid API 楂樹簬27娣诲姞浠ヤ笅锛堜笉闇�瑕�/锛�:
+
+-dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder
+# for DexGuard only
+#-keep resource xmlelements manifest/application/meta-data@value=GlideModule
+-keep class com.xuexiang.xupdate.entity.** { *; }
+
+# Note: if you use a custom API parser for parsing, you need to add confusion to your custom API entities. Here are the custom API entity obfuscation rules configured in this demo:
+-keep class com.xuexiang.xupdatedemo.entity.** { *; }
+
+-keep class com.hjq.permissions.** {*;}
+
+#鑵捐鐩稿叧
+-keep class com.qq.** {*;}
+-keep class com.tencent.** {*;}
+#鏉冮檺鐢宠
+-keep class com.hjq.** {*;}
+#鍒楄〃鐩稿叧
+-keep class com.scwang.** {*;}
+#鍏朵粬
+-keep class com.contrarywind.** {*;}
+-keep class com.bigkoo.** {*;}
+-keep class org.** {*;}
+#褰撳墠妯″潡
+-keep class com.dayu.qihealonelibrary.view.** {*;}
+-keep class com.dayu.qihealonelibrary.card.** {*;}
+-keep class com.dayu.qihealonelibrary.activity.** {*;}
+-keep class com.dayu.qihealonelibrary.dbBean.** {*;}
+
diff --git a/qiheonlinelibrary/build.gradle b/qiheonlinelibrary/build.gradle
index 3aacde8..8f63ea4 100644
--- a/qiheonlinelibrary/build.gradle
+++ b/qiheonlinelibrary/build.gradle
@@ -14,7 +14,7 @@
 
     buildTypes {
         release {
-            minifyEnabled false
+            minifyEnabled true
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
     }
diff --git a/qiheonlinelibrary/proguard-rules.pro b/qiheonlinelibrary/proguard-rules.pro
index 4731eef..18afb05 100644
--- a/qiheonlinelibrary/proguard-rules.pro
+++ b/qiheonlinelibrary/proguard-rules.pro
@@ -19,7 +19,133 @@
 # If you keep the line number information, uncomment this to
 # hide the original source file name.
 #-renamesourcefileattribute SourceFile
+-keepattributes SourceFile,LineNumberTable
+-keepattributes Exceptions, Signature, InnerClasses
+-keepclasseswithmembernames class * { # 淇濇寔native鏂规硶涓嶈娣锋穯
+    native <methods>;
+}
+-keep class * implements Android.os.Parcelable { # 淇濇寔Parcelable涓嶈娣锋穯
+    public static final Android.os.Parcelable$Creator *;
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keepattributes *Annotation*        #淇濇寔娉ㄨВ
+#---------------------------------榛樿淇濈暀鍖�---------------------------------
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class * extends android.view.View
+-keep public class com.android.vending.licensing.ILicensingService
+-keep class android.support.** {*;}
 
--keep class androidx.room.** { *; }
--keep @androidx.room.** class *
--keep interface androidx.room.** { *; }
\ No newline at end of file
+-keepclasseswithmembernames class * {
+    native <methods>;
+}
+-keepclassmembers class * extends android.app.Activity{
+    public void *(android.view.View);
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+-keep public class * extends android.view.View{
+    *** get*();
+    void set*(***);
+    public <init>(android.content.Context);
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keepclasseswithmembers class * {
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keep class * implements android.os.Parcelable {
+  public static final android.os.Parcelable$Creator *;
+}
+-keepclassmembers class * implements java.io.Serializable {
+    static final long serialVersionUID;
+    private static final java.io.ObjectStreamField[] serialPersistentFields;
+    private void writeObject(java.io.ObjectOutputStream);
+    private void readObject(java.io.ObjectInputStream);
+    java.lang.Object writeReplace();
+    java.lang.Object readResolve();
+}
+-keep class **.R$* {
+ *;
+}
+-keepclassmembers class * {
+    void *(**On*Event);
+}
+# 绉婚櫎鏃ュ織璇彞
+-assumenosideeffects class android.util.Log {
+    public static *** d(...);
+#    public static *** v(...);
+#    public static *** i(...);
+#    public static *** w(...);
+#    public static *** e(...);
+}
+#----------------------------------------------------------------------------
+-keep public class * extends android.view.View {
+}
+-keep class **.R$* {*;}
+
+#okhttp
+-dontwarn okhttp3.**
+-keep class okhttp3.**{*;}
+-keep interface okhttp3.**{*;}
+
+#rxjava
+-keep public class io.reactivex.android.**{*;}
+-keep public class io.reactivex.**{*;}
+-keep public class rx.android.**{*;}
+-keep public class rx.**{*;}
+-keep public class javax.annotation.**{*;}
+-keep public class javax.inject.**{*;}
+-keep class com.google.gson.** { *; }
+#glide
+-keep public class com.bumptech.glide.**{*;}
+-keep public class com.luck.picture.lib.**{*;}
+-keep public class androidx.**{*;}
+
+-keep public class com.bumptech.**{*;}
+-keep public class com.scwang.**{*;}
+-keep public class kotlin.**{*;}
+-keep public class retrofit2.**{*;}
+-keep public class okio.**{*;}
+-keep public class com.google.**{*;}
+
+
+# 鑻ndroid API 楂樹簬27娣诲姞浠ヤ笅锛堜笉闇�瑕�/锛�:
+
+-dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder
+# for DexGuard only
+#-keep resource xmlelements manifest/application/meta-data@value=GlideModule
+-keep class com.xuexiang.xupdate.entity.** { *; }
+
+# Note: if you use a custom API parser for parsing, you need to add confusion to your custom API entities. Here are the custom API entity obfuscation rules configured in this demo:
+-keep class com.xuexiang.xupdatedemo.entity.** { *; }
+
+-keep class com.hjq.permissions.** {*;}
+
+#鑵捐鐩稿叧
+-keep class com.qq.** {*;}
+-keep class com.tencent.** {*;}
+#鏉冮檺鐢宠
+-keep class com.hjq.** {*;}
+#鍒楄〃鐩稿叧
+-keep class com.scwang.** {*;}
+#鍏朵粬
+-keep class com.contrarywind.** {*;}
+-keep class com.bigkoo.** {*;}
+-keep class org.** {*;}
+#褰撳墠妯″潡
+-keep class com.dayu.qiheonlinelibrary.view.** {*;}
+-keep class com.dayu.qiheonlinelibrary.activity.** {*;}
+-keep class com.dayu.qiheonlinelibrary.card.** {*;}
+-keep class com.dayu.qiheonlinelibrary.dbBean.** {*;}
\ No newline at end of file
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
index 122fc9c..967de28 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
@@ -1,7 +1,5 @@
 package com.dayu.qiheonlinelibrary.activity;
 
-import android.annotation.SuppressLint;
-import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.Editable;
@@ -11,37 +9,25 @@
 import android.view.View;
 import android.widget.EditText;
 
-import com.dayu.baselibrary.tools.HexUtil;
 import com.dayu.baselibrary.utils.DeviceUtils;
 import com.dayu.baselibrary.utils.MornyUtil;
 import com.dayu.baselibrary.utils.TipUtil;
-
-
-import com.dayu.baselibrary.utils.ToastUtil;
-import com.dayu.baselibrary.view.TipDialog;
 import com.dayu.qiheonlinelibrary.QHOnLineApplication;
 import com.dayu.qiheonlinelibrary.R;
 import com.dayu.qiheonlinelibrary.bean.CardInfoResult;
 import com.dayu.qiheonlinelibrary.bean.RechargeResult;
 import com.dayu.qiheonlinelibrary.card.UserCard;
 import com.dayu.qiheonlinelibrary.databinding.ActivityRechargeQhlBinding;
-import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean;
-import com.dayu.qiheonlinelibrary.dbBean.ElectricPriceBean;
 import com.dayu.qiheonlinelibrary.dbBean.RechargeBean;
-import com.dayu.qiheonlinelibrary.dbBean.UserCardBean;
 import com.dayu.qiheonlinelibrary.net.ApiManager;
 import com.dayu.qiheonlinelibrary.net.BaseResponse;
-import com.dayu.qiheonlinelibrary.net.RSAUtile;
 import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
 import com.dayu.qiheonlinelibrary.tools.NfcReadHelper;
 import com.dayu.qiheonlinelibrary.utils.CardCommon;
 import com.tencent.bugly.crashreport.CrashReport;
 
-import java.text.SimpleDateFormat;
 import java.util.Calendar;
-import java.util.Date;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 
@@ -68,7 +54,7 @@
 
     CardInfoResult cardInfoResult;
 
-    UserCard mOldUserCard;
+
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -106,13 +92,24 @@
             cardType = cardType.split(",")[1];
         }
         //鑾峰彇鍗″唴淇℃伅
-        mOldUserCard = NfcReadHelper.getInstence(intent, this).getUserCardData();
-        getUserInfoAndCardInfo(cardNumber,mOldUserCard.getMyUserCode());
+        userCard = NfcReadHelper.getInstence(intent, this).getUserCardData();
+        if (userCard != null) {
+            try {
+                getUserInfoAndCardInfo(cardNumber, userCard.getMyUserCode());
+            } catch (Exception e) {
+                e.printStackTrace();
+                CrashReport.postCatchedException(e);
+                TipUtil.show(this, "璇诲崱澶辫触锛岃鍒峰崱鍚庝笉瑕佺珛鍗崇Щ寮�");
+            }
+        } else {
+            TipUtil.show(this, "璇诲崱澶辫触锛岃鍒峰崱鍚庝笉瑕佺珛鍗崇Щ寮�");
+        }
+
 
     }
 
 
-    private void setUserData(String cardNumber, String userName, String lastRechargeTime, List<byte[]> data) {
+    private void setUserData(String cardNumber, String userName, String lastRechargeTime) {
         if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_1)) {
             setCardState("缁堢鍐欏崱");
             binding.rechargeLL.setVisibility(View.VISIBLE);
@@ -127,25 +124,31 @@
             TipUtil.show(this, "闈炵敤鎴峰崱锛屼笉鑳藉厖鍊�");
             return;
         }
+        if (userCard != null) {
+            try {
+                if (Integer.valueOf(QHOnLineApplication.getInstance().arerNumber) == userCard.getArerNumber()) {
+                    binding.rechargeReadLL.setVisibility(View.GONE);
+                    binding.rechargeTextLL.setVisibility(View.VISIBLE);
+                    binding.userName.setText(userName);
+                    binding.redInitCode.setText(cardNumber);
+                    binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細\n\n" + lastRechargeTime);
+                    binding.redUserCode.setText(cardInfoResult.getIccardCode());
+                    if (userCard != null) {
+                        binding.redRemainderBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + " 鍏�");
+                        binding.redBalanceElectric.setText("鍏呭�煎悗鍓╀綑鐢甸噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusElecticity()) + " 搴�");
+                    }
+                    binding.redRechargeElectric.setText("鐢甸噺鍗曚环锛�" + QHOnLineApplication.getInstance().electriclePriceStr + "鍏�/搴�");
 
-        userCard = UserCard.getBean(data);
-
-        if (Integer.valueOf(QHOnLineApplication.getInstance().arerNumber) == userCard.getArerNumber()) {
-
-            binding.rechargeReadLL.setVisibility(View.GONE);
-            binding.rechargeTextLL.setVisibility(View.VISIBLE);
-            binding.userName.setText(userName);
-            binding.redInitCode.setText(cardNumber);
-            binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細\n\n" + lastRechargeTime);
-            binding.redUserCode.setText(cardInfoResult.getIccardCode());
-            if (userCard != null) {
-                binding.redRemainderBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + " 鍏�");
-                binding.redBalanceElectric.setText("鍏呭�煎悗鍓╀綑鐢甸噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusElecticity()) + " 搴�");
+                } else {
+                    TipUtil.show(this, "闈炴湰鍖哄煙鍗n涓嶈兘鍏呭�硷紒锛侊紒");
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                CrashReport.postCatchedException(e);
+                TipUtil.show(this, "璇诲崱澶辫触锛岃鍒峰崱鍚庝笉瑕佺珛鍗崇Щ寮�");
             }
-            binding.redRechargeElectric.setText("鐢甸噺鍗曚环锛�" + QHOnLineApplication.getInstance().electriclePriceStr + "鍏�/搴�");
-
         } else {
-            TipUtil.show(this, "闈炴湰鍖哄煙鍗n涓嶈兘鍏呭�硷紒锛侊紒");
+            TipUtil.show(this, "璇诲崱澶辫触锛岃鍒峰崱鍚庝笉瑕佺珛鍗崇Щ寮�");
         }
 
 
@@ -225,7 +228,7 @@
     private void startNfcActivity(String morny, String balance, float rechargeElectric, float iccardBalanceElectric, float totalMorny, String iccardRechargeRecordId) {
         //鍏堝鐞嗚ˉ鎵�
         //鍏呭�艰ˉ鎵i噾棰�=鍏呭�奸噾棰�+鍏呭�煎墠璇诲彇鐨勫崱鍐呬綑棰�-鍏呭�煎洖璋冭繑鍥炲崱鍐呬綑棰�
-        int deductionMorny = MornyUtil.changeY2F(morny) + mOldUserCard.getBalance() - MornyUtil.changeY2F(balance);
+        int deductionMorny = MornyUtil.changeY2F(morny) + userCard.getBalance() - MornyUtil.changeY2F(balance);
 
         if (MornyUtil.changeY2F(morny) < deductionMorny) {
             TipUtil.show(RechargeActivity.this, "褰撳墠鍏呭�奸噾棰濆皬浜庤ˉ鎵i噾棰濓紝琛ユ墸閲戦涓�" + MornyUtil.changeF2Y(deductionMorny) + "鍏冿紝鍏呭�奸噾棰濆簲澶т簬琛ユ墸閲戦锛�");
@@ -341,11 +344,11 @@
                     if (t.getData() != null) {
                         //ic鍗$姸鎬� 0 姝e父 1 宸叉敞閿� 2 宸叉寕澶�
                         if (t.getData().getIccardStatus() == 0) {
-                            List<byte[]> data = NfcReadHelper.getInstence(intent, RechargeActivity.this).getOnesectorData();
+//                            List<byte[]> data = NfcReadHelper.getInstence(intent, RechargeActivity.this).getOnesectorData();
                             if (!data.isEmpty()) {
                                 if (!TextUtils.isEmpty(cardNumber)) {
                                     cardInfoResult = t.getData();
-                                    setUserData(cardNumber, cardInfoResult.getPeasantName(), cardInfoResult.getLastRechargeTime(), data);
+                                    setUserData(cardNumber, cardInfoResult.getPeasantName(), cardInfoResult.getLastRechargeTime());
                                 } else {
                                     TipUtil.show(RechargeActivity.this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱");
                                 }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java
index fc8f768..eb90138 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java
@@ -7,7 +7,8 @@
  * Description:
  */
 public class Constants {
-    public static final String BASE_URL = "http://120.46.45.35:20081/api/sjggqhtest/";
+//    http://120.46.45.35:20081/api/sjggqhtest/
+    public static final String BASE_URL = "http://120.46.45.35:20081/api/sjgg/";
 
     /**
      * 浠h〃璇锋眰鎴愬姛

--
Gitblit v1.8.0