Last active
August 1, 2016 07:12
-
-
Save derohimat/1cd6c6d0769a84ff1389392d99386574 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-optimizationpasses 5 | |
-dontusemixedcaseclassnames | |
-dontskipnonpubliclibraryclasses | |
-dontpreverify | |
-verbose | |
# The -optimizations option disables some arithmetic simplifications that Dalvik 1.0 and 1.5 can't handle. | |
-optimizations !code/simplification/arithmetic | |
-keep public class * extends android.app.Activity | |
-keep public class * extends android.app.Application | |
-keep public class * extends android.app.Service | |
-keep public class * extends android.content.BroadcastReceiver | |
-keep public class * extends android.content.ContentProvider | |
-keep class com.google.inject.Binder | |
-keepclassmembers class * { | |
@com.google.inject.Inject <init>(...); | |
} | |
-dontwarn freemarker.** | |
########--------Retrofit + RxJava--------######### | |
-dontwarn retrofit.** | |
-keep class retrofit.** { *; } | |
-dontwarn sun.misc.Unsafe | |
-dontwarn com.octo.android.robospice.retrofit.RetrofitJackson** | |
-dontwarn retrofit2.Platform$Java8 | |
-dontwarn retrofit.appengine.UrlFetchClient | |
-keepattributes Signature | |
-keepattributes Exceptions | |
-keepclasseswithmembers class * { | |
@retrofit.http.* <methods>; | |
} | |
-keep class com.google.gson.** { *; } | |
-keep class com.google.inject.** { *; } | |
-keep class org.apache.http.** { *; } | |
-keep class org.apache.james.mime4j.** { *; } | |
-keep class javax.inject.** { *; } | |
-keep class retrofit.** { *; } | |
-dontwarn org.apache.http.** | |
-dontwarn android.net.http.AndroidHttpClient | |
-dontwarn retrofit.** | |
-dontwarn sun.misc.** | |
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { | |
long producerIndex; | |
long consumerIndex; | |
} | |
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { | |
long producerNode; | |
long consumerNode; | |
} | |
# ALSO REMEMBER KEEPING YOUR MODEL CLASSES | |
-keep class com.simenel.android.model.** { *; } | |
# OkHttp rules | |
-keepattributes Signature | |
-keepattributes Annotation | |
-keep class okhttp3.** { *; } | |
-keep interface okhttp3.** { *; } | |
-dontwarn okhttp3.** | |
-dontwarn okio.** | |
# RxJava rules | |
# RxAndroid will soon ship with rules so this may not be needed in the future | |
# https://github.com/ReactiveX/RxAndroid/issues/219 | |
-dontwarn sun.misc.Unsafe | |
-keep class rx.internal.util.unsafe.** { *; } | |
# There's no way to keep all @Observes methods, so use the On*Event convention to identify event handlers | |
-keepclassmembers class * { | |
void *(**On*Event); | |
} | |
-keep public class * extends android.view.View { | |
public <init>(android.content.Context); | |
public <init>(android.content.Context, android.util.AttributeSet); | |
public <init>(android.content.Context, android.util.AttributeSet, int); | |
public void set*(...); | |
} | |
## New rules for EventBus 3.0.x ## | |
# http://greenrobot.org/eventbus/documentation/proguard/ | |
-keepattributes *Annotation* | |
-keepclassmembers class ** { | |
@org.greenrobot.eventbus.Subscribe <methods>; | |
} | |
-keep enum org.greenrobot.eventbus.ThreadMode { *; } | |
# Only required if you use AsyncExecutor | |
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { | |
<init>(java.lang.Throwable); | |
} | |
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native | |
-keepclasseswithmembernames class * { | |
native <methods>; | |
} | |
# keep setters in Views so that animations can still work. | |
# see http://proguard.sourceforge.net/manual/examples.html#beans | |
-keepclassmembers public class * extends android.view.View { | |
void set*(***); | |
*** get*(); | |
} | |
# We want to keep methods in Activity that could be used in the XML attribute onClick | |
-keepclassmembers class * extends android.app.Activity { | |
public void *(android.view.View); | |
} | |
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations | |
-keepclassmembers enum * { | |
public static **[] values(); | |
public static ** valueOf(java.lang.String); | |
} | |
-keep class * implements android.os.Parcelable { | |
public static final android.os.Parcelable$Creator *; | |
} | |
-keepclassmembers class **.R$* { | |
public static <fields>; | |
} | |
# The support library contains references to newer platform versions. | |
# Don't warn about those in case this app is linking against an older | |
# platform version. We know about them, and they are safe. | |
-dontwarn android.support.** | |
# - keep glide library | |
-keep public class * implements com.bumptech.glide.module.GlideModule | |
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { | |
**[] $VALUES; | |
public *; | |
} | |
#################### Rx stuff #################################################### | |
# RxLambda | |
-dontwarn java.lang.invoke.* | |
-dontwarn sun.misc.** | |
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { | |
rx.internal.util.atomic.LinkedQueueNode producerNode; | |
} | |
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { | |
rx.internal.util.atomic.LinkedQueueNode consumerNode; | |
} | |
-keep class rx.schedulers.Schedulers { | |
public static <methods>; | |
} | |
-keep class rx.schedulers.ImmediateScheduler { | |
public <methods>; | |
} | |
-keep class rx.schedulers.TestScheduler { | |
public <methods>; | |
} | |
-keep class rx.schedulers.Schedulers { | |
public static ** test(); | |
} | |
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { | |
long producerIndex; | |
long consumerIndex; | |
} | |
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { | |
long producerNode; | |
long consumerNode; | |
} | |
#________ OPTIONALS _______ | |
# If you use butterknife. | |
-keepclasseswithmembernames class * { | |
@butterknife.* <fields>; | |
} | |
-keep class butterknife.** { *; } | |
-dontwarn butterknife.internal.** | |
-keep class **$$ViewBinder { *; } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment