1
+ -ignorewarnings
2
+
3
+ -dontwarn **
4
+ -dontnote **
5
+ -dontobfuscate
6
+
7
+ -keep class javax.** { *; }
8
+ -keep class jdkx.** { *; }
9
+
10
+ # keep javac classes
11
+ -keep class openjdk.** { *; }
12
+
13
+ # Android builder model interfaces
14
+ -keep class com.android.** { *; }
15
+
16
+ # Tooling API classes
17
+ -keep class com.itsaky.androidide.tooling.** { *; }
18
+
19
+ # Builder model implementations
20
+ -keep class com.itsaky.androidide.builder.model.** { *; }
21
+
22
+ # Eclipse
23
+ -keep class org.eclipse.** { *; }
24
+
25
+ # JAXP
26
+ -keep class jaxp.** { *; }
27
+ -keep class org.w3c.** { *; }
28
+ -keep class org.xml.** { *; }
29
+
30
+ # Services
31
+ -keep @com.google.auto.service.AutoService class ** {
32
+ }
33
+ -keepclassmembers class ** {
34
+ @com.google.auto.service.AutoService <methods>;
35
+ }
36
+
37
+ # EventBus
38
+ -keepclassmembers class ** {
39
+ @org.greenrobot.eventbus.Subscribe <methods>;
40
+ }
41
+ -keep enum org.greenrobot.eventbus.ThreadMode { *; }
42
+ -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
43
+ <init>(java.lang.Throwable);
44
+ }
45
+
46
+ # Accessed reflectively
47
+ -keep class io.github.rosemoe.sora.widget.component.EditorAutoCompletion {
48
+ io.github.rosemoe.sora.widget.component.EditorCompletionAdapter adapter;
49
+ int currentSelection;
50
+ }
51
+ -keep class com.itsaky.androidide.projects.util.StringSearch {
52
+ packageName(java.nio.file.Path);
53
+ }
54
+ -keep class * implements org.antlr.v4.runtime.Lexer {
55
+ <init>(...);
56
+ }
57
+ -keep class * extends com.itsaky.androidide.lsp.java.providers.completion.IJavaCompletionProvider {
58
+ <init>(...);
59
+ }
60
+ -keep class com.itsaky.androidide.editor.api.IEditor { *; }
61
+ -keep class * extends com.itsaky.androidide.inflater.IViewAdapter { *; }
62
+ -keep class * extends com.itsaky.androidide.inflater.drawable.IDrawableParser {
63
+ <init>(...);
64
+ android.graphics.drawable.Drawable parse();
65
+ android.graphics.drawable.Drawable parseDrawable();
66
+ }
67
+ -keep class com.itsaky.androidide.utils.DialogUtils { public <methods>; }
68
+
69
+ # APK Metadata
70
+ -keep class com.itsaky.androidide.models.ApkMetadata { *; }
71
+ -keep class com.itsaky.androidide.models.ArtifactType { *; }
72
+ -keep class com.itsaky.androidide.models.MetadataElement { *; }
73
+
74
+ # Parcelable
75
+ -keepclassmembers class * implements android.os.Parcelable {
76
+ public static final android.os.Parcelable$Creator CREATOR;
77
+ }
78
+
79
+ # Used in preferences
80
+ -keep enum org.eclipse.lemminx.dom.builder.EmptyElements { *; }
81
+ -keep enum com.itsaky.androidide.xml.permissions.Permission { *; }
82
+
83
+ # Lots of native methods in tree-sitter
84
+ # There are some fields as well that are accessed from native field
85
+ -keepclasseswithmembers class ** {
86
+ native <methods>;
87
+ }
88
+
89
+ -keep class com.itsaky.androidide.treesitter.** { *; }
90
+
91
+ # Retrofit 2
92
+ -dontwarn retrofit2.**
93
+ -keep class retrofit2.** { *; }
94
+
95
+ -keepclasseswithmembers class * {
96
+ @retrofit2.http.* <methods>;
97
+ }
98
+
99
+ # OkHttp3
100
+ -keep class okhttp3.** { *; }
101
+ -keep interface okhttp3.** { *; }
102
+ -dontwarn okhttp3.**
103
+
104
+ # Stat uploader
105
+ -keep class com.itsaky.androidide.stats.** { *; }
106
+
107
+ # Gson
108
+ -keep class * extends com.google.gson.TypeAdapter
109
+ -keep class * implements com.google.gson.TypeAdapterFactory
110
+ -keep class * implements com.google.gson.JsonSerializer
111
+ -keep class * implements com.google.gson.JsonDeserializer
112
+
113
+ -keepclassmembers,allowobfuscation class * {
114
+ @com.google.gson.annotations.SerializedName <fields>;
115
+ }
116
+
117
+ ## Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
118
+ -keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
119
+ -keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
120
+
121
+ ## Themes
122
+ -keep enum com.itsaky.androidide.ui.themes.IDETheme {
123
+ *;
124
+ }
125
+
126
+ ## Contributor models - deserialized with GSON
127
+ -keep class * implements com.itsaky.androidide.contributors.Contributor {
128
+ *;
129
+ }
130
+
131
+ # Suppress wissing class warnings
132
+ ## These are used in annotation processing process in the Java Compiler
133
+ -dontwarn sun.reflect.annotation.AnnotationParser
134
+ -dontwarn sun.reflect.annotation.AnnotationType
135
+ -dontwarn sun.reflect.annotation.EnumConstantNotPresentExceptionProxy
136
+ -dontwarn sun.reflect.annotation.ExceptionProxy
137
+
138
+ ## Used in Logback. We do not need this though.
139
+ -dontwarn jakarta.servlet.ServletContainerInitializer
140
+
141
+ ## These are used in JGit
142
+ ## TODO(itsaky): Verify if it is safe to ignore these warnings
143
+ -dontwarn java.lang.ProcessHandle
144
+ -dontwarn java.lang.management.ManagementFactory
145
+ -dontwarn org.ietf.jgss.GSSContext
146
+ -dontwarn org.ietf.jgss.GSSCredential
147
+ -dontwarn org.ietf.jgss.GSSException
148
+ -dontwarn org.ietf.jgss.GSSManager
149
+ -dontwarn org.ietf.jgss.GSSName
150
+ -dontwarn org.ietf.jgss.Oid
0 commit comments