# Runtime keep rules consumed by applications that embed nav-ui.
# Do not add global optimization switches or package-wide API keep rules here.

-keepattributes Signature
-keepattributes RuntimeVisibleAnnotations,RuntimeVisibleParameterAnnotations,AnnotationDefault

# XML inflation invokes these SDK-owned View constructors reflectively.
-keepclassmembers,allowoptimization class ai.nextbillion.navigation.ui.** extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context,android.util.AttributeSet);
    public <init>(android.content.Context,android.util.AttributeSet,int);
}

# ViewModelProvider creates this class through its Application constructor.
-keep,allowoptimization,allowobfuscation class ai.nextbillion.navigation.ui.NavigationViewModel {
    public <init>(android.app.Application);
}

-keepclassmembers class ai.nextbillion.navigation.ui.** implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator CREATOR;
}

-keepclassmembers enum ai.nextbillion.navigation.ui.** {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# Generated keep rule for Lifecycle observer adapter.
-if class ai.nextbillion.navigation.ui.camera.NavigationCamera {
    <init>(...);
}
-keep class ai.nextbillion.navigation.ui.camera.NavigationCamera_LifecycleAdapter {
    <init>(...);
}

# Generated keep rule for Lifecycle observer adapter.
-if class ai.nextbillion.navigation.ui.instruction.InstructionView {
    <init>(...);
}
-keep class ai.nextbillion.navigation.ui.instruction.InstructionView_LifecycleAdapter {
    <init>(...);
}

# Generated keep rule for Lifecycle observer adapter.
-if class ai.nextbillion.navigation.ui.route.NavigationMapRoute {
    <init>(...);
}
-keep class ai.nextbillion.navigation.ui.route.NavigationMapRoute_LifecycleAdapter {
    <init>(...);
}

# Generated keep rule for Lifecycle observer adapter.
-if class ai.nextbillion.navigation.ui.summary.SummaryBottomSheet {
    <init>(...);
}
-keep class ai.nextbillion.navigation.ui.summary.SummaryBottomSheet_LifecycleAdapter {
    <init>(...);
}

# Generated keep rule for Lifecycle observer adapter.
-if class ai.nextbillion.navigation.ui.view.GpsSearchingNoticeView {
    <init>(...);
}
-keep class ai.nextbillion.navigation.ui.view.GpsSearchingNoticeView_LifecycleAdapter {
    <init>(...);
}
