-dontwarn com.yandex.metrica.**

-keeppackagenames com.yandex.metrica*

-keep class com.yandex.metrica.impl.ob.** { *; }
-dontwarn com.yandex.metrica.impl.ob.**

-keep class com.yandex.metrica.impl.ac.** { *; }
-dontwarn com.yandex.metrica.impl.ac.**

-keep class com.android.installreferrer.api.* { *; }
-dontwarn com.android.installreferrer.api.*

-keep class com.google.protobuf.nano.ym.* {
    *;
}

-keep class com.android.installreferrer.api.* {
    *;
}

-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient** {
    *;
}

-keep class kotlin.KotlinVersion {
    *;
}

# Important Yandex Metrica classes
-keep class com.yandex.metrica.CounterConfiguration
-keep public class com.yandex.metrica.MetricaService
-keep public interface com.yandex.metrica.IMetricaService
-keep public class com.yandex.metrica.PreloadInfoContentProvider

-keep public class com.yandex.metrica.ConfigurationService {
    public <methods>;
    public <init>();
}

-keep public class com.yandex.metrica.ConfigurationJobService {
    public <methods>;
    public <init>();
}

# Yandex Metrica API
-keep public class com.yandex.metrica.YandexMetrica {
	public <methods>;
}

-keep public class com.yandex.metrica.YandexMetricaDefaultValues* {
    public static final *;
}

-keep public interface com.yandex.metrica.IReporter {
    public <methods>;
}

-keep public class com.yandex.metrica.DeferredDeeplinkParametersListener** {
    *;
}

-keep public class com.yandex.metrica.DeferredDeeplinkListener** {
    *;
}

-keep public class com.yandex.metrica.AppMetricaDeviceIDListener** {
    *;
}

-keep public class com.yandex.metrica.PreloadInfo* {
    public <methods>;
}

-keep public class com.yandex.metrica.profile.* {
    public <methods>;
}

-keep public class com.yandex.metrica.YandexMetricaConfig* {
    public <methods>;
    public <fields>;
}

-keep public class com.yandex.metrica.ReporterConfig* {
    public <methods>;
    public <fields>;
}

-keep public enum com.yandex.metrica.profile.GenderAttribute$Gender {
    *;
}

-keep public class com.yandex.metrica.Revenue* {
    public <methods>;
    public <fields>;
}

-keep public class com.yandex.metrica.ecommerce.* {
    public <methods>;
}

-keep public class com.yandex.metrica.plugins.* {
    public *;
}

-keep public interface com.yandex.metrica.plugins.* {
    public *;
}

-keep public class com.yandex.metrica.IIdentifierCallback** {
    *;
}

-keep public class com.yandex.metrica.IParamsCallback** {
    *;
}

-keep public class com.yandex.metrica.FeaturesResult {
    *;
}

# Bridge
-keep class com.yandex.metrica.p {
    <methods>;
}

-keep public interface com.yandex.metrica.p$Ucc {
    *;
}

-keep class com.yandex.metrica.h {
    <methods>;
}

-keep public class com.yandex.metrica.impl.interact.* {
    public *;
}

-keep class com.yandex.metrica.uiaccessor.FragmentLifecycleCallback {
    public <methods>;
}

-keep public class com.yandex.metrica.AppMetricaJsInterface {
    public <methods>;
    public <init>();
}

-keep public class com.yandex.metrica.AppMetricaInitializerJsInterface {
    public <methods>;
    public <init>();
}

-keep public class com.yandex.metrica.ValidationException

# https://st.yandex-team.ru/METRIKALIB-7624
-keep public class com.android.billingclient.BuildConfig {
    *;
}
-keep public class com.google.android.gms.appset.AppSet

-keep class com.unity3d.player.UnityPlayer
-keep class mono.MonoPackageManager
-keep class org.apache.cordova.CordovaPlugin
-keep class com.facebook.react.ReactRootView
-keep class io.flutter.embedding.engine.FlutterEngine

-keepattributes *Annotation*

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class com.yandex.metrica.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.DoNotInline class * {
    *;
}


-dontwarn com.google.android.gms.**
-keep class com.yandex.metrica.gpllibrary.GplLocationCallback { *; }
-keep class com.yandex.metrica.gpllibrary.GplOnSuccessListener { *; }
-keep class com.yandex.metrica.gpllibrary.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.gpllibrary.DoNotInline class * {
    *;
}



-keep class com.yandex.metrica.uiaccessor.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.uiaccessor.DoNotInline class * {
    *;
}


-keep class com.yandex.metrica.billing_interface.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.billing_interface.DoNotInline class * {
    *;
}


-keep class com.yandex.metrica.billing.v3.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.billing.v3.DoNotInline class * {
    *;
}


-keep class com.yandex.metrica.billing.v4.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.billing.v4.DoNotInline class * {
    *;
}


-keep class com.yandex.metrica.rtm.wrapper.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.rtm.wrapper.DoNotInline class * {
    *;
}



-dontwarn com.google.android.gms.**
-keep class com.yandex.metrica.gpllibrary.GplLocationCallback { *; }
-keep class com.yandex.metrica.gpllibrary.GplOnSuccessListener { *; }
-keep class com.yandex.metrica.gpllibrary.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.gpllibrary.DoNotInline class * {
    *;
}



-keep class com.yandex.metrica.uiaccessor.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.uiaccessor.DoNotInline class * {
    *;
}


-keep class com.yandex.metrica.billing_interface.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.billing_interface.DoNotInline class * {
    *;
}


-keep class com.yandex.metrica.billing.v3.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.billing.v3.DoNotInline class * {
    *;
}


-keep class com.yandex.metrica.billing.v4.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.billing.v4.DoNotInline class * {
    *;
}


-keep class com.yandex.metrica.rtm.wrapper.DoNotInline
-keep,allowobfuscation @com.yandex.metrica.rtm.wrapper.DoNotInline class * {
    *;
}

