1# 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} 24-keep class com.android.messaging.* { *; } 25-keep class com.android.messaging.*.* { *; } 26-keep class com.android.messaging.*.*.* { *; } 27 28# Keep methods that have the @VisibleForAnimation annotation 29-keep @interface com.android.messaging.annotation.VisibleForAnimation 30-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 41-keep public class * extends androidx.fragment.app.Fragment 42-keep public class com.android.vcard.* { *; } 43 44-keep class androidx.collection.* { *; } 45-keep class androidx.core.* { *; } 46-keep class androidx.core.*.* { *; } 47-keep class androidx.appcompat.* { *; } 48-keep class androidx.appcompat.*.* { *; } 49-keep class androidx.recyclerview.widget.* { *; } 50-keep class androidx.viewpager.widget.* { *; } 51 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} 65