# 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.** { *; } -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.** { *; }