summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-11-01 01:20:10 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-11-01 01:20:10 +0000
commit2f8e4c6cf0163761c93b23d1cfbf5f0b32b9a189 (patch)
treefb94b5758afacbcdbd752d68a6812184cc824cb4
parent38b2cb50eca81592eabf993c6b13a90ac7a31f97 (diff)
parentdd0eefe42f818e8eb52265d523f55a1bc7c2db39 (diff)
downloadandroid_onboarding-2f8e4c6cf0163761c93b23d1cfbf5f0b32b9a189.tar.gz
Snap for 11031655 from dd0eefe42f818e8eb52265d523f55a1bc7c2db39 to 24Q1-release
Change-Id: I4725e49b2d8895598bb18c6c2e305370a7ab2496
-rw-r--r--src/com/android/onboarding/contracts/setupwizard/SuwArguments.kt2
-rw-r--r--src/com/android/onboarding/contracts/setupwizard/SuwArgumentsSerializer.kt2
-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
5 files changed, 42 insertions, 26 deletions
diff --git a/src/com/android/onboarding/contracts/setupwizard/SuwArguments.kt b/src/com/android/onboarding/contracts/setupwizard/SuwArguments.kt
index 8b5b032..e1cb3eb 100644
--- a/src/com/android/onboarding/contracts/setupwizard/SuwArguments.kt
+++ b/src/com/android/onboarding/contracts/setupwizard/SuwArguments.kt
@@ -30,7 +30,7 @@ data class SuwArguments(
val firstRun: Boolean,
val portalSetup: Boolean,
val scriptUri: Uri?,
- val hasMultipleUsers: Boolean,
+ val hasMultipleUsers: Boolean?,
val theme: String,
val wizardBundle: Bundle,
)
diff --git a/src/com/android/onboarding/contracts/setupwizard/SuwArgumentsSerializer.kt b/src/com/android/onboarding/contracts/setupwizard/SuwArgumentsSerializer.kt
index 16c67a6..d346dff 100644
--- a/src/com/android/onboarding/contracts/setupwizard/SuwArgumentsSerializer.kt
+++ b/src/com/android/onboarding/contracts/setupwizard/SuwArgumentsSerializer.kt
@@ -32,7 +32,7 @@ class SuwArgumentsSerializer @Inject constructor() : ScopedIntentSerializer<SuwA
firstRun = booleanExtra("firstRun"),
portalSetup = booleanExtra("portalSetup"),
scriptUri = parcelableExtraOrNull("scriptUri"),
- hasMultipleUsers = booleanExtra("hasMultipleUsers"),
+ hasMultipleUsers = booleanExtraOrNull("hasMultipleUsers"),
theme = stringExtra("theme"),
wizardBundle = bundleExtra("wizardBundle"),
)
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
}