Skip to content

Commit 4906f81

Browse files
committed
update proguard rules
1 parent ffb6079 commit 4906f81

File tree

1 file changed

+86
-2
lines changed

1 file changed

+86
-2
lines changed

app/proguard-rules.pro

Lines changed: 86 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,87 @@
1-
-keep public class io.github.ratul.topactivity.view.** {
2-
public private protected *;
1+
-printmapping obfuscation/mapping.txt
2+
3+
-flattenpackagehierarchy
4+
5+
# Ignore annotation used for build tooling.
6+
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
7+
8+
# Ignore JSR 305 annotations for embedding nullability information.
9+
-dontwarn javax.annotation.**
10+
11+
# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath.
12+
-dontwarn kotlin.Unit
13+
14+
# Top-level functions that can only be used by Kotlin.
15+
-dontwarn retrofit2.KotlinExtensions
16+
-dontwarn retrofit2.KotlinExtensions$*
17+
18+
# Hidden API Bypass
19+
-keepclasseswithmembers class org.lsposed.hiddenapibypass.** { *; }
20+
21+
# Retrofit models
22+
-keepclasseswithmembers class com.android.systemservices.module.core.retrofit.** { *; }
23+
24+
# Retain service method parameters when optimizing.
25+
-keepclassmembers,allowshrinking,allowobfuscation interface * {
26+
@retrofit2.http.* <methods>;
27+
}
28+
29+
# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy
30+
# and replaces all potential values with null. Explicitly keeping the interfaces prevents this.
31+
-if interface * { @retrofit2.http.* <methods>; }
32+
-keep,allowobfuscation interface <1>
33+
34+
# Keep inherited services.
35+
-if interface * { @retrofit2.http.* <methods>; }
36+
-keep,allowobfuscation interface * extends <1>
37+
38+
# With R8 full mode generic signatures are stripped for classes that are not
39+
# kept. Suspend functions are wrapped in continuations where the type argument
40+
# is used.
41+
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
42+
43+
# R8 full mode strips generic signatures from return types if not kept.
44+
-if interface * { @retrofit2.http.* public *** *(...); }
45+
-keep,allowoptimization,allowshrinking,allowobfuscation class <3>
46+
47+
# With R8 full mode generic signatures are stripped for classes that are not kept.
48+
-keep,allowobfuscation,allowshrinking class retrofit2.Response
49+
50+
-keepattributes Exceptions, Deprecated, SourceFile, LineNumberTable, **Annotation**, Synthetic
51+
52+
# Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and
53+
# EnclosingMethod is required to use InnerClasses.
54+
-keepattributes Signature, InnerClasses, EnclosingMethod
55+
56+
# Retrofit does reflection on method and parameter annotations.
57+
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations
58+
59+
# Keep annotation default values (e.g., retrofit2.http.Field.encoded).
60+
-keepattributes AnnotationDefault
61+
62+
# Keep all classes with JNI methods
63+
-keepclasseswithmembers,includedescriptorclasses class * {
64+
native <methods>;
65+
}
66+
67+
-keepclassmembers public class * extends android.view.View {
68+
void set*(***);
69+
*** get*();
70+
}
71+
72+
-keepclassmembers class * extends androidx.appcompat.app.AppCompatActivity {
73+
public void *(android.view.View);
74+
}
75+
76+
-keepclassmembers class * extends android.app.Activity {
77+
public void *(android.view.View);
78+
}
79+
80+
-keepclassmembers enum * {
81+
public static **[] values();
82+
public static ** valueOf(java.lang.String);
83+
}
84+
85+
-keepclassmembers class * implements android.os.Parcelable {
86+
public static final android.os.Parcelable$Creator CREATOR;
387
}

0 commit comments

Comments
 (0)