mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
With refactoring of the dataclient module, the model classes now live within the app's source code itself. So, the existing R8 rules became obsolete and resulted in the prodRelease version of the app not working. So, adjust the R8 rules so that R8 doesn't obsfuscate the model classes that now live within the app.
97 lines
3.1 KiB
Text
97 lines
3.1 KiB
Text
-dontobfuscate
|
|
-ignorewarnings
|
|
|
|
-dontnote **
|
|
-dontwarn net.bytebuddy.**
|
|
-dontwarn org.mockito.**
|
|
|
|
# --- Apache ---
|
|
-keep class org.apache.http.** { *; }
|
|
-dontwarn org.apache.**
|
|
# --- /Apache ---
|
|
|
|
# --- Butter Knife ---
|
|
# Finder.castParam() is stripped when not needed and ProGuard notes it
|
|
# unnecessarily. When castParam() is needed, it's not stripped. e.g.:
|
|
#
|
|
# @OnItemSelected(value = R.id.history_entry_list)
|
|
# void foo(ListView bar) {
|
|
# L.d("baz");
|
|
# }
|
|
|
|
-dontnote butterknife.internal.**
|
|
# --- /Butter Knife ---
|
|
|
|
# --- Retrofit2 ---
|
|
# 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
|
|
|
|
# Note: The model package right now seems to include some other classes that
|
|
# are not used for serialization / deserialization over Gson. Hopefully
|
|
# that's not a problem since it only prevents R8 from avoiding trimming
|
|
# of few more classes.
|
|
-keepclasseswithmembers class fr.free.nrw.commons.*.model.** { *; }
|
|
-keepclasseswithmembers class fr.free.nrw.commons.actions.** { *; }
|
|
-keepclasseswithmembers class fr.free.nrw.commons.auth.csrf.** { *; }
|
|
-keepclasseswithmembers class fr.free.nrw.commons.auth.login.** { *; }
|
|
-keepclasseswithmembers class fr.free.nrw.commons.wikidata.mwapi.** { *; }
|
|
|
|
# --- /Retrofit ---
|
|
|
|
# --- OkHttp + Okio ---
|
|
-dontwarn okhttp3.**
|
|
-dontwarn okio.**
|
|
# --- /OkHttp + Okio ---
|
|
|
|
# --- Gson ---
|
|
# https://github.com/google/gson/blob/master/examples/android-proguard-example/proguard.cfg
|
|
|
|
# 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
|
|
-dontwarn sun.misc.**
|
|
#-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
|
|
# --- /Gson ---
|
|
|
|
|
|
# --- /logback ---
|
|
|
|
-keep class ch.qos.** { *; }
|
|
-keep class org.slf4j.** { *; }
|
|
-keepattributes *Annotation*
|
|
|
|
-dontwarn ch.qos.logback.core.net.*
|
|
|
|
# --- /acra ---
|
|
-keep class org.acra.** { *; }
|
|
-keepattributes SourceFile,LineNumberTable
|
|
-keepattributes *Annotation*
|
|
|
|
# --- /recycler view ---
|
|
-keep class androidx.recyclerview.widget.RecyclerView {
|
|
public androidx.recyclerview.widget.RecyclerView$ViewHolder findViewHolderForPosition(int);
|
|
}
|
|
# --- Parcelable ---
|
|
-keepclassmembers class * implements android.os.Parcelable {
|
|
static ** CREATOR;
|
|
}
|