blob: c5bbb42176b309b3860da7bf1b7b8d60ab081412 [file] [log] [blame]
Mike Doddd3b009a2015-08-11 11:16:59 -07001# Copyright (C) 2015 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14#
15# Keep enough data for stack traces
16-renamesourcefileattribute SourceFile
17-keepattributes SourceFile,LineNumberTable,*Annotation*
18
19# Keep classes and methods that have the guava @VisibleForTesting annotation
20-keep @com.google.common.annotations.VisibleForTesting class *
21-keepclassmembers class * {
22 @com.google.common.annotations.VisibleForTesting *;
23}
Raman Tennetib1aa2132020-07-09 18:37:41 -070024-keep class com.android.messaging.* { *; }
25-keep class com.android.messaging.*.* { *; }
26-keep class com.android.messaging.*.*.* { *; }
Mike Doddd3b009a2015-08-11 11:16:59 -070027
28# Keep methods that have the @VisibleForAnimation annotation
Delphine Martin83eba642016-03-11 16:29:28 +010029-keep @interface com.android.messaging.annotation.VisibleForAnimation
Mike Doddd3b009a2015-08-11 11:16:59 -070030-keepclassmembers class * {
31 @com.android.messaging.annotation.VisibleForAnimation *;
32}
33
34-keep public class * extends android.app.Activity
35-keep public class * extends android.app.Application
36-keep public class * extends android.app.Service
37-keep public class * extends android.content.BroadcastReceiver
38-keep public class * extends android.content.ContentProvider
39-keep public class * extends android.app.backup.BackupAgentHelper
40-keep public class * extends android.preference.Preference
Aurimas Liutikas1b693ea2018-04-09 17:17:41 -070041-keep public class * extends androidx.fragment.app.Fragment
Mike Doddd3b009a2015-08-11 11:16:59 -070042-keep public class com.android.vcard.* { *; }
43
Raman Tennetib1aa2132020-07-09 18:37:41 -070044-keep class androidx.collection.* { *; }
Aurimas Liutikas1b693ea2018-04-09 17:17:41 -070045-keep class androidx.core.* { *; }
46-keep class androidx.core.*.* { *; }
47-keep class androidx.appcompat.* { *; }
48-keep class androidx.appcompat.*.* { *; }
Raman Tennetib1aa2132020-07-09 18:37:41 -070049-keep class androidx.recyclerview.widget.* { *; }
50-keep class androidx.viewpager.widget.* { *; }
Mike Doddd3b009a2015-08-11 11:16:59 -070051
52# Keep rastermill classes that need to be accessed from native code (JNI)
53-keep class android.support.rastermill.** { *; }
54
55# Preserve the name of the getCaller method so it can find itself in the stack trace it generates
56-keepclassmembers public class com.android.messaging.util.DebugUtils {
57 public static java.lang.StackTraceElement getCaller(...);
58}
59
60# Keep the static fields of referenced inner classes of auto-generated R classes, in case we
61# access those fields by reflection (e.g. EmojiMarkup)
62-keepclassmembers class **.R$* {
63 public static <fields>;
64}