|
|
|
# Add project specific ProGuard rules here.
|
|
|
|
# You can control the set of applied configuration files using the
|
|
|
|
# proguardFiles setting in build.gradle.kts.
|
|
|
|
#
|
|
|
|
# For more details, see
|
|
|
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
|
|
|
|
|
|
# JNA
|
|
|
|
-dontwarn java.awt.*
|
|
|
|
-keep class com.sun.jna.** { *; }
|
|
|
|
-keep class * implements com.sun.jna.** { *; }
|
|
|
|
|
|
|
|
# TagSoup, coming from the RTE library
|
|
|
|
-keep class org.ccil.cowan.tagsoup.** { *; }
|
|
|
|
|
|
|
|
# kotlinx.serialization
|
|
|
|
|
|
|
|
# Kotlin serialization looks up the generated serializer classes through a function on companion
|
|
|
|
# objects. The companions are looked up reflectively so we need to explicitly keep these functions.
|
|
|
|
-keepclasseswithmembers class **.*$Companion {
|
|
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
|
|
}
|
|
|
|
# If a companion has the serializer function, keep the companion field on the original type so that
|
|
|
|
# the reflective lookup succeeds.
|
|
|
|
-if class **.*$Companion {
|
|
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
|
|
}
|
|
|
|
-keepclassmembers class <1>.<2> {
|
|
|
|
<1>.<2>$Companion Companion;
|
|
|
|
}
|
|
|
|
|
|
|
|
# OkHttp platform used only on JVM and when Conscrypt and other security providers are available.
|
|
|
|
# Taken from https://raw.githubusercontent.com/square/okhttp/master/okhttp/src/jvmMain/resources/META-INF/proguard/okhttp3.pro
|
|
|
|
-dontwarn okhttp3.internal.platform.**
|
|
|
|
-dontwarn org.conscrypt.**
|
|
|
|
-dontwarn org.bouncycastle.**
|
|
|
|
-dontwarn org.openjsse.**
|
|
|
|
|
|
|
|
# Needed for Posthog
|
|
|
|
-keepclassmembers class android.view.JavaViewSpy {
|
|
|
|
static int windowAttachCount(android.view.View);
|
|
|
|
}
|
|
|
|
|
|
|
|
-keep class io.element.android.x.di.** { *; }
|