xref: /aosp_15_r20/external/android_onboarding/java/com/android/onboarding/flags/OnboardingFlagsProvider.kt (revision c625018464ae97c56936c82b1b617e11aa899faa)
1 package com.android.onboarding.flags
2 
3 /** Interface for getting enabled state of different onboarding feature flags. */
4 interface OnboardingFlagsProvider {
5   @Deprecated(message = "Replaced with a property", replaceWith = ReplaceWith("isContractEnabled"))
isOnboardingContractEnablednull6   fun isOnboardingContractEnabled(): Boolean = isContractEnabled
7 
8   /**
9    * Returns `true` if the onboarding contract architecture is being used across the onboarding
10    * flow.
11    */
12   val isContractEnabled: Boolean
13 
14   @Deprecated(
15     message = "Replaced with a property",
16     replaceWith = ReplaceWith("isNodeLoggingEnabled"),
17   )
18   fun isOnboardingNodeLoggingEnabled(): Boolean = isNodeLoggingEnabled
19 
20   /** Returns `true` if onboarding node logs should be uploaded remotely. */
21   val isNodeLoggingEnabled: Boolean
22 
23   /** Returns `true` if onboarding UI logging should be uploaded remotely. */
24   val isUiLoggingEnabled: Boolean
25 
26   /** Returns `true` if dimensions are being attached to logs. */
27   val isDimensionLoggingEnabled: Boolean
28   /**
29    * Indicates that all onboarding components should activate the flagged changes regardless of
30    * other flag values.
31    */
32   val isDebug: Boolean
33 
34   /** Returns true if node transitions should be visualised in logcat. */
35   val shouldVisualiseNodeTransitionsInLogcat: Boolean
36 }
37