summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
author Tyler Dewey <deweytyl@google.com> 2025-03-06 02:47:10 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-03-06 02:47:10 -0800
commit4529ad1ee5ba19e62df7aacc6848c3d85023a896 (patch)
tree8f0be8f58e4f5151a7e32f299476e3206311bc02 /tests
parent1b455ed134646e52973cfed4638ea1690ad1fba4 (diff)
parent51ffbb374aa8f12f635b0c59579bd25f8d20f307 (diff)
Merge "Swallow write errors for BannerMessagePref property in SC tests." into main
Diffstat (limited to 'tests')
-rw-r--r--tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterFlags.kt47
1 files changed, 37 insertions, 10 deletions
diff --git a/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterFlags.kt b/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterFlags.kt
index 66c5f46c4..4b4abf360 100644
--- a/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterFlags.kt
+++ b/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterFlags.kt
@@ -35,6 +35,7 @@ import android.safetycenter.SafetyCenterManager.REFRESH_REASON_PERIODIC
import android.safetycenter.SafetyCenterManager.REFRESH_REASON_RESCAN_BUTTON_CLICK
import android.safetycenter.SafetyCenterManager.REFRESH_REASON_SAFETY_CENTER_ENABLED
import android.safetycenter.SafetySourceData
+import android.util.Log
import com.android.modules.utils.build.SdkLevel
import com.android.safetycenter.testing.Coroutines.TEST_TIMEOUT
import com.android.safetycenter.testing.Coroutines.TIMEOUT_LONG
@@ -167,6 +168,8 @@ object SafetyCenterFlags {
defaultValue = Duration.ofMillis(400),
DurationParser(),
namespace = NAMESPACE_SETTINGS_UI,
+ // This flag is only writeable on BP2A builds built after 3 March 2025
+ writeMustSucceed = false,
)
/**
@@ -344,6 +347,16 @@ object SafetyCenterFlags {
periodicBackgroundRefreshIntervalFlag,
)
+ /** All the Safety Center flags that should be written to during setup and reset. */
+ private val SETUP_FLAGS =
+ FLAGS.filter { it.name != isEnabledFlag.name }
+ .filter {
+ // This flag is only writeable on BP2A builds built after 3 March 2025
+ // Don't set it up on versions we know will trigger a write error.
+ it.name != bannerMessagePrefHideResolvedContentTransitionDelayFlag.name ||
+ SdkLevel.isAtLeastB()
+ }
+
/** A property that allows getting and setting the [isEnabledFlag]. */
var isEnabled: Boolean by isEnabledFlag
@@ -458,8 +471,7 @@ object SafetyCenterFlags {
*/
fun setup() {
snapshot = lazySnapshot
- FLAGS.filter { it.name != isEnabledFlag.name }
- .forEach { it.writeToDeviceConfig(it.defaultStringValue) }
+ SETUP_FLAGS.forEach { it.writeToDeviceConfig(it.defaultStringValue) }
}
/**
@@ -473,12 +485,11 @@ object SafetyCenterFlags {
// Write flags one by one instead of using `DeviceConfig#setProperties` as the latter does
// not work when DeviceConfig sync is disabled and does not take uninitialized values into
// account.
- FLAGS.filter { it.name != isEnabledFlag.name }
- .forEach {
- val key = it.name
- val value = snapshot[it.namespace]?.getString(key, /* defaultValue */ null)
- it.writeToDeviceConfig(value)
- }
+ SETUP_FLAGS.forEach {
+ val key = it.name
+ val value = snapshot[it.namespace]?.getString(key, /* defaultValue */ null)
+ it.writeToDeviceConfig(value)
+ }
}
/** Sets the [refreshTimeouts] for all refresh reasons to the given [refreshTimeout]. */
@@ -566,6 +577,7 @@ object SafetyCenterFlags {
val defaultValue: T,
private val parser: Parser<T>,
val namespace: String = NAMESPACE_PRIVACY,
+ val writeMustSucceed: Boolean = true,
) {
val defaultStringValue = parser.toString(defaultValue)
@@ -584,9 +596,24 @@ object SafetyCenterFlags {
fun writeToDeviceConfig(stringValue: String?) {
callWithShellPermissionIdentity(WRITE_DEVICE_CONFIG, WRITE_ALLOWLISTED_DEVICE_CONFIG) {
val valueWasSet =
- DeviceConfig.setProperty(namespace, name, stringValue, /* makeDefault */ false)
- require(valueWasSet) { "Could not set $name to: $stringValue" }
+ try {
+ DeviceConfig.setProperty(
+ namespace,
+ name,
+ stringValue,
+ /* makeDefault */ false,
+ )
+ } catch (e: Exception) {
+ Log.w(TAG, "Error while setting $name to: $stringValue", e)
+ false
+ }
+
+ if (writeMustSucceed) {
+ require(valueWasSet) { "Could not set $name to: $stringValue" }
+ }
}
}
}
+
+ private const val TAG = "SafetyCenterFlags"
}