Messaging: Meet Play memory/R8 rules, ship Q icon, and polish home chrome

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-28 23:44:47 +09:00
co-authored by Cursor
parent 74fb80f783
commit 47d735be2c
19 changed files with 209 additions and 107 deletions
+15 -24
View File
@@ -22,54 +22,45 @@
RuntimeVisibleTypeAnnotations,
AnnotationDefault
-keep class com.android.messaging.* { *; }
-keep class com.android.messaging.*.* { *; }
-keep class com.android.messaging.*.*.* { *; }
# TODO(b/373579455): Evaluate if <init> needs to be kept.
# Manifest / XML entry points. Do not keep the whole app or androidx packages —
# Play requires 25% shrink / optimize / obfuscate when uncompressed DEX > 10 MB.
-keep public class * extends android.app.Activity {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.app.Application {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.app.Service {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.content.BroadcastReceiver {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.content.ContentProvider {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.app.backup.BackupAgentHelper {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.preference.Preference {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends androidx.preference.Preference {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keep public class * extends androidx.fragment.app.Fragment {
void <init>();
}
-keep public class com.android.vcard.* { *; }
-keep class androidx.collection.* { *; }
-keep class androidx.core.* { *; }
-keep class androidx.core.*.* { *; }
-keep class androidx.appcompat.* { *; }
-keep class androidx.appcompat.*.* { *; }
-keep class androidx.recyclerview.widget.* { *; }
-keep class androidx.viewpager.widget.* { *; }
# Keep rastermill classes that need to be accessed from native code (JNI)
-keep class android.support.rastermill.** { *; }
# Actions cross the ActionService / BackgroundWorker via Parcelable extras.
-keep class com.android.messaging.datamodel.action.Action {
void <init>();
}
-keep class * extends com.android.messaging.datamodel.action.Action {
public static android.os.Parcelable$Creator CREATOR;
<init>(...);
}
# Preserve the name of the getCaller method so it can find itself in the stack trace it generates
-keepclassmembers public class com.android.messaging.util.DebugUtils {
@@ -77,7 +68,7 @@
}
# Keep the static fields of referenced inner classes of auto-generated R classes, in case we
# access those fields by reflection (e.g. EmojiMarkup)
# access those fields by reflection
-keepclassmembers class **.R$* {
public static <fields>;
}