2013-05-26 12:39:44 +00:00
|
|
|
# Add project specific ProGuard rules here.
|
|
|
|
# By default, the flags in this file are appended to flags specified
|
2014-01-24 08:45:36 +00:00
|
|
|
# in /opt/android-studio/sdk/tools/proguard/proguard-android.txt
|
2013-05-26 12:39:44 +00:00
|
|
|
# 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 *;
|
2015-08-20 15:02:23 +00:00
|
|
|
#}
|
|
|
|
|
|
|
|
|
2018-06-15 12:23:33 +00:00
|
|
|
# Required for Test execution
|
|
|
|
-dontwarn org.xmlpull.v1.**
|
|
|
|
-dontwarn org.apache.tools.ant.**
|
|
|
|
-dontwarn java.beans.**
|
|
|
|
-dontwarn javax.naming.**
|
|
|
|
-dontwarn sun.misc.Unsafe
|
|
|
|
|
|
|
|
|
|
|
|
# Mockito
|
|
|
|
-dontwarn org.mockito.**
|
|
|
|
|
|
|
|
|
2015-08-20 15:02:23 +00:00
|
|
|
-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 <fields>;
|
|
|
|
private void writeObject(java.io.ObjectOutputStream);
|
|
|
|
private void readObject(java.io.ObjectInputStream);
|
|
|
|
java.lang.Object writeReplace();
|
|
|
|
java.lang.Object readResolve();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2018-09-28 19:42:18 +00:00
|
|
|
# AndroidSlidingUpPanel
|
|
|
|
# https://github.com/umano/AndroidSlidingUpPanel/issues/921
|
|
|
|
-dontwarn com.sothree.slidinguppanel.SlidingUpPanelLayout
|
|
|
|
|
2015-08-20 15:02:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Butterknife
|
|
|
|
-keep class butterknife.** { *; }
|
|
|
|
-dontwarn butterknife.internal.**
|
|
|
|
-keep class **$$ViewBinder { *; }
|
|
|
|
|
|
|
|
-keepclasseswithmembernames class * {
|
|
|
|
@butterknife.* <fields>;
|
|
|
|
}
|
|
|
|
|
|
|
|
-keepclasseswithmembernames class * {
|
|
|
|
@butterknife.* <methods>;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-05-26 20:30:50 +00:00
|
|
|
|
|
|
|
# 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
|
2017-05-26 22:42:59 +00:00
|
|
|
-dontwarn javax.annotation.**
|
2017-05-26 20:30:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-26 22:42:59 +00:00
|
|
|
# Other Libraries
|
|
|
|
-dontwarn org.apache.velocity.**
|
|
|
|
-dontwarn freemarker.**
|
|
|
|
-dontwarn com.google.auto.value.**
|
|
|
|
-dontwarn autovalue.shaded.**
|
|
|
|
|
|
|
|
-keep class de.luhmer.** { *; }
|
2018-10-28 16:56:51 +00:00
|
|
|
-keepclassmembers class de.luhmer.** { *; }
|
|
|
|
-keepnames class de.luhmer.** { *; }
|
|
|
|
|
|
|
|
-printmapping out.map
|
|
|
|
-keepattributes SourceFile,LineNumberTable
|
|
|
|
-renamesourcefileattribute SourceFile
|
|
|
|
|
|
|
|
-keepclasseswithmembers public class android.support.v7.widget.RecyclerView { *; }
|
2017-05-26 20:30:50 +00:00
|
|
|
|
|
|
|
|
2015-08-20 15:02:23 +00:00
|
|
|
###############
|
2017-05-26 20:30:50 +00:00
|
|
|
# GreenDAO
|
2015-08-20 15:02:23 +00:00
|
|
|
# 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 ** { *; }
|
|
|
|
|
2017-05-26 22:42:59 +00:00
|
|
|
-keep class de.greenrobot.** { *; }
|
2015-08-20 15:02:23 +00:00
|
|
|
-dontwarn de.greenrobot.daogenerator.DaoGenerator
|
2017-05-26 22:42:59 +00:00
|
|
|
|
2019-03-30 08:07:27 +00:00
|
|
|
-keepclassmembers class * extends de.greenrobot.dao.AbstractDao { *; }
|
|
|
|
|
|
|
|
|
|
|
|
###############
|
|
|
|
# Guava (official)
|
|
|
|
## Not yet defined: follow https://github.com/google/guava/issues/2117
|
|
|
|
# Guava (unofficial)
|
|
|
|
## https://github.com/google/guava/issues/2926#issuecomment-325455128
|
|
|
|
## https://stackoverflow.com/questions/9120338/proguard-configuration-for-guava-with-obfuscation-and-optimization
|
|
|
|
-dontwarn com.google.common.base.**
|
|
|
|
-dontwarn com.google.errorprone.annotations.**
|
|
|
|
-dontwarn com.google.j2objc.annotations.**
|
|
|
|
-dontwarn java.lang.ClassValue
|
|
|
|
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
|
|
|
-dontwarn javax.annotation.**
|
|
|
|
-dontwarn javax.inject.**
|
|
|
|
-dontwarn sun.misc.Unsafe
|
|
|
|
|
|
|
|
# Added for guava 23.5-android
|
|
|
|
-dontwarn afu.org.checkerframework.**
|
|
|
|
-dontwarn org.checkerframework.**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-ignorewarnings
|
|
|
|
#-keep class * {
|
|
|
|
# public private *;
|
|
|
|
#}
|
|
|
|
|
|
|
|
|
|
|
|
### OkHttp
|
|
|
|
# https://github.com/square/okhttp/blob/master/README.md
|
|
|
|
-dontwarn okhttp3.**
|
|
|
|
-dontwarn okio.**
|
|
|
|
-dontwarn javax.annotation.**
|
|
|
|
-dontwarn org.conscrypt.**
|
|
|
|
# A resource is loaded with a relative path so the package of this class must be preserved.
|
|
|
|
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
|
|
|
|
|
|
|
|
# JSR 305 annotations are for embedding nullability information.
|
|
|
|
-dontwarn javax.annotation.**
|
|
|
|
|
|
|
|
# OkHttp platform used only on JVM and when Conscrypt dependency is available.
|
2019-03-30 08:43:48 +00:00
|
|
|
-dontwarn okhttp3.internal.platform.ConscryptPlatform
|
|
|
|
|
|
|
|
-keep interface org.conscrypt.Conscrypt { *; }
|
2019-04-05 20:04:36 +00:00
|
|
|
-keep class org.conscrypt.Conscrypt { *; }
|
|
|
|
|
|
|
|
|
2019-04-07 16:47:50 +00:00
|
|
|
# Required for unit tests
|
2019-04-05 20:04:36 +00:00
|
|
|
|
|
|
|
# https://stackoverflow.com/a/39777485
|
|
|
|
# Also, note that this rule should be added to the regular proguard file(the one of listed in proguardFiles) and not the test one(declared as testProguardFile)
|
|
|
|
# java.lang.NoSuchMethodError: No virtual method getParameter
|
2019-04-07 16:47:50 +00:00
|
|
|
-keepclasseswithmembers public class com.nextcloud.android.sso.aidl.NextcloudRequest { *; }
|
|
|
|
-keepclasseswithmembers public class com.nextcloud.android.sso.AccountImporter { *; }
|
|
|
|
|
|
|
|
# NewsReaderListActivityTests
|
|
|
|
-keepclasseswithmembers public class androidx.recyclerview.widget.RecyclerView { *; }
|