Skip to content

Commit 68076fd

Browse files
updated versions
1 parent 74e1b67 commit 68076fd

File tree

2 files changed

+108
-27
lines changed

2 files changed

+108
-27
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ android {
1313
applicationId "com.kharagedition.tibetankeyboard"
1414
minSdkVersion 23
1515
targetSdkVersion 36
16-
versionCode 32
17-
versionName "2.1.1"
16+
versionCode 35
17+
versionName "2.1.5"
1818

1919
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2020
multiDexEnabled true

app/proguard-rules.pro

Lines changed: 106 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,110 @@
1-
# Add project specific ProGuard rules here.
2-
# You can control the set of applied configuration files using the
3-
# proguardFiles setting in build.gradle.
4-
#
5-
# For more details, see
6-
# http://developer.android.com/guide/developing/tools/proguard.html
7-
8-
# If your project uses WebView with JS, uncomment the following
9-
# and specify the fully qualified class name to the JavaScript interface
10-
# class:
11-
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12-
# public *;
13-
#}
14-
15-
# Uncomment this to preserve the line number information for
16-
# debugging stack traces.
17-
#-keepattributes SourceFile,LineNumberTable
18-
19-
# If you keep the line number information, uncomment this to
20-
# hide the original source file name.
21-
#-renamesourcefileattribute SourceFile
22-
23-
# Keep Firestore model classes
1+
########################################
2+
# Preserve generic type information
3+
# (needed for Retrofit, Gson, Moshi, coroutines)
4+
########################################
5+
-keepattributes Signature
6+
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations
7+
-keepattributes *Annotation*
8+
-keepattributes Exceptions
9+
-keepattributes SourceFile,LineNumberTable
10+
11+
########################################
12+
# --- Your app models ---
13+
########################################
2414
-keep class com.kharagedition.tibetankeyboard.util.User { *; }
2515
-keep class com.kharagedition.tibetankeyboard.util.DeviceInfo { *; }
2616
-keep class com.kharagedition.tibetankeyboard.util.** { *; }
17+
-keep class com.kharagedition.tibetankeyboard.model.** { *; }
18+
19+
########################################
20+
# --- Retrofit / OkHttp ---
21+
########################################
22+
-keep interface com.kharagedition.tibetankeyboard.network.** { *; }
23+
-keep class com.kharagedition.tibetankeyboard.network.** { *; }
24+
25+
# Keep all Retrofit classes and methods
26+
-keep class retrofit2.** { *; }
27+
-keepclassmembers class retrofit2.** { *; }
28+
-dontwarn retrofit2.**
29+
30+
# Keep service interface methods
31+
-keepclassmembers,allowshrinking,allowobfuscation interface * {
32+
@retrofit2.http.* <methods>;
33+
}
34+
35+
# Keep generic signature of Call, Response (R8 full mode strips signatures from non-kept items).
36+
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
37+
-keep,allowobfuscation,allowshrinking class retrofit2.Response
38+
39+
# With R8 full mode generic signatures are stripped for classes that are not
40+
# kept. Suspend functions are wrapped in continuations where the type argument
41+
# is used.
42+
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
43+
44+
# OkHttp
45+
-keep class okhttp3.** { *; }
46+
-keep interface okhttp3.** { *; }
47+
-dontwarn okhttp3.**
48+
-dontwarn okio.**
49+
50+
########################################
51+
# --- Gson / Moshi ---
52+
########################################
53+
-keep class com.google.gson.** { *; }
54+
-dontwarn com.google.gson.**
55+
56+
# Keep generic signatures for Gson
57+
-keep class com.google.gson.reflect.TypeToken { *; }
58+
-keep class * extends com.google.gson.reflect.TypeToken
59+
-keep class com.google.gson.stream.** { *; }
60+
61+
# For Gson serialization
62+
-keepclassmembers,allowobfuscation class * {
63+
@com.google.gson.annotations.SerializedName <fields>;
64+
}
65+
66+
-keep class com.squareup.moshi.** { *; }
67+
-dontwarn com.squareup.moshi.**
68+
69+
########################################
70+
# --- Firebase / Firestore ---
71+
########################################
72+
-keep class com.google.firebase.** { *; }
73+
-dontwarn com.google.firebase.**
74+
75+
########################################
76+
# --- Kotlin Coroutines ---
77+
########################################
78+
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
79+
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
80+
81+
# Most of volatile fields are updated with AFU and should not be mangled
82+
-keepclassmembers class kotlinx.coroutines.** {
83+
volatile <fields>;
84+
}
85+
86+
-keep class kotlinx.coroutines.** { *; }
87+
-dontwarn kotlinx.coroutines.**
88+
89+
########################################
90+
# --- Additional Kotlin rules ---
91+
########################################
92+
-keep class kotlin.Metadata { *; }
93+
-keep class kotlin.reflect.** { *; }
94+
-dontwarn kotlin.reflect.**
95+
96+
########################################
97+
# --- Reflection (important for Retrofit) ---
98+
########################################
99+
-keepclassmembers class * {
100+
@retrofit2.http.* <methods>;
101+
}
102+
103+
# Keep Retrofit annotation classes and their methods
104+
-keep class retrofit2.http.** { *; }
105+
-keep @interface retrofit2.http.**
27106

28-
# Keep Firebase Firestore
29-
-keep class com.google.firebase.firestore.** { *; }
107+
########################################
108+
# Optional: hide source filenames in logs
109+
# -renamesourcefileattribute SourceFile
110+
########################################

0 commit comments

Comments
 (0)