Files
packages_apps_Messaging/proguard.flags
T
Christoffer Adamsen 96af708145 Explicitly keep default constructor in rules without members
R8 implicitly keeps the default constructor when no member rules are specified. Future versions of R8 will require apps to explicitly keep the default constructors that are required for the build to work.

This conservatively changes all keep rules that currently keep the default constructor to explicitly keep the default constructor.

Future work will attempt to tighten up the rules that do not require the default constructor to be kept.

Bug: 373579455
Test: existing
Change-Id: I46dc4b01c0ee38a7033d8f16419dac00fe414fb1
2025-01-08 00:04:06 -08:00

95 lines
3.4 KiB
Plaintext

# 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,*Annotation*
# Keep classes and methods that have the guava @VisibleForTesting annotation
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep @com.google.common.annotations.VisibleForTesting class * {
void <init>();
}
-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 <init> needs to be kept.
-keep @interface com.android.messaging.annotation.VisibleForAnimation {
void <init>();
}
-keepclassmembers class * {
@com.android.messaging.annotation.VisibleForAnimation *;
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.app.Activity {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.app.Application {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.app.Service {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.content.BroadcastReceiver {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.content.ContentProvider {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.app.backup.BackupAgentHelper {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends android.preference.Preference {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
-keep public class * extends androidx.fragment.app.Fragment {
void <init>();
}
-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 <fields>;
}