# 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
#指定压缩级别
-optimizationpasses 5

#不跳过非公共的库的类成员
-dontskipnonpubliclibraryclassmembers

#混淆时采用的算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

#把混淆类中的方法名也混淆了
-useuniqueclassmembernames

#优化时允许访问并修改有修饰符的类和类的成员
-allowaccessmodification

-dontusemixedcaseclassnames
-verbose

-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

# Optimization is turned off by default. Dex does not like code run
# through the ProGuard optimize and preverify steps (and performs some
# of these optimizations on its own).
-dontoptimize
-dontpreverify
# Note that if you want to enable optimization, you cannot just
# include optimization flags in your own project configuration file;
# instead you will need to point to the
# "proguard-android-optimize.txt" file instead of this one from your
# project.properties file.

#-keepattributes *Annotation*
-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 com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames class * {
    native <methods>;
}

# keep setters in Views so that animations can still work.
# see http://proguard.sourceforge.net/manual/examples.html#beans
-keep public class * extends android.view.View {
    public *;
}
# If your project uses WebView with JS, uncomment the following
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
    public *;
}
-keepclassmembers class * extends android.webkit.webViewClient {
    public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
    public boolean *(android.webkit.WebView, java.lang.String);
}
-keepclassmembers class * extends android.webkit.webViewClient {
    public void *(android.webkit.webView, jav.lang.String);
}

# We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep public class * implements java.io.Serializable {
    public *;
}

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

# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version.  We know about them, and they are safe.
-dontwarn android.support.**

# Understand the @Keep support annotation.
-keep class android.support.annotation.Keep

-keep @android.support.annotation.Keep class * {*;}

-keepclasseswithmembers class * {
    @android.support.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
    @android.support.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
    @android.support.annotation.Keep <init>(...);
}

##############################################################
#-keep class com.hisavana.**

-keep public class com.hisavana.mediation.ad.TBannerAd {
public *;
}

-keep public class com.hisavana.mediation.ad.TInterstitialAd {
public *;
}

-keep public class com.hisavana.mediation.ad.TNativeAd {
public *;
}

-keep public class com.hisavana.mediation.ad.TSplashAd {
public *;
}

-keep public class com.hisavana.mediation.ad.TVideoAd {
public *;
}

-keep public class com.hisavana.mediation.ad.TRewardedVideoAd {
public *;
}

-keep public class com.hisavana.mediation.ad.TemplateStyle {
public *;
}

-keep public class com.hisavana.mediation.bean.**{
*;
}


-keep public class com.hisavana.mediation.config.TAdManager {
    public *;
}

-keep public class com.hisavana.mediation.config.TAdManager$* {
    public *;
}


-keep public class com.hisavana.mediation.ad.ViewBinder{
    public *;
}

-keep public class com.hisavana.mediation.ad.ViewBinder$*{
    public *;
}

############################interface##############################
-keep class * implements java.lang.Runnable { *; }
-keep class * implements com.hisavana.common.toolbox.interfacez.ResponseListener { *; }
-keep class * implements java.util.Comparator { *; }


############################childClass#############################
-keep public class * extends com.hisavana.common.interfacz.TAdListener { *; }
-keep public class * extends com.hisavana.common.bean.NativeAdWrapper { *; }

-dontwarn android.support.**
-dontwarn com.hisavana.fblibrary.**
-dontwarn com.hisavana.admoblibrary.**

-dontwarn com.hisavana.adxlibrary.**
-dontwarn com.hisavana.adx.**


