# Ravenwood "policy" file for framework-minus-apex.

# To avoid VerifyError on nano proto files (b/324063814), we rename nano proto classes.
# Note: The "rename" directive must use slashes (/) as a package name separator.
rename com/.*/nano/   devicenano/
rename android/.*/nano/   devicenano/

# StatsD auto-generated
class com.android.internal.util.FrameworkStatsLog keepclass

# Exported to Mainline modules; cannot use annotations
class com.android.internal.util.FastXmlSerializer keepclass
class com.android.internal.util.FileRotator keepclass
class com.android.internal.util.HexDump keepclass
class com.android.internal.util.IndentingPrintWriter keepclass
class com.android.internal.util.LocalLog keepclass
class com.android.internal.util.MessageUtils keepclass
class com.android.internal.util.TokenBucket keepclass
class android.os.HandlerExecutor keepclass
class android.util.BackupUtils keepclass
class android.util.IndentingPrintWriter keepclass
class android.util.LocalLog keepclass
class android.util.Pair keepclass
class android.util.Rational keepclass

# From modules-utils; cannot use annotations
class com.android.internal.util.Preconditions keepclass
class com.android.internal.logging.InstanceId keepclass
class com.android.internal.logging.InstanceIdSequence keepclass
class com.android.internal.logging.UiEvent keepclass
class com.android.internal.logging.UiEventLogger keepclass

# From modules-utils; cannot use annotations
class com.android.modules.utils.BinaryXmlPullParser keepclass
class com.android.modules.utils.BinaryXmlSerializer keepclass
class com.android.modules.utils.FastDataInput keepclass
class com.android.modules.utils.FastDataOutput keepclass
class com.android.modules.utils.ModifiedUtf8 keepclass
class com.android.modules.utils.TypedXmlPullParser keepclass
class com.android.modules.utils.TypedXmlSerializer keepclass

# Uri
class android.net.Uri keepclass
class android.net.UriCodec keepclass

# Telephony
class android.telephony.PinResult keepclass

# Just enough to support mocking, no further functionality
class android.content.BroadcastReceiver keep
    method <init> ()V keep
class android.content.Context keep
    method <init> ()V keep
    method getSystemService (Ljava/lang/Class;)Ljava/lang/Object; keep
class android.content.pm.PackageManager
    method <init> ()V keep
class android.text.ClipboardManager keep
    method <init> ()V keep

# Just enough to allow ResourcesManager to run
class android.hardware.display.DisplayManagerGlobal keep
    method getInstance ()Landroid/hardware/display/DisplayManagerGlobal; ignore
