diff options
author | Tsung-Mao Fang <tmfang@google.com> | 2023-10-31 00:27:18 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-10-31 00:28:10 -0700 |
commit | 3a5ec227b3fc8760dae2692aabb87a97c91c31a4 (patch) | |
tree | 320513f38eff60bfbbc1f9d65409156ec1abbd85 | |
parent | 248ad7c0819f7d3d12b96c5fcd7444f2cd41e187 (diff) | |
download | android_onboarding-3a5ec227b3fc8760dae2692aabb87a97c91c31a4.tar.gz |
Copybara ❤️: Add a debug flag in SuwOnboardingFlags
CL: cl/578082326
PiperOrigin-RevId: 578082326
Change-Id: Ibf7aefcfec00a7a8b16f39a85df43771eee28a5e
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 } |