diff --git a/app/build.gradle b/app/build.gradle index cafa753..a168be9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,8 +14,8 @@ android { applicationId "com.utsmm.kbz" minSdk 24 targetSdk 33 - versionCode 17 - versionName "1.16" + versionCode 1 + versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -43,6 +43,7 @@ android { dimension "env" applicationId "com.utsmm.kbz" versionNameSuffix "" + resValue "string", "app_name", "KBZ-POS" } } @@ -76,7 +77,8 @@ android { buildTypes { release { - minifyEnabled false + minifyEnabled true + shrinkResources false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index ffc2c10..e0365c6 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -23,4 +23,89 @@ # Keep Bouncy Castle classes for security providers -keep class org.bouncycastle.** { *; } --dontwarn org.bouncycastle.** \ No newline at end of file +-dontwarn org.bouncycastle.** +-keep class com.squareup.okhttp.** { *; } +-dontwarn org.conscrypt.Conscrypt$Version +-dontwarn org.conscrypt.Conscrypt +-dontwarn org.conscrypt.ConscryptHostnameVerifier +-dontwarn org.openjsse.javax.net.ssl.SSLParameters +-dontwarn org.openjsse.javax.net.ssl.SSLSocket +-dontwarn org.openjsse.net.ssl.OpenJSSE + +############################ +# HILT +############################ +-keep class dagger.hilt.** { *; } +-keep class javax.inject.** { *; } +-keep class * extends dagger.hilt.internal.GeneratedComponent { *; } +-keep class * extends dagger.hilt.internal.GeneratedComponentManager { *; } +-keep class hilt_aggregated_deps.** { *; } + +############################ +# ANDROIDX NAVIGATION +############################ +-keep class androidx.navigation.** { *; } + +############################ +# DATA BINDING +############################ +-keep class **.databinding.*Binding { *; } +-keep class androidx.databinding.** { *; } + +############################ +# FRAGMENTS +############################ +-keep class * extends androidx.fragment.app.Fragment + +############################ +# SERIALIZABLE / PARCELABLE +############################ +-keepclassmembers class * implements java.io.Serializable { + static final long serialVersionUID; +} + +############################ +# NEXGO / SUNMI / PAYLIBS +############################ +-keep class com.nexgo.** { *; } +-keep class com.sunmi.** { *; } +-keep class com.utsmyanmar.** { *; } +-keep class com.kizzy.xpay.** { *; } + +############################ +# ENUMS (ISO / TRANSACTION TYPES) +############################ +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +# Keep Retrofit generic signatures +-keepattributes Signature +-keepattributes *Annotation* + +# RxJava +-keep class io.reactivex.** { *; } +-dontwarn io.reactivex.** + +# Retrofit +-keep class retrofit2.** { *; } +-dontwarn retrofit2.** + +# Your API interfaces +-keep interface com.utsmyanmar.baselib.api.** { *; } + +# Your response models +-keep class com.utsmyanmar.baselib.model.** { *; } + +# Keep model fields for Gson +-keepclassmembers class * { + @com.google.gson.annotations.SerializedName ; +} + +# Or keep all models directly (simpler & safer) +-keep class com.utsmyanmar.baselib.model.** { *; } + +-keep class androidx.lifecycle.** { *; } +-keep class * extends androidx.lifecycle.ViewModel { *; } +-keep class com.utsmyanmar.baselib.repo.** { *; } \ No newline at end of file diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java index 674bb4d..a24aa96 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java @@ -343,9 +343,9 @@ public abstract class BaseXPrint { // print2ColumnsStringNoSpace("AID :", MPU_AID); // } - if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) { - print2ColumnsStringNoSpace("TXN ID :",payDetail.getReferNo()); - } +// if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) { +// print2ColumnsStringNoSpace("TXN ID :",payDetail.getReferNo()); +// } @@ -1115,7 +1115,7 @@ public abstract class BaseXPrint { // printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false); printer.appendPrnStr("INV NO :" + invoiceNo , fontNormal, AlignEnum.LEFT,false); } else if (!payDetail.getTransType().equals(SETTLEMENT) && !payDetail.getTransType().equals(SUMMARY) && payDetail.getTransactionType() != TransactionsType.MMQR_REFUND.value && payDetail.getTransactionType() != TransactionsType.MMQR.value) { - printer.appendPrnStr("BTH NO :" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false); + printer.appendPrnStr("BTH NO :" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false); } else if (payDetail.getTransType().equals(SUMMARY)) { printer.appendPrnStr("HOST :" + HOST_NAME_MPU + "", fontNormal, AlignEnum.LEFT,false); }