• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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