# Copyright (C) 2015 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Keep enough data for stack traces -renamesourcefileattribute SourceFile -keepattributes SourceFile, LineNumberTable, RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations, RuntimeVisibleTypeAnnotations, AnnotationDefault # Keep classes and methods that have the guava @VisibleForTesting annotation # TODO(b/373579455): Evaluate if needs to be kept. -keep @com.google.common.annotations.VisibleForTesting class * { void (); } -keepclassmembers class * { @com.google.common.annotations.VisibleForTesting *; } -keep class com.android.messaging.* { *; } -keep class com.android.messaging.*.* { *; } -keep class com.android.messaging.*.*.* { *; } # Keep methods that have the @VisibleForAnimation annotation # TODO(b/373579455): Evaluate if needs to be kept. -keep @interface com.android.messaging.annotation.VisibleForAnimation { void (); } -keepclassmembers class * { @com.android.messaging.annotation.VisibleForAnimation *; } # TODO(b/373579455): Evaluate if needs to be kept. -keep public class * extends android.app.Activity { void (); } # TODO(b/373579455): Evaluate if needs to be kept. -keep public class * extends android.app.Application { void (); } # TODO(b/373579455): Evaluate if needs to be kept. -keep public class * extends android.app.Service { void (); } # TODO(b/373579455): Evaluate if needs to be kept. -keep public class * extends android.content.BroadcastReceiver { void (); } # TODO(b/373579455): Evaluate if needs to be kept. -keep public class * extends android.content.ContentProvider { void (); } # TODO(b/373579455): Evaluate if needs to be kept. -keep public class * extends android.app.backup.BackupAgentHelper { void (); } # TODO(b/373579455): Evaluate if needs to be kept. -keep public class * extends android.preference.Preference { void (); } # TODO(b/373579455): Evaluate if needs to be kept. -keep public class * extends androidx.fragment.app.Fragment { void (); } -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.** { *; } # 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 { public static java.lang.StackTraceElement getCaller(...); } # Keep the static fields of referenced inner classes of auto-generated R classes, in case we # access those fields by reflection (e.g. EmojiMarkup) -keepclassmembers class **.R$* { public static ; }