KBZ-POS/app/proguard-rules.pro

111 lines
3.2 KiB
Prolog
Raw Normal View History

2025-11-13 08:15:18 +00:00
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
# Keep Bouncy Castle classes for security providers
-keep class org.bouncycastle.** { *; }
2026-01-12 15:40:15 +00:00
-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 <fields>;
}
# 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.** { *; }