# Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /home/mathiasluo/Android-SDK/android-sdk-linux/tools/proguard/proguard-android.txt # You can edit the include mPath and order by changing the proguardFiles # directive in build.gradle. # # 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 org.qpython.qpy.main.event.Bean #} -keepattributes SourceFile,LineNumberTable -renamesourcefileattribute SourceFile # 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 rx.** -dontwarn okio.** -keep class org.apache.http.** { *; } -dontwarn org.apache.http.** -dontwarn java.lang.invoke.** -keep class com.google.** -dontwarn com.google.** # EventBus 3.0 -keep class de.greenrobot.event.** { *; } -keep class * { @de.greenrobot.event.* ; } -keepattributes *Annotation* -keepclassmembers class ** { @org.greenrobot.eventbus.Subscribe ; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } -dontpreverify #-keep class * extends junit.framework.TestCase #-keepclassmembers class * extends junit.framework.TestCase { *; } # android -repackageclasses '' -allowaccessmodification -optimizations !code/simplification/arithmetic # ## retrace #-renamesourcefileattribute SourceFile #-keepattributes SourceFile,LineNumberTable # #-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 public class * extends android.view.View { # public (android.content.Context); # public (android.content.Context, android.util.AttributeSet); # public (android.content.Context, android.util.AttributeSet, int); # public void set*(...); #} # #-keepclasseswithmembers class * { # public (android.content.Context, android.util.AttributeSet); #} # #-keepclasseswithmembers class * { # public (android.content.Context, android.util.AttributeSet, int); #} # #-keepclassmembers class * extends android.content.Context { # public void *(android.view.View); # public void *(android.view.MenuItem); #} # #-keepclassmembers class * implements android.os.Parcelable { # static ** CREATOR; #} # #-keepclassmembers class **.R$* { # public static ; #} # #-keepclassmembers class * { # @android.webkit.JavascriptInterface ; #} # gms -keep public class com.google.android.gms.** -dontwarn com.google.android.gms.** # OkHttp -dontwarn okio.** # rx -dontwarn sun.misc.Unsafe -keep class rx.schedulers.Schedulers { public static ; } -keep class rx.schedulers.ImmediateScheduler { public ; } -keep class rx.schedulers.TestScheduler { public ; } -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; } ## databinding -keep class android.databinding.** { *; } -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(); } -keepattributes *Annotation* -keepattributes javax.xml.bind.annotation.* -keepattributes javax.annotation.processing.* -keepclassmembers class * extends java.lang.Enum { *; } -keepclasseswithmembernames class android.** -keepclasseswithmembernames interface android.** -libraryjars /lib/rt.jar -libraryjars /lib/jce.jar ##---------------Begin: proguard configuration for Gson ---------- # Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by default, so configure it to keep all of it. #-keepattributes Signature # For using GSON @Expose annotation #-keepattributes *Annotation* # Gson specific classes -keep class sun.misc.Unsafe { *; } #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.google.gson.examples.android.model.** { *; } # Prevent proguard from stripping interface information from TypeAdapterFactory, # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) -keep class * implements com.google.gson.TypeAdapterFactory -keep class * implements com.google.gson.JsonSerializer -keep class * implements com.google.gson.JsonDeserializer -keep class org.qpython.qpy.main.server.model.** {*;} ##---------------End: proguard configuration for Gson ---------- ##---------------Begin: proguard configuration for SL4A ---------- -keep class org.qpython.sl4a.** {*;} ##---------------End: proguard configuration for SL4A ---------- # leancloud -keepattributes Signature -dontwarn com.jcraft.jzlib.** -keep class com.jcraft.jzlib.** { *;} -dontwarn sun.misc.** -keep class sun.misc.** { *;} -dontwarn com.alibaba.fastjson.** -keep class com.alibaba.fastjson.** { *;} -dontwarn sun.security.** -keep class sun.security.** { *; } -dontwarn com.google.** -keep class com.google.** { *;} -dontwarn com.avos.** -keep class com.avos.** { *;} -keep public class android.net.http.SslError -keep public class android.webkit.WebViewClient -dontwarn android.webkit.WebView -dontwarn android.net.http.SslError -dontwarn android.webkit.WebViewClient -dontwarn android.support.** -dontwarn org.apache.** -keep class org.apache.** { *;} -dontwarn org.jivesoftware.smack.** -keep class org.jivesoftware.smack.** { *;} -dontwarn com.loopj.** -keep class com.loopj.** { *;} -dontwarn com.squareup.okhttp.** -keep class com.squareup.okhttp.** { *;} -keep interface com.squareup.okhttp.** { *; } -dontwarn okio.** -dontwarn org.xbill.** -keep class org.xbill.** { *;} -keepattributes *Annotation* #wx -keep class com.tencent.mm.sdk.** { *; } #umeng -keepclassmembers class * { public (org.json.JSONObject); } -keep public class org.qpython.qpy.R$*{ public static final int *; } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }