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

# Keep all AIDL interfaces
class :aidl stubclass

# Keep all feature flag implementations
class :feature_flags stubclass

# Keep all sysprops generated code implementations
class :sysprops stubclass

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

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

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

# Uri
class android.net.Uri stubclass
class android.net.UriCodec stubclass

# Telephony
class android.telephony.PinResult stubclass

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