Home | History | Annotate | Download | only in Messaging
      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 
     25 # Keep methods that have the @VisibleForAnimation annotation
     26 -keep interface com.android.messaging.annotation.VisibleForAnimation
     27 -keepclassmembers class * {
     28   @com.android.messaging.annotation.VisibleForAnimation *;
     29 }
     30 
     31 -keep public class * extends android.app.Activity
     32 -keep public class * extends android.app.Application
     33 -keep public class * extends android.app.Service
     34 -keep public class * extends android.content.BroadcastReceiver
     35 -keep public class * extends android.content.ContentProvider
     36 -keep public class * extends android.app.backup.BackupAgentHelper
     37 -keep public class * extends android.preference.Preference
     38 -keep public class * extends android.support.v4.app.Fragment
     39 -keep public class com.android.vcard.* { *; }
     40 
     41 -keep class android.support.v4.* { *; }
     42 -keep class android.support.v4.*.* { *; }
     43 -keep class android.support.v7.* { *; }
     44 -keep class android.support.v7.*.* { *; }
     45 
     46 # Keep rastermill classes that need to be accessed from native code (JNI)
     47 -keep class android.support.rastermill.** { *; }
     48 
     49 # Preserve the name of the getCaller method so it can find itself in the stack trace it generates
     50 -keepclassmembers public class com.android.messaging.util.DebugUtils {
     51   public static java.lang.StackTraceElement getCaller(...);
     52 }
     53 
     54 # Keep the static fields of referenced inner classes of auto-generated R classes, in case we
     55 # access those fields by reflection (e.g. EmojiMarkup)
     56 -keepclassmembers class **.R$* {
     57     public static <fields>;
     58 }
     59