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