# Classes which are called reflectively from JNI.
-keep, includedescriptorclasses class dev.specto.android.core.internal.logging.NativeLogManager { *; }
-keep, includedescriptorclasses class dev.specto.android.core.internal.logging.NativeLoggerImpl { *; }
-keep, includedescriptorclasses class dev.specto.android.core.internal.native.NativeTimeImpl { *; }
-keep, includedescriptorclasses class dev.specto.android.core.internal.native.PluginWrapperImpl { *; }
-keep, includedescriptorclasses class dev.specto.android.core.internal.native.NativeControllerImpl { *; }
-keep, includedescriptorclasses class dev.specto.android.core.internal.native.ImmediateUploadTraceFileObserver { *; }

# Keep all native methods. DexGuard's aggressive configuration causes our SDK to crash without this.
-keepclasseswithmembernames,includedescriptorclasses class dev.specto.android.core.** {
    native <methods>;
}

# OkHttp is an optional dependency, but we need its real name if it's present.
-dontwarn okhttp3.EventListener
-keepnames class okhttp3.EventListener { *; }
