# Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /opt/android-studio/sdk/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the ProGuard # include property in project.properties. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} -keepnames class * implements java.io.Serializable -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient ; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } # Butterknife -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* ; } -keepclasseswithmembernames class * { @butterknife.* ; } # okhttp -dontwarn okio.** -dontwarn javax.annotation.Nullable -dontwarn javax.annotation.ParametersAreNonnullByDefault # Retrofit # Platform calls Class.forName on types which do not exist on Android to determine platform. -dontnote retrofit2.Platform # Platform used when running on Java 8 VMs. Will not be used at runtime. -dontwarn retrofit2.Platform$Java8 # Retain generic type information for use by reflection by converters and adapters. -keepattributes Signature # Retain declared checked exceptions for use by a Proxy instance. -keepattributes Exceptions -dontwarn javax.annotation.** # Other Libraries -dontwarn org.apache.velocity.** -dontwarn freemarker.** -dontwarn com.google.auto.value.** -dontwarn autovalue.shaded.** -keep class de.luhmer.** { *; } ############### # GreenDAO # I use proguard only to remove unused stuff and to keep the app small. # I donot want to obfuscate (rename packages, classes, methods, ...) since this is open source -keepnames class ** { *; } -keepnames interface ** { *; } -keepnames enum ** { *; } -keep class de.greenrobot.** { *; } -dontwarn de.greenrobot.daogenerator.DaoGenerator -keepclassmembers class * extends de.greenrobot.dao.AbstractDao { *; }