diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 0d5ce2d4..bdc9a3ad 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -31,3 +31,29 @@ public static void checkParameterIsNotNull(...); public static void checkNotNullParameter(...); } + +# Kotlin Coroutine +# Allow R8 to optimize away the FastServiceLoader. +# Together with ServiceLoader optimization in R8 +# this results in direct instantiation when loading Dispatchers.Main +-assumenosideeffects class kotlinx.coroutines.internal.MainDispatcherLoader { + boolean FAST_SERVICE_LOADER_ENABLED return false; +} + +-assumenosideeffects class kotlinx.coroutines.internal.FastServiceLoaderKt { + boolean ANDROID_DETECTED return true; +} + +-keep class kotlinx.coroutines.android.AndroidDispatcherFactory {*;} + +# Disable support for "Missing Main Dispatcher", since we always have Android main dispatcher +-assumenosideeffects class kotlinx.coroutines.internal.MainDispatchersKt { + boolean SUPPORT_MISSING return false; +} + +# Statically turn off all debugging facilities and assertions +-assumenosideeffects class kotlinx.coroutines.DebugKt { + boolean getASSERTIONS_ENABLED() return false; + boolean getDEBUG() return false; + boolean getRECOVER_STACK_TRACES() return false; +} \ No newline at end of file