summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTsung-Mao Fang <tmfang@google.com>2023-10-31 00:27:18 -0700
committerCopybara-Service <copybara-worker@google.com>2023-10-31 00:28:10 -0700
commit3a5ec227b3fc8760dae2692aabb87a97c91c31a4 (patch)
tree320513f38eff60bfbbc1f9d65409156ec1abbd85
parent248ad7c0819f7d3d12b96c5fcd7444f2cd41e187 (diff)
downloadandroid_onboarding-3a5ec227b3fc8760dae2692aabb87a97c91c31a4.tar.gz
Copybara ❤️: Add a debug flag in SuwOnboardingFlags
CL: cl/578082326 PiperOrigin-RevId: 578082326 Change-Id: Ibf7aefcfec00a7a8b16f39a85df43771eee28a5e
-rw-r--r--src/com/android/onboarding/flags/DefaultOnboardingFlagsProvider.kt28
-rw-r--r--src/com/android/onboarding/flags/OnboardingFlagsProvider.kt22
-rw-r--r--src/com/android/onboarding/flags/testing/FakeOnboardingFlagsProvider.kt14
3 files changed, 40 insertions, 24 deletions
diff --git a/src/com/android/onboarding/flags/DefaultOnboardingFlagsProvider.kt b/src/com/android/onboarding/flags/DefaultOnboardingFlagsProvider.kt
index 3b9da9c..d5cba12 100644
--- a/src/com/android/onboarding/flags/DefaultOnboardingFlagsProvider.kt
+++ b/src/com/android/onboarding/flags/DefaultOnboardingFlagsProvider.kt
@@ -4,25 +4,21 @@ import android.os.SystemProperties
/** A default implementation of [OnboardingFlagsProvider] using system property. */
class DefaultOnboardingFlagsProvider : OnboardingFlagsProvider {
+ override val isContractEnabled: Boolean
+ get() =
+ SystemProperties.getBoolean("$SYSTEM_PROPERTY_NAMESPACE.$FEATURE_CONTRACT_ENABLED", false)
+ override val isNodeLoggingEnabled: Boolean
+ get() =
+ SystemProperties.getBoolean("$SYSTEM_PROPERTY_NAMESPACE.$FEATURE_NODE_LOGGING_ENABLED", false)
- override fun isOnboardingContractEnabled(): Boolean {
- return SystemProperties.getBoolean(
- SYSTEM_PROPERTY_NAMESPACE + FEATURE_ONBOARDING_CONTRACT_ENABLED,
- false
- )
- }
-
- override fun isOnboardingNodeLoggingEnabled(): Boolean {
- return SystemProperties.getBoolean(
- SYSTEM_PROPERTY_NAMESPACE + FEATURE_ONBOARDING_NODE_LOGGING_ENABLED,
- false
- )
- }
+ override val isDebug: Boolean
+ get() = SystemProperties.getBoolean("$SYSTEM_PROPERTY_NAMESPACE.$FEATURE_DEBUG_ENABLED", false)
companion object {
// The key length has to be less that 31 characters (<18 if excluding namespace)
- public const val SYSTEM_PROPERTY_NAMESPACE = "aoj.feature."
- private const val FEATURE_ONBOARDING_CONTRACT_ENABLED = "contract"
- private const val FEATURE_ONBOARDING_NODE_LOGGING_ENABLED = "node_logging"
+ const val SYSTEM_PROPERTY_NAMESPACE = "aoj.feature"
+ private const val FEATURE_CONTRACT_ENABLED = "contract"
+ private const val FEATURE_NODE_LOGGING_ENABLED = "node_logging"
+ private const val FEATURE_DEBUG_ENABLED = "debug"
}
}
diff --git a/src/com/android/onboarding/flags/OnboardingFlagsProvider.kt b/src/com/android/onboarding/flags/OnboardingFlagsProvider.kt
index 2d37786..69c561d 100644
--- a/src/com/android/onboarding/flags/OnboardingFlagsProvider.kt
+++ b/src/com/android/onboarding/flags/OnboardingFlagsProvider.kt
@@ -2,13 +2,27 @@ package com.android.onboarding.flags
/** Interface for getting enabled state of different onboarding feature flags. */
interface OnboardingFlagsProvider {
+ @Deprecated(message = "Replaced with a property", replaceWith = ReplaceWith("isContractEnabled"))
+ fun isOnboardingContractEnabled(): Boolean = isContractEnabled
/**
- * Returns [true] if the onboarding contract architecture is being used across the onboarding
+ * Returns `true` if the onboarding contract architecture is being used across the onboarding
* flow.
*/
- fun isOnboardingContractEnabled(): Boolean
+ val isContractEnabled: Boolean
- /** Returns [true] if onboarding node logs should be uploaded remotely. */
- fun isOnboardingNodeLoggingEnabled(): Boolean
+ @Deprecated(
+ message = "Replaced with a property",
+ replaceWith = ReplaceWith("isNodeLoggingEnabled")
+ )
+ fun isOnboardingNodeLoggingEnabled(): Boolean = isNodeLoggingEnabled
+
+ /** Returns `true` if onboarding node logs should be uploaded remotely. */
+ val isNodeLoggingEnabled: Boolean
+
+ /**
+ * Indicates that all onboarding components should activate the flagged changes regardless of
+ * other flag values.
+ */
+ val isDebug: Boolean
}
diff --git a/src/com/android/onboarding/flags/testing/FakeOnboardingFlagsProvider.kt b/src/com/android/onboarding/flags/testing/FakeOnboardingFlagsProvider.kt
index dfa7115..56a1d21 100644
--- a/src/com/android/onboarding/flags/testing/FakeOnboardingFlagsProvider.kt
+++ b/src/com/android/onboarding/flags/testing/FakeOnboardingFlagsProvider.kt
@@ -4,10 +4,16 @@ import com.android.onboarding.flags.OnboardingFlagsProvider
/** A fake implementation of [OnboardingFlagsProvider]. */
class FakeOnboardingFlagsProvider(
- var isOnboardingContractEnabledFlag: Boolean = false,
- var isOnboardingNodeLoggingEnabledFlag: Boolean = false
+ override var isContractEnabled: Boolean = false,
+ override var isNodeLoggingEnabled: Boolean = false,
+ override var isDebug: Boolean = false,
) : OnboardingFlagsProvider {
- override fun isOnboardingContractEnabled() = isOnboardingContractEnabledFlag
+ @Deprecated(message = "Replaced with overrides", replaceWith = ReplaceWith("isContractEnabled"))
+ var isOnboardingContractEnabledFlag: Boolean by ::isContractEnabled
- override fun isOnboardingNodeLoggingEnabled() = isOnboardingNodeLoggingEnabledFlag
+ @Deprecated(
+ message = "Replaced with overrides",
+ replaceWith = ReplaceWith("isNodeLoggingEnabled")
+ )
+ var isOnboardingNodeLoggingEnabledFlag: Boolean by ::isNodeLoggingEnabled
}