1 package com.android.onboarding.common.annotations 2 3 /** 4 * Annotation used for storing metadata about Onboarding components. 5 * 6 * @param name The human readable component name in English 7 * @param packageName The Android package name of the component 8 * @param subName If packageName does not uniquely identify this component, this is an additional 9 * short string to differentiate from others in the same package 10 * @param blueprint Optional full path to a blueprint file representing this component 11 * @param rapid Optional information about Rapid build for the component 12 * @param updates The minimum Android SDK version which still updates to new builds of this 13 * component. The default is that no updates occur during setup. 14 * @param triage Optional overrides to triage rules for bugs relating to this component. This will 15 * take precedence over definitions from blueprint and elsewhere. 16 */ 17 @Retention(AnnotationRetention.SOURCE) 18 annotation class OnboardingComponent( 19 val name: String, 20 val packageName: String, 21 val subName: String = "", 22 val rapid: RapidBuild = RapidBuild("NONE", "NONE"), 23 val blueprint: String = "", 24 val updates: Updates = Updates(-1), // Not updated during Onboarding 25 val triage: Triage = Triage(), 26 ) 27 28 /** Annotation used for storing metadata about Rapid builds. */ 29 @Retention(AnnotationRetention.SOURCE) 30 annotation class RapidBuild(val projectName: String, val productionEnvironment: String) 31 32 /** Annotation used for storing metadata about component update strategies. */ 33 @Retention(AnnotationRetention.SOURCE) annotation class Updates(val minSdkVersion: Int) 34 35 /** Annotation used for storing metadata about triage rules. */ 36 @Retention(AnnotationRetention.SOURCE) 37 annotation class Triage( 38 val buganizerComponentId: Long = -1, 39 val assigneeEmailAddress: String = "", 40 val hotlistIds: Array<String> = [], 41 ) 42