diff options
author | Elliot Sisteron <elliotsisteron@google.com> | 2024-01-05 11:30:18 +0000 |
---|---|---|
committer | Elliot Sisteron <elliotsisteron@google.com> | 2024-01-05 11:33:51 +0000 |
commit | f3fb23a372547fa8b9f4b18aa1ea6f29f71d98d7 (patch) | |
tree | 54a643d5b466d8b200783276019c20c0bac0bc7a | |
parent | 8ec80176993a15e3c5c41389d1ea1285665b567b (diff) | |
download | Permission-f3fb23a372547fa8b9f4b18aa1ea6f29f71d98d7.tar.gz |
Allow hidden-by-default sources to send issue-only data
Bug: 318691406
Test: atest SafetyCenterManagerTest
Relnote: Relax a requirement for Safety Center
Change-Id: I630e22065cfc912fa744befd3d16a9f26bd38a98
3 files changed, 21 insertions, 0 deletions
diff --git a/service/java/com/android/safetycenter/data/SafetySourceDataValidator.java b/service/java/com/android/safetycenter/data/SafetySourceDataValidator.java index 8a3151c9f..1ca6cb466 100644 --- a/service/java/com/android/safetycenter/data/SafetySourceDataValidator.java +++ b/service/java/com/android/safetycenter/data/SafetySourceDataValidator.java @@ -106,6 +106,8 @@ final class SafetySourceDataValidator { } if (safetySource.getType() == SafetySource.SAFETY_SOURCE_TYPE_DYNAMIC + && safetySource.getInitialDisplayState() + != SafetySource.INITIAL_DISPLAY_STATE_HIDDEN && safetySourceStatus == null) { throw new IllegalArgumentException( "Missing status for dynamic safety source: " + safetySourceId); diff --git a/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterManagerTest.kt b/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterManagerTest.kt index d90fbcd1e..ef217a199 100644 --- a/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterManagerTest.kt +++ b/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterManagerTest.kt @@ -3783,6 +3783,17 @@ class SafetyCenterManagerTest { assertThat(lastUpdated[key]).isNotNull() } + @Test + fun setSafetySourceData_dynamicHiddenWithIssueOnlyData_allowed() { + safetyCenterTestHelper.setConfig(safetyCenterTestConfigs.hiddenSourceConfig) + val expectedData = SafetySourceTestData.issuesOnly(safetySourceTestData.informationIssue) + + safetyCenterTestHelper.setData(DYNAMIC_HIDDEN_ID, expectedData) + + val actualData = safetyCenterManager.getSafetySourceDataWithPermission(DYNAMIC_HIDDEN_ID) + assertThat(actualData).isEqualTo(expectedData) + } + private fun dumpLastUpdated(): Map<String, String> { val dump = SystemUtil.runShellCommand("dumpsys safety_center data") return dump diff --git a/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterTestConfigs.kt b/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterTestConfigs.kt index fea9b45cc..2af2b391a 100644 --- a/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterTestConfigs.kt +++ b/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterTestConfigs.kt @@ -159,6 +159,14 @@ class SafetyCenterTestConfigs(private val context: Context) { /** A [SafetyCenterConfig] with a dynamic source in a different, missing package. */ val singleSourceOtherPackageConfig = singleSourceConfig(dynamicOtherPackageSafetySource) + /** A [SafetyCenterConfig] with a dynamic hidden-by-default source. */ + val hiddenSourceConfig = + singleSourceConfig( + dynamicSafetySourceBuilder(DYNAMIC_HIDDEN_ID) + .setInitialDisplayState(SafetySource.INITIAL_DISPLAY_STATE_HIDDEN) + .build() + ) + /** A simple [SafetyCenterConfig] with a source supporting all profiles. */ val singleSourceAllProfileConfig = singleSourceConfig( |