-dontobfuscate -renamesourcefileattribute SourceFile -keepattributes SourceFile,LineNumberTable -optimizations !code/allocation/variable -optimizationpasses 5 -dontpreverify -allowaccessmodification -dontskipnonpubliclibraryclassmembers # Keep our own classes and members. They are all used. # Without this, methods only used in tests are removed and break tests. -keep class de.danoeh.antennapod** -keepclassmembers class de.danoeh.antennapod** {*;} -keep class de.test.antennapod** -keepclassmembers class de.test.antennapod** {*;} # Keep methods used in tests. # This is only needed when running tests with proguard enabled. -keepclassmembers class org.apache.commons.lang3.StringUtils {*;} -keepclassmembers class androidx.appcompat.app.ActionBar { public ** getTitle(); } -keepclassmembers class org.apache.commons.io.IOUtils { public static void write(...); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keepclassmembers class * implements android.os.Parcelable { static android.os.Parcelable$Creator CREATOR; } -keep public class org.jsoup.** { public *; } # for okhttp -dontwarn okhttp3.** -dontwarn okio.** -dontwarn javax.annotation.** -keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase -dontwarn org.codehaus.mojo.animal_sniffer.* # for RxJava: -dontwarn sun.misc.Unsafe # for retrolambda -dontwarn java.lang.invoke.* # greenrobot EventBus -keepattributes *Annotation* -keepclassmembers class * { @org.greenrobot.eventbus.Subscribe <methods>; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } # android-iconify -keep class com.joanzapata.** { *; } # Glide -keep public class * implements com.bumptech.glide.module.GlideModule -keep public class * extends com.bumptech.glide.module.AppGlideModule -keep public enum com.bumptech.glide.load.ImageHeaderParser$** { **[] $VALUES; public *; } -dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder # for ViewPageIndicator problems (https://github.com/JakeWharton/ViewPagerIndicator/issues/366): -dontwarn com.viewpagerindicator.LinePageIndicator # for some reason ProGuard removes this file. Why? Unsure. -keep class de.danoeh.antennapod.core.cast.SwitchableMediaRouteActionProvider { *; } # Retrofit 2.0 -dontwarn retrofit2.** -keep class retrofit2.** { *; } -keepattributes Signature -keepattributes Exceptions -keepclasseswithmembers class * { @retrofit2.http.* <methods>; } # Moshi -keep class com.squareup.moshi.** { *; } -keep interface com.squareup.moshi.** { *; } -keep public class retrofit2.adapter.rxjava.RxJavaCallAdapterFactory { *; } # awaitility -dontwarn java.beans.BeanInfo -dontwarn java.beans.Introspector -dontwarn java.beans.IntrospectionException -dontwarn java.beans.PropertyDescriptor -dontwarn java.lang.management.ManagementFactory -dontwarn java.lang.management.ThreadInfo -dontwarn java.lang.management.ThreadMXBean