# 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
-dontshrink

## proguard dictionary
-obfuscationdictionary proguard-dic-3.txt
-renamesourcefileattribute proguard-dic-3.txt
-classobfuscationdictionary proguard-dic-4.txt
-packageobfuscationdictionary proguard-dic-4.txt

# @Keep
-keep class * {
    @androidx.annotation.Keep <fields>;
    @androidx.annotation.Keep <methods>;
}

## Log
-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
    public static *** w(...);
    public static *** i(...);
    public static *** wtf(...);
}
-assumenosideeffects class com.atmob.common.logging.AtmobLog {
    public static *** d(...);
    public static *** v(...);
    public static *** w(...);
    public static *** i(...);
    public static *** wtf(...);
}

## native
-keepclasseswithmembernames class * {
    native <methods>;
}

## res
-keepclassmembers class **.R$* {
    public static <fields>;
}

## ViewBinding & DataBinding
-keep class * implements androidx.viewbinding.ViewBinding {
    public inflate(android.view.LayoutInflater);
    public inflate(android.view.LayoutInflater, android.view.ViewGroup, boolean);
}

# common config end

# RxJava start
-dontwarn java.util.concurrent.Flow*
# RxJava end

# Glide start
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep class * extends com.bumptech.glide.module.AppGlideModule {
 <init>(...);
}
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}
-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder {
  *** rewind();
}
# Glide end

