1# Keep classes and methods that have the @UsedForTesting annotation
2-keep @com.android.inputmethod.annotations.UsedForTesting class *
3-keepclassmembers class * {
4    @com.android.inputmethod.annotations.UsedForTesting *;
5}
6
7# Keep classes and methods that have the @ExternallyReferenced annotation
8-keep @com.android.inputmethod.annotations.ExternallyReferenced class *
9-keepclassmembers class * {
10    @com.android.inputmethod.annotations.ExternallyReferenced *;
11}
12
13# Keep native methods
14-keepclassmembers class * {
15    native <methods>;
16}
17
18# Keep classes that are used as a parameter type of methods that are also marked as keep
19# to preserve changing those methods' signature.
20-keep class com.android.inputmethod.latin.AssetFileAddress
21-keep class com.android.inputmethod.latin.Dictionary
22-keep class com.android.inputmethod.latin.NgramContext
23-keep class com.android.inputmethod.latin.makedict.ProbabilityInfo
24-keep class com.android.inputmethod.latin.utils.LanguageModelParam
25
26# TODO: remove once used in code.
27-keep class com.android.inputmethod.keyboard.KeyboardLayout { *; }
28
29