# ============================================================ # MediaPipe tasks-genai / LlmInference # ============================================================ -keep class com.google.mediapipe.** { *; } -dontwarn com.google.mediapipe.** # Protobuf (used internally by MediaPipe) -keep class com.google.mediapipe.proto.** { *; } -keepclassmembers class * extends com.google.protobuf.GeneratedMessageLite { ; } -keep class com.google.protobuf.** { *; } -dontwarn com.google.protobuf.** # Google Flogger (used by MediaPipe internals) -keep class com.google.common.flogger.** { *; } -dontwarn com.google.common.flogger.** # JNI methods must not be renamed -keepclasseswithmembernames class * { native ; } # MediaPipe framework interop -keep public interface com.google.mediapipe.framework.* { public *; } -keepclassmembers class com.google.mediapipe.framework.Packet { public static *** create(...); public long getNativeHandle(); public void release(); } -keepclassmembers class com.google.mediapipe.framework.PacketCreator { public void releaseWithSyncToken(...); } -keep class com.google.mediapipe.framework.MediaPipeException { (int, byte[]); } # ============================================================ # AI engine — never obfuscate so Java↔Kotlin interop is stable # ============================================================ -keep class helium314.keyboard.latin.ai.** { *; } -keepclassmembers class helium314.keyboard.latin.ai.** { *; } # ============================================================ # Kotlin coroutines # ============================================================ -keep class kotlinx.coroutines.** { *; } -dontwarn kotlinx.coroutines.** # Keep coroutine debug metadata (optional, remove in prod to shrink further) -keepattributes SourceFile,LineNumberTable # ============================================================ # HeliBoard — keep JNI-accessible classes and reflection targets # ============================================================ -keep class helium314.keyboard.latin.BinaryDictionary { *; } -keep class helium314.keyboard.latin.DicTraverseSession { *; } -keep class helium314.keyboard.latin.NgramContext { *; } -keep class helium314.keyboard.latin.utils.BinaryDictionaryUtils { *; } -dontwarn helium314.keyboard.**