summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Giulio Fiscella <fiscella@google.com> 2022-02-15 20:52:34 +0000
committer Giulio Fiscella <fiscella@google.com> 2022-02-18 11:31:40 +0000
commit412a58cbc98d762cdbe26b3e61bf89c0849d9971 (patch)
treeda5b293a35a7bd2283371503952240ab2c8b835a
parent3d0c48b78a85567143834afb40b74a595fd8a95e (diff)
Mark XML parser as a SystemApi
Migrate config data structure and parser to the framework SDK library so that they can be tracked and that they can be used by test APIs. Migrate unit tests to CTS tests. Test: atest CtsSafetyCenterTestCases Bug: 218485292 Bug: 217369746 Change-Id: Ia2e3d1a21a285c83972c0a1440325fc1a4dc6b39
-rw-r--r--SafetyCenter/Config/Android.bp35
-rw-r--r--SafetyCenter/Config/tests/Android.bp35
-rw-r--r--SafetyCenter/Config/tests/AndroidManifest.xml30
-rw-r--r--SafetyCenter/Config/tests/AndroidTest.xml35
-rw-r--r--SafetyCenter/Config/tests/java/com/android/safetycenter/config/ConfigInvalidTest.kt380
-rw-r--r--SafetyCenter/Config/tests/java/com/android/safetycenter/config/ConfigValidTest.kt133
-rw-r--r--SafetyCenter/Config/tests/res/values/strings.xml20
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_all_disabled_no_work.xml17
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_all_no_work.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_disabled_no_summary.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_disabled_no_title.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_duplicate_key.xml28
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_intent.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_summary.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_title.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_invalid_display.xml17
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_invalid_profile.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_id.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_intent.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_package.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_profile.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_summary.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_title.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_primary_hidden_with_work.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_primary_with_work.xml17
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_duplicate_key.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_invalid_profile.xml11
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_id.xml10
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_package.xml10
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_profile.xml10
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_display.xml12
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_intent.xml12
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_search.xml12
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_summary.xml12
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_title.xml12
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_work.xml12
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_mixed_safety_source_duplicate_key.xml26
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_reference_invalid.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_safety_center_config_missing.xml2
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_safety_sources_config_empty.xml4
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_safety_sources_config_missing.xml4
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_safety_sources_group_duplicate_id.xml26
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_safety_sources_group_empty.xml9
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_safety_sources_group_invalid_icon.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_safety_sources_group_no_id.xml14
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_safety_sources_group_no_title.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_duplicate_key.xml26
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_invalid_profile.xml15
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_id.xml14
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_intent.xml14
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_profile.xml14
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_summary.xml14
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_title.xml14
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_broadcast.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_display.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_logging.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_package.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_primary_and_work.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_refresh.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_severity.xml16
-rw-r--r--SafetyCenter/Config/tests/res/xml/config_valid.xml89
-rw-r--r--framework-s/api/system-current.txt100
-rw-r--r--framework-s/java/android/safetycenter/config/BuilderUtils.java (renamed from SafetyCenter/Config/java/com/android/safetycenter/config/BuilderUtils.java)2
-rw-r--r--framework-s/java/android/safetycenter/config/Parser.java (renamed from SafetyCenter/Config/java/com/android/safetycenter/config/Parser.java)28
-rw-r--r--framework-s/java/android/safetycenter/config/SafetyCenterConfig.java (renamed from SafetyCenter/Config/java/com/android/safetycenter/config/SafetyCenterConfig.java)47
-rw-r--r--framework-s/java/android/safetycenter/config/SafetySource.java (renamed from SafetyCenter/Config/java/com/android/safetycenter/config/SafetySource.java)83
-rw-r--r--framework-s/java/android/safetycenter/config/SafetySourcesGroup.java (renamed from SafetyCenter/Config/java/com/android/safetycenter/config/SafetySourcesGroup.java)56
-rw-r--r--service/Android.bp1
-rw-r--r--service/java/com/android/safetycenter/SafetyCenterConfigReader.java4
-rw-r--r--service/java/com/android/safetycenter/SafetyCenterDataTracker.java7
-rw-r--r--service/java/com/android/safetycenter/SafetyCenterRefreshManager.java8
71 files changed, 300 insertions, 1568 deletions
diff --git a/SafetyCenter/Config/Android.bp b/SafetyCenter/Config/Android.bp
deleted file mode 100644
index e375e63b4..000000000
--- a/SafetyCenter/Config/Android.bp
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// Copyright (C) 2021 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-package {
- default_applicable_licenses: ["Android-Apache-2.0"],
-}
-
-java_library {
- name: "safety-center-config",
- srcs: [
- "java/**/*.java",
- ],
- libs: [
- "framework-annotations-lib",
- ],
- apex_available: [
- "com.android.permission",
- "test_com.android.permission",
- ],
- installable: false,
- min_sdk_version: "30",
- sdk_version: "module_current",
-}
diff --git a/SafetyCenter/Config/tests/Android.bp b/SafetyCenter/Config/tests/Android.bp
deleted file mode 100644
index 3538df46d..000000000
--- a/SafetyCenter/Config/tests/Android.bp
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2022 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package {
- default_applicable_licenses: ["Android-Apache-2.0"],
-}
-
-android_test {
- name: "SafetyCenterConfigTests",
- defaults: ["mts-target-sdk-version-current"],
- sdk_version: "test_current",
- min_sdk_version: "30",
- srcs: [
- "java/**/*.kt",
- ],
- static_libs: [
- "safety-center-config",
- "compatibility-device-util-axt",
- ],
- test_suites: [
- "general-tests",
- "mts-permission",
- ],
-}
diff --git a/SafetyCenter/Config/tests/AndroidManifest.xml b/SafetyCenter/Config/tests/AndroidManifest.xml
deleted file mode 100644
index 5ccda9508..000000000
--- a/SafetyCenter/Config/tests/AndroidManifest.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- ~ Copyright (C) 2022 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-
-<manifest
- xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.safetycenter.tests.config.safetycenterconfig">
-
- <application android:label="Safety Center Config Tests">
- <uses-library android:name="android.test.runner" />
- </application>
-
- <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
- android:targetPackage="com.android.safetycenter.tests.config.safetycenterconfig"
- android:label="Tests for the Safety Center Config library" />
-</manifest>
diff --git a/SafetyCenter/Config/tests/AndroidTest.xml b/SafetyCenter/Config/tests/AndroidTest.xml
deleted file mode 100644
index 536174ae3..000000000
--- a/SafetyCenter/Config/tests/AndroidTest.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- ~ Copyright (C) 2022 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-
-<configuration description="Runs unit tests for the Safety Center Config library.">
- <option name="test-suite-tag" value="apct" />
- <option name="test-suite-tag" value="apct-instrumentation" />
- <option name="test-tag" value="SafetyCenterConfigTests" />
- <object type="module_controller" class="com.android.tradefed.testtype.suite.module.Sdk30ModuleController" />
-
- <!-- Install test -->
- <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
- <option name="test-file-name" value="SafetyCenterConfigTests.apk" />
- <option name="cleanup-apks" value="true" />
- </target_preparer>
-
- <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
- <option name="package" value="com.android.safetycenter.tests.config.safetycenterconfig" />
- <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
- </test>
-</configuration>
diff --git a/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ConfigInvalidTest.kt b/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ConfigInvalidTest.kt
deleted file mode 100644
index c8c5fca96..000000000
--- a/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ConfigInvalidTest.kt
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.safetycenter.config
-
-import android.content.Context
-import androidx.test.core.app.ApplicationProvider.getApplicationContext
-import com.android.safetycenter.tests.config.safetycenterconfig.R
-import com.google.common.truth.Truth.assertThat
-import org.junit.Assert.assertThrows
-import org.junit.Test
-import org.junit.runners.Parameterized
-import org.junit.runner.RunWith
-
-@RunWith(Parameterized::class)
-class ConfigInvalidTest {
- private val context: Context = getApplicationContext()
-
- data class Params(
- private val testName: String,
- val configResourceId: Int,
- val errorMessage: String,
- val causeErrorMessage: String?
- ) {
- override fun toString() = testName
- }
-
- @Parameterized.Parameter
- lateinit var params: Params
-
- @Test
- fun invalidConfig_throws() {
- val parser = context.resources.getXml(params.configResourceId)
- val thrown = assertThrows(Parser.ParseException::class.java) {
- Parser.parseXmlResource(parser)
- }
- assertThat(thrown).hasMessageThat().isEqualTo(params.errorMessage)
- if (params.causeErrorMessage != null) {
- assertThat(thrown.cause).hasMessageThat().isEqualTo(params.causeErrorMessage)
- }
- }
-
- companion object {
- @JvmStatic
- @Parameterized.Parameters(name = "{0}")
- fun parameters() = arrayOf(
- Params(
- "ConfigDynamicSafetySourceAllDisabledNoWork",
- R.xml.config_dynamic_safety_source_all_disabled_no_work,
- "Element dynamic-safety-source invalid",
- "Required attribute titleForWork missing"
- ),
- Params(
- "ConfigDynamicSafetySourceAllNoWork",
- R.xml.config_dynamic_safety_source_all_no_work,
- "Element dynamic-safety-source invalid",
- "Required attribute titleForWork missing"
- ),
- Params(
- "ConfigDynamicSafetySourceDisabledNoSummary",
- R.xml.config_dynamic_safety_source_disabled_no_summary,
- "Element dynamic-safety-source invalid",
- "Required attribute summary missing"
- ),
- Params(
- "ConfigDynamicSafetySourceDisabledNoTitle",
- R.xml.config_dynamic_safety_source_disabled_no_title,
- "Element dynamic-safety-source invalid",
- "Required attribute title missing"
- ),
- Params(
- "ConfigDynamicSafetySourceDuplicateKey",
- R.xml.config_dynamic_safety_source_duplicate_key,
- "Element safety-sources-config invalid",
- "Duplicate id id among safety sources"
- ),
- Params(
- "ConfigDynamicSafetySourceHiddenWithIntent",
- R.xml.config_dynamic_safety_source_hidden_with_intent,
- "Element dynamic-safety-source invalid",
- "Prohibited attribute intentAction present"
- ),
- Params(
- "ConfigDynamicSafetySourceHiddenWithSummary",
- R.xml.config_dynamic_safety_source_hidden_with_summary,
- "Element dynamic-safety-source invalid",
- "Prohibited attribute summary present"
- ),
- Params(
- "ConfigDynamicSafetySourceHiddenWithTitle",
- R.xml.config_dynamic_safety_source_hidden_with_title,
- "Element dynamic-safety-source invalid",
- "Prohibited attribute title present"
- ),
- Params(
- "ConfigDynamicSafetySourceInvalidDisplay",
- R.xml.config_dynamic_safety_source_invalid_display,
- "Attribute dynamic-safety-source.initialDisplayState invalid",
- null
- ),
- Params(
- "ConfigDynamicSafetySourceInvalidProfile",
- R.xml.config_dynamic_safety_source_invalid_profile,
- "Attribute dynamic-safety-source.profile invalid",
- null
- ),
- Params(
- "ConfigDynamicSafetySourceNoId",
- R.xml.config_dynamic_safety_source_no_id,
- "Element dynamic-safety-source invalid",
- "Required attribute id missing"
- ),
- Params(
- "ConfigDynamicSafetySourceNoIntent",
- R.xml.config_dynamic_safety_source_no_intent,
- "Element dynamic-safety-source invalid",
- "Required attribute intentAction missing"
- ),
- Params(
- "ConfigDynamicSafetySourceNoPackage",
- R.xml.config_dynamic_safety_source_no_package,
- "Element dynamic-safety-source invalid",
- "Required attribute packageName missing"
- ),
- Params(
- "ConfigDynamicSafetySourceNoProfile",
- R.xml.config_dynamic_safety_source_no_profile,
- "Element dynamic-safety-source invalid",
- "Required attribute profile missing"
- ),
- Params(
- "ConfigDynamicSafetySourceNoSummary",
- R.xml.config_dynamic_safety_source_no_summary,
- "Element dynamic-safety-source invalid",
- "Required attribute summary missing"
- ),
- Params(
- "ConfigDynamicSafetySourceNoTitle",
- R.xml.config_dynamic_safety_source_no_title,
- "Element dynamic-safety-source invalid",
- "Required attribute title missing"
- ),
- Params(
- "ConfigDynamicSafetySourcePrimaryHiddenWithWork",
- R.xml.config_dynamic_safety_source_primary_hidden_with_work,
- "Element dynamic-safety-source invalid",
- "Prohibited attribute titleForWork present"
- ),
- Params(
- "ConfigDynamicSafetySourcePrimaryWithWork",
- R.xml.config_dynamic_safety_source_primary_with_work,
- "Element dynamic-safety-source invalid",
- "Prohibited attribute titleForWork present"
- ),
- Params(
- "ConfigIssueOnlySafetySourceDuplicateKey",
- R.xml.config_issue_only_safety_source_duplicate_key,
- "Element safety-sources-config invalid",
- "Duplicate id id among safety sources"
- ),
- Params(
- "ConfigIssueOnlySafetySourceInvalidProfile",
- R.xml.config_issue_only_safety_source_invalid_profile,
- "Attribute issue-only-safety-source.profile invalid",
- null
- ),
- Params(
- "ConfigIssueOnlySafetySourceNoId",
- R.xml.config_issue_only_safety_source_no_id,
- "Element issue-only-safety-source invalid",
- "Required attribute id missing"
- ),
- Params(
- "ConfigIssueOnlySafetySourceNoPackage",
- R.xml.config_issue_only_safety_source_no_package,
- "Element issue-only-safety-source invalid",
- "Required attribute packageName missing"
- ),
- Params(
- "ConfigIssueOnlySafetySourceNoProfile",
- R.xml.config_issue_only_safety_source_no_profile,
- "Element issue-only-safety-source invalid",
- "Required attribute profile missing"
- ),
- Params(
- "ConfigIssueOnlySafetySourceWithDisplay",
- R.xml.config_issue_only_safety_source_with_display,
- "Element issue-only-safety-source invalid",
- "Prohibited attribute initialDisplayState present"
- ),
- Params(
- "ConfigIssueOnlySafetySourceWithIntent",
- R.xml.config_issue_only_safety_source_with_intent,
- "Element issue-only-safety-source invalid",
- "Prohibited attribute intentAction present"
- ),
- Params(
- "ConfigIssueOnlySafetySourceWithSearch",
- R.xml.config_issue_only_safety_source_with_search,
- "Element issue-only-safety-source invalid",
- "Prohibited attribute searchTerms present"
- ),
- Params(
- "ConfigIssueOnlySafetySourceWithSummary",
- R.xml.config_issue_only_safety_source_with_summary,
- "Element issue-only-safety-source invalid",
- "Prohibited attribute summary present"
- ),
- Params(
- "ConfigIssueOnlySafetySourceWithTitle",
- R.xml.config_issue_only_safety_source_with_title,
- "Element issue-only-safety-source invalid",
- "Prohibited attribute title present"
- ),
- Params(
- "ConfigIssueOnlySafetySourceWithWork",
- R.xml.config_issue_only_safety_source_with_work,
- "Element issue-only-safety-source invalid",
- "Prohibited attribute titleForWork present"
- ),
- Params(
- "ConfigMixedSafetySourceDuplicateKey",
- R.xml.config_mixed_safety_source_duplicate_key,
- "Element safety-sources-config invalid",
- "Duplicate id id among safety sources"
- ),
- Params(
- "ConfigReferenceInvalid",
- R.xml.config_reference_invalid,
- "Reference title in safety-sources-group.title missing or invalid",
- null
- ),
- Params(
- "ConfigSafetyCenterConfigMissing",
- R.xml.config_safety_center_config_missing,
- "Element safety-center-config missing",
- null
- ),
- Params(
- "ConfigSafetySourcesConfigEmpty",
- R.xml.config_safety_sources_config_empty,
- "Element safety-sources-config invalid",
- "No safety sources groups present"
- ),
- Params(
- "ConfigSafetySourcesConfigMissing",
- R.xml.config_safety_sources_config_missing,
- "Element safety-sources-config missing",
- null
- ),
- Params(
- "ConfigSafetySourcesGroupDuplicateId",
- R.xml.config_safety_sources_group_duplicate_id,
- "Element safety-sources-config invalid",
- "Duplicate id id among safety sources groups"
- ),
- Params(
- "ConfigSafetySourcesGroupEmpty",
- R.xml.config_safety_sources_group_empty,
- "Element safety-sources-group invalid",
- "Safety sources group empty"
- ),
- Params(
- "ConfigSafetySourcesGroupInvalidIcon",
- R.xml.config_safety_sources_group_invalid_icon,
- "Attribute safety-sources-group.statelessIconType invalid",
- null
- ),
- Params(
- "ConfigSafetySourcesGroupNoId",
- R.xml.config_safety_sources_group_no_id,
- "Element safety-sources-group invalid",
- "Required attribute id missing"
- ),
- Params(
- "ConfigSafetySourcesGroupNoTitle",
- R.xml.config_safety_sources_group_no_title,
- "Element safety-sources-group invalid",
- "Required attribute title missing"
- ),
- Params(
- "ConfigStaticSafetySourceDuplicateKey",
- R.xml.config_static_safety_source_duplicate_key,
- "Element safety-sources-config invalid",
- "Duplicate id id among safety sources"
- ),
- Params(
- "ConfigStaticSafetySourceInvalidProfile",
- R.xml.config_static_safety_source_invalid_profile,
- "Attribute static-safety-source.profile invalid",
- null
- ),
- Params(
- "ConfigStaticSafetySourceNoId",
- R.xml.config_static_safety_source_no_id,
- "Element static-safety-source invalid",
- "Required attribute id missing"
- ),
- Params(
- "ConfigStaticSafetySourceNoIntent",
- R.xml.config_static_safety_source_no_intent,
- "Element static-safety-source invalid",
- "Required attribute intentAction missing"
- ),
- Params(
- "ConfigStaticSafetySourceNoProfile",
- R.xml.config_static_safety_source_no_profile,
- "Element static-safety-source invalid",
- "Required attribute profile missing"
- ),
- Params(
- "ConfigStaticSafetySourceNoSummary",
- R.xml.config_static_safety_source_no_summary,
- "Element static-safety-source invalid",
- "Required attribute summary missing"
- ),
- Params(
- "ConfigStaticSafetySourceNoTitle",
- R.xml.config_static_safety_source_no_title,
- "Element static-safety-source invalid",
- "Required attribute title missing"
- ),
- Params(
- "ConfigStaticSafetySourceWithBroadcast",
- R.xml.config_static_safety_source_with_broadcast,
- "Element static-safety-source invalid",
- "Prohibited attribute broadcastReceiverClassName present"
- ),
- Params(
- "ConfigStaticSafetySourceWithDisplay",
- R.xml.config_static_safety_source_with_display,
- "Element static-safety-source invalid",
- "Prohibited attribute initialDisplayState present"
- ),
- Params(
- "ConfigStaticSafetySourceWithLogging",
- R.xml.config_static_safety_source_with_logging,
- "Element static-safety-source invalid",
- "Prohibited attribute allowLogging present"
- ),
- Params(
- "ConfigStaticSafetySourceWithPackage",
- R.xml.config_static_safety_source_with_package,
- "Element static-safety-source invalid",
- "Prohibited attribute packageName present"
- ),
- Params(
- "ConfigStaticSafetySourceWithPrimaryAndWork",
- R.xml.config_static_safety_source_with_primary_and_work,
- "Element static-safety-source invalid",
- "Prohibited attribute titleForWork present"
- ),
- Params(
- "ConfigStaticSafetySourceWithRefresh",
- R.xml.config_static_safety_source_with_refresh,
- "Element static-safety-source invalid",
- "Prohibited attribute allowRefreshOnPageOpen present"
- ),
- Params(
- "ConfigStaticSafetySourceWithSeverity",
- R.xml.config_static_safety_source_with_severity,
- "Element static-safety-source invalid",
- "Prohibited attribute maxSeverityLevel present"
- )
- )
- }
-}
diff --git a/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ConfigValidTest.kt b/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ConfigValidTest.kt
deleted file mode 100644
index a07f3342f..000000000
--- a/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ConfigValidTest.kt
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.safetycenter.config
-
-import android.content.Context
-import androidx.test.core.app.ApplicationProvider.getApplicationContext
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.safetycenter.tests.config.safetycenterconfig.R
-import org.junit.Assert.assertEquals
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@RunWith(AndroidJUnit4::class)
-class ConfigValidTest {
- private val context: Context = getApplicationContext()
-
- @Test
- fun validConfig_matchesExpected() {
- val parser = context.resources.getXml(R.xml.config_valid)
- val expected = SafetyCenterConfig.Builder()
- .addSafetySourcesGroup(SafetySourcesGroup.Builder()
- .setId("dynamic")
- .setTitleResId(R.string.reference)
- .setSummaryResId(R.string.reference)
- .setStatelessIconType(SafetySourcesGroup.STATELESS_ICON_TYPE_PRIVACY)
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_DYNAMIC)
- .setId("dynamic_barebone")
- .setPackageName("package")
- .setTitleResId(R.string.reference)
- .setSummaryResId(R.string.reference)
- .setIntentAction("intent")
- .setProfile(SafetySource.PROFILE_PRIMARY)
- .build())
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_DYNAMIC)
- .setId("dynamic_all_optional")
- .setPackageName("package")
- .setTitleResId(R.string.reference)
- .setTitleForWorkResId(R.string.reference)
- .setSummaryResId(R.string.reference)
- .setIntentAction("intent")
- .setProfile(SafetySource.PROFILE_ALL)
- .setInitialDisplayState(SafetySource.INITIAL_DISPLAY_STATE_DISABLED)
- .setMaxSeverityLevel(300)
- .setSearchTermsResId(R.string.reference)
- .setBroadcastReceiverClassName("broadcast")
- .setAllowLogging(false)
- .setAllowRefreshOnPageOpen(true)
- .build())
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_DYNAMIC)
- .setId("dynamic_hidden")
- .setPackageName("package")
- .setProfile(SafetySource.PROFILE_ALL)
- .setInitialDisplayState(SafetySource.INITIAL_DISPLAY_STATE_HIDDEN)
- .build())
- .build())
- .addSafetySourcesGroup(SafetySourcesGroup.Builder()
- .setId("static")
- .setTitleResId(R.string.reference)
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_STATIC)
- .setId("static_barebone")
- .setTitleResId(R.string.reference)
- .setSummaryResId(R.string.reference)
- .setIntentAction("intent")
- .setProfile(SafetySource.PROFILE_PRIMARY)
- .build())
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_STATIC)
- .setId("static_all_optional")
- .setTitleResId(R.string.reference)
- .setTitleForWorkResId(R.string.reference)
- .setSummaryResId(R.string.reference)
- .setIntentAction("intent")
- .setProfile(SafetySource.PROFILE_ALL)
- .setSearchTermsResId(R.string.reference)
- .build())
- .build())
- .addSafetySourcesGroup(SafetySourcesGroup.Builder()
- .setId("issue_only")
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_ISSUE_ONLY)
- .setId("issue_only_barebone")
- .setPackageName("package")
- .setProfile(SafetySource.PROFILE_PRIMARY)
- .build())
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_ISSUE_ONLY)
- .setId("issue_only_all_optional")
- .setPackageName("package")
- .setProfile(SafetySource.PROFILE_ALL)
- .setBroadcastReceiverClassName("broadcast")
- .setAllowLogging(false)
- .setAllowRefreshOnPageOpen(true)
- .build())
- .build())
- .addSafetySourcesGroup(SafetySourcesGroup.Builder()
- .setId("mixed")
- .setTitleResId(R.string.reference)
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_DYNAMIC)
- .setId("mixed_dynamic_barebone")
- .setPackageName("package")
- .setTitleResId(R.string.reference)
- .setSummaryResId(R.string.reference)
- .setIntentAction("intent")
- .setProfile(SafetySource.PROFILE_PRIMARY)
- .build())
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_ISSUE_ONLY)
- .setId("mixed_issue_only_barebone")
- .setPackageName("package")
- .setProfile(SafetySource.PROFILE_PRIMARY)
- .build())
- .addSafetySource(SafetySource.Builder(SafetySource.SAFETY_SOURCE_TYPE_STATIC)
- .setId("mixed_static_barebone")
- .setTitleResId(R.string.reference)
- .setSummaryResId(R.string.reference)
- .setIntentAction("intent")
- .setProfile(SafetySource.PROFILE_PRIMARY)
- .build())
- .build())
- .build()
- assertEquals(expected, Parser.parseXmlResource(parser))
- }
-}
diff --git a/SafetyCenter/Config/tests/res/values/strings.xml b/SafetyCenter/Config/tests/res/values/strings.xml
deleted file mode 100644
index 8ba7f04a8..000000000
--- a/SafetyCenter/Config/tests/res/values/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2022 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Test reference -->
- <string name="reference" translatable="false">Reference</string>
-</resources>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_all_disabled_no_work.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_all_disabled_no_work.xml
deleted file mode 100644
index b2594c7ab..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_all_disabled_no_work.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="all_profiles"
- initialDisplayState="disabled"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_all_no_work.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_all_no_work.xml
deleted file mode 100644
index e582e0470..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_all_no_work.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="all_profiles"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_disabled_no_summary.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_disabled_no_summary.xml
deleted file mode 100644
index 6d065992c..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_disabled_no_summary.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"
- initialDisplayState="disabled"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_disabled_no_title.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_disabled_no_title.xml
deleted file mode 100644
index 6d535766a..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_disabled_no_title.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"
- initialDisplayState="disabled"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_duplicate_key.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_duplicate_key.xml
deleted file mode 100644
index be7114d61..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_duplicate_key.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id1"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- <safety-sources-group
- id="id2"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_intent.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_intent.xml
deleted file mode 100644
index b30a6d921..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_intent.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- intentAction="intent"
- profile="primary_profile_only"
- initialDisplayState="hidden"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_summary.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_summary.xml
deleted file mode 100644
index c0fd18120..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_summary.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- summary="@string/reference"
- profile="primary_profile_only"
- initialDisplayState="hidden"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_title.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_title.xml
deleted file mode 100644
index 190fcdc87..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_hidden_with_title.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- profile="primary_profile_only"
- initialDisplayState="hidden"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_invalid_display.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_invalid_display.xml
deleted file mode 100644
index 4c1d00a4c..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_invalid_display.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"
- initialDisplayState="invalid"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_invalid_profile.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_invalid_profile.xml
deleted file mode 100644
index 303415b75..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_invalid_profile.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="invalid"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_id.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_id.xml
deleted file mode 100644
index 8ace4ea4c..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_id.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_intent.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_intent.xml
deleted file mode 100644
index 6119e4aca..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_intent.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_package.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_package.xml
deleted file mode 100644
index 2b40602b5..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_package.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_profile.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_profile.xml
deleted file mode 100644
index f54d9400a..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_profile.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_summary.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_summary.xml
deleted file mode 100644
index 0683f163a..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_summary.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_title.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_title.xml
deleted file mode 100644
index 84f90e5d9..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_no_title.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_primary_hidden_with_work.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_primary_hidden_with_work.xml
deleted file mode 100644
index ad7add545..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_primary_hidden_with_work.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- titleForWork="@string/reference"
- profile="primary_profile_only"
- initialDisplayState="hidden"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_primary_with_work.xml b/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_primary_with_work.xml
deleted file mode 100644
index 3ecf80264..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_dynamic_safety_source_primary_with_work.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- titleForWork="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_duplicate_key.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_duplicate_key.xml
deleted file mode 100644
index 9c00d5727..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_duplicate_key.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- packageName="package"
- profile="primary_profile_only"/>
- <issue-only-safety-source
- id="id"
- packageName="package"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_invalid_profile.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_invalid_profile.xml
deleted file mode 100644
index dd85d55a8..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_invalid_profile.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- packageName="package"
- profile="invalid"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_id.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_id.xml
deleted file mode 100644
index d57db8e42..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_id.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- packageName="package"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_package.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_package.xml
deleted file mode 100644
index d68b55740..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_package.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_profile.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_profile.xml
deleted file mode 100644
index 7e7b6ef5f..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_no_profile.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- packageName="package"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_display.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_display.xml
deleted file mode 100644
index 1fab83913..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_display.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- packageName="package"
- profile="primary_profile_only"
- initialDisplayState="disabled"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_intent.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_intent.xml
deleted file mode 100644
index 9a7fa6bb1..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_intent.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- packageName="package"
- profile="primary_profile_only"
- intentAction="intent"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_search.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_search.xml
deleted file mode 100644
index b065a3898..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_search.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- packageName="package"
- profile="primary_profile_only"
- searchTerms="@string/reference"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_summary.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_summary.xml
deleted file mode 100644
index 7d010018b..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_summary.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- packageName="package"
- profile="primary_profile_only"
- summary="@string/reference"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_title.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_title.xml
deleted file mode 100644
index 3b46eeab7..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_title.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- packageName="package"
- profile="primary_profile_only"
- title="@string/reference"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_work.xml b/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_work.xml
deleted file mode 100644
index e50149008..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_issue_only_safety_source_with_work.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id">
- <issue-only-safety-source
- id="id"
- packageName="package"
- profile="all_profiles"
- titleForWork="@string/reference"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_mixed_safety_source_duplicate_key.xml b/SafetyCenter/Config/tests/res/xml/config_mixed_safety_source_duplicate_key.xml
deleted file mode 100644
index e939a9c22..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_mixed_safety_source_duplicate_key.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id1"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- <safety-sources-group
- id="id2"
- title="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_reference_invalid.xml b/SafetyCenter/Config/tests/res/xml/config_reference_invalid.xml
deleted file mode 100644
index 743172994..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_reference_invalid.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="title"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="1"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_safety_center_config_missing.xml b/SafetyCenter/Config/tests/res/xml/config_safety_center_config_missing.xml
deleted file mode 100644
index 475791691..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_safety_center_config_missing.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<other-root>
-</other-root>
diff --git a/SafetyCenter/Config/tests/res/xml/config_safety_sources_config_empty.xml b/SafetyCenter/Config/tests/res/xml/config_safety_sources_config_empty.xml
deleted file mode 100644
index b26ffc008..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_safety_sources_config_empty.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_safety_sources_config_missing.xml b/SafetyCenter/Config/tests/res/xml/config_safety_sources_config_missing.xml
deleted file mode 100644
index 12545759a..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_safety_sources_config_missing.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<safety-center-config>
- <other-internal-config>
- </other-internal-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_duplicate_id.xml b/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_duplicate_id.xml
deleted file mode 100644
index 0ce73371e..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_duplicate_id.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id1"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id2"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_empty.xml b/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_empty.xml
deleted file mode 100644
index a395152f8..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_empty.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_invalid_icon.xml b/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_invalid_icon.xml
deleted file mode 100644
index 42b4c47d6..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_invalid_icon.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference"
- statelessIconType="invalid">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_no_id.xml b/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_no_id.xml
deleted file mode 100644
index eaee6731a..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_no_id.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_no_title.xml b/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_no_title.xml
deleted file mode 100644
index de3ce82b9..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_safety_sources_group_no_title.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- summary="@string/reference">
- <dynamic-safety-source
- id="id"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_duplicate_key.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_duplicate_key.xml
deleted file mode 100644
index 4fe5e1e65..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_duplicate_key.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id1"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- <safety-sources-group
- id="id2"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_invalid_profile.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_invalid_profile.xml
deleted file mode 100644
index 7c135e782..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_invalid_profile.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="invalid"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_id.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_id.xml
deleted file mode 100644
index 7b919343b..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_id.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_intent.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_intent.xml
deleted file mode 100644
index 9e97efbc9..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_intent.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_profile.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_profile.xml
deleted file mode 100644
index 32d23c789..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_profile.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_summary.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_summary.xml
deleted file mode 100644
index fa92f0bd8..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_summary.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_title.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_title.xml
deleted file mode 100644
index 654a486a5..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_no_title.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_broadcast.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_broadcast.xml
deleted file mode 100644
index 090bd5795..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_broadcast.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"
- broadcastReceiverClassName="broadcast"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_display.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_display.xml
deleted file mode 100644
index 69c9ca215..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_display.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"
- initialDisplayState="disabled"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_logging.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_logging.xml
deleted file mode 100644
index 019832ddb..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_logging.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"
- allowLogging="false"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_package.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_package.xml
deleted file mode 100644
index 2a982b4cc..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_package.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"
- packageName="package"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_primary_and_work.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_primary_and_work.xml
deleted file mode 100644
index 296e2bc4a..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_primary_and_work.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- titleForWork="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_refresh.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_refresh.xml
deleted file mode 100644
index 5e46a44c1..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_refresh.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"
- allowRefreshOnPageOpen="true"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_severity.xml b/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_severity.xml
deleted file mode 100644
index a9f5d9b89..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_static_safety_source_with_severity.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="id"
- title="@string/reference"
- summary="@string/reference">
- <static-safety-source
- id="id"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"
- maxSeverityLevel="300"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/SafetyCenter/Config/tests/res/xml/config_valid.xml b/SafetyCenter/Config/tests/res/xml/config_valid.xml
deleted file mode 100644
index 5abba01ac..000000000
--- a/SafetyCenter/Config/tests/res/xml/config_valid.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<safety-center-config>
- <safety-sources-config>
- <safety-sources-group
- id="dynamic"
- title="@string/reference"
- summary="@string/reference"
- statelessIconType="privacy">
- <dynamic-safety-source
- id="dynamic_barebone"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- <dynamic-safety-source
- id="dynamic_all_optional"
- packageName="package"
- title="@string/reference"
- titleForWork="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="all_profiles"
- initialDisplayState="disabled"
- maxSeverityLevel="300"
- searchTerms="@string/reference"
- broadcastReceiverClassName="broadcast"
- allowLogging="false"
- allowRefreshOnPageOpen="true"/>
- <dynamic-safety-source
- id="dynamic_hidden"
- packageName="package"
- profile="all_profiles"
- initialDisplayState="hidden"/>
- </safety-sources-group>
- <safety-sources-group
- id="static"
- title="@string/reference">
- <static-safety-source
- id="static_barebone"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- <static-safety-source
- id="static_all_optional"
- title="@string/reference"
- titleForWork="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="all_profiles"
- searchTerms="@string/reference"/>
- </safety-sources-group>
- <safety-sources-group
- id="issue_only">
- <issue-only-safety-source
- id="issue_only_barebone"
- packageName="package"
- profile="primary_profile_only"/>
- <issue-only-safety-source
- id="issue_only_all_optional"
- packageName="package"
- profile="all_profiles"
- broadcastReceiverClassName="broadcast"
- allowLogging="false"
- allowRefreshOnPageOpen="true"/>
- </safety-sources-group>
- <safety-sources-group
- id="mixed"
- title="@string/reference">
- <dynamic-safety-source
- id="mixed_dynamic_barebone"
- packageName="package"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- <issue-only-safety-source
- id="mixed_issue_only_barebone"
- packageName="package"
- profile="primary_profile_only"/>
- <static-safety-source
- id="mixed_static_barebone"
- title="@string/reference"
- summary="@string/reference"
- intentAction="intent"
- profile="primary_profile_only"/>
- </safety-sources-group>
- </safety-sources-config>
-</safety-center-config>
diff --git a/framework-s/api/system-current.txt b/framework-s/api/system-current.txt
index 913fcad50..8c3550b11 100644
--- a/framework-s/api/system-current.txt
+++ b/framework-s/api/system-current.txt
@@ -393,3 +393,103 @@ package android.safetycenter {
}
+package android.safetycenter.config {
+
+ public final class Parser {
+ method @NonNull public static android.safetycenter.config.SafetyCenterConfig parseXmlResource(@NonNull android.content.res.XmlResourceParser) throws android.safetycenter.config.Parser.ParseException;
+ }
+
+ public static final class Parser.ParseException extends java.lang.Exception {
+ ctor public Parser.ParseException(@NonNull String);
+ ctor public Parser.ParseException(@NonNull String, @NonNull Throwable);
+ }
+
+ public final class SafetyCenterConfig implements android.os.Parcelable {
+ method public int describeContents();
+ method @NonNull public java.util.List<android.safetycenter.config.SafetySourcesGroup> getSafetySourcesGroups();
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.safetycenter.config.SafetyCenterConfig> CREATOR;
+ }
+
+ public static final class SafetyCenterConfig.Builder {
+ ctor public SafetyCenterConfig.Builder();
+ method @NonNull public android.safetycenter.config.SafetyCenterConfig.Builder addSafetySourcesGroup(@NonNull android.safetycenter.config.SafetySourcesGroup);
+ method @NonNull public android.safetycenter.config.SafetyCenterConfig build();
+ }
+
+ public final class SafetySource implements android.os.Parcelable {
+ method public int describeContents();
+ method @Nullable public String getBroadcastReceiverClassName();
+ method @NonNull public String getId();
+ method public int getInitialDisplayState();
+ method @NonNull public String getIntentAction();
+ method public int getMaxSeverityLevel();
+ method @NonNull public String getPackageName();
+ method public int getProfile();
+ method @IdRes public int getSearchTermsResId();
+ method @IdRes public int getSummaryResId();
+ method @IdRes public int getTitleForWorkResId();
+ method @IdRes public int getTitleResId();
+ method public int getType();
+ method public boolean isAllowLogging();
+ method public boolean isAllowRefreshOnPageOpen();
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.safetycenter.config.SafetySource> CREATOR;
+ field public static final int INITIAL_DISPLAY_STATE_DISABLED = 1; // 0x1
+ field public static final int INITIAL_DISPLAY_STATE_ENABLED = 0; // 0x0
+ field public static final int INITIAL_DISPLAY_STATE_HIDDEN = 2; // 0x2
+ field public static final int PROFILE_ALL = 2; // 0x2
+ field public static final int PROFILE_NONE = 0; // 0x0
+ field public static final int PROFILE_PRIMARY = 1; // 0x1
+ field public static final int SAFETY_SOURCE_TYPE_DYNAMIC = 2; // 0x2
+ field public static final int SAFETY_SOURCE_TYPE_ISSUE_ONLY = 3; // 0x3
+ field public static final int SAFETY_SOURCE_TYPE_STATIC = 1; // 0x1
+ }
+
+ public static final class SafetySource.Builder {
+ ctor public SafetySource.Builder(int);
+ method @NonNull public android.safetycenter.config.SafetySource build();
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setAllowLogging(boolean);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setAllowRefreshOnPageOpen(boolean);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setBroadcastReceiverClassName(@Nullable String);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setId(@Nullable String);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setInitialDisplayState(int);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setIntentAction(@Nullable String);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setMaxSeverityLevel(int);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setPackageName(@Nullable String);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setProfile(int);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setSearchTermsResId(@IdRes int);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setSummaryResId(@IdRes int);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setTitleForWorkResId(@IdRes int);
+ method @NonNull public android.safetycenter.config.SafetySource.Builder setTitleResId(@IdRes int);
+ }
+
+ public final class SafetySourcesGroup implements android.os.Parcelable {
+ method public int describeContents();
+ method @NonNull public String getId();
+ method @NonNull public java.util.List<android.safetycenter.config.SafetySource> getSafetySources();
+ method public int getStatelessIconType();
+ method @IdRes public int getSummaryResId();
+ method @IdRes public int getTitleResId();
+ method public int getType();
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.safetycenter.config.SafetySourcesGroup> CREATOR;
+ field public static final int SAFETY_SOURCES_GROUP_TYPE_COLLAPSIBLE = 0; // 0x0
+ field public static final int SAFETY_SOURCES_GROUP_TYPE_HIDDEN = 2; // 0x2
+ field public static final int SAFETY_SOURCES_GROUP_TYPE_RIGID = 1; // 0x1
+ field public static final int STATELESS_ICON_TYPE_NONE = 0; // 0x0
+ field public static final int STATELESS_ICON_TYPE_PRIVACY = 1; // 0x1
+ }
+
+ public static final class SafetySourcesGroup.Builder {
+ ctor public SafetySourcesGroup.Builder();
+ method @NonNull public android.safetycenter.config.SafetySourcesGroup.Builder addSafetySource(@NonNull android.safetycenter.config.SafetySource);
+ method @NonNull public android.safetycenter.config.SafetySourcesGroup build();
+ method @NonNull public android.safetycenter.config.SafetySourcesGroup.Builder setId(@Nullable String);
+ method @NonNull public android.safetycenter.config.SafetySourcesGroup.Builder setStatelessIconType(int);
+ method @NonNull public android.safetycenter.config.SafetySourcesGroup.Builder setSummaryResId(@IdRes int);
+ method @NonNull public android.safetycenter.config.SafetySourcesGroup.Builder setTitleResId(@IdRes int);
+ }
+
+}
+
diff --git a/SafetyCenter/Config/java/com/android/safetycenter/config/BuilderUtils.java b/framework-s/java/android/safetycenter/config/BuilderUtils.java
index 10981733a..b94f9fe54 100644
--- a/SafetyCenter/Config/java/com/android/safetycenter/config/BuilderUtils.java
+++ b/framework-s/java/android/safetycenter/config/BuilderUtils.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.safetycenter.config;
+package android.safetycenter.config;
import android.annotation.IdRes;
import android.annotation.NonNull;
diff --git a/SafetyCenter/Config/java/com/android/safetycenter/config/Parser.java b/framework-s/java/android/safetycenter/config/Parser.java
index 99108839d..0f6c219b2 100644
--- a/SafetyCenter/Config/java/com/android/safetycenter/config/Parser.java
+++ b/framework-s/java/android/safetycenter/config/Parser.java
@@ -14,7 +14,9 @@
* limitations under the License.
*/
-package com.android.safetycenter.config;
+package android.safetycenter.config;
+
+import static android.os.Build.VERSION_CODES.TIRAMISU;
import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
import static org.xmlpull.v1.XmlPullParser.END_TAG;
@@ -27,20 +29,27 @@ import static java.util.Objects.requireNonNull;
import android.annotation.IdRes;
import android.annotation.NonNull;
-import android.annotation.Nullable;
+import android.annotation.SystemApi;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
+import android.safetycenter.config.SafetySource.InitialDisplayState;
+import android.safetycenter.config.SafetySource.Profile;
+import android.safetycenter.config.SafetySource.SafetySourceType;
+import android.safetycenter.config.SafetySourcesGroup.StatelessIconType;
-import com.android.safetycenter.config.SafetySource.InitialDisplayState;
-import com.android.safetycenter.config.SafetySource.Profile;
-import com.android.safetycenter.config.SafetySource.SafetySourceType;
-import com.android.safetycenter.config.SafetySourcesGroup.StatelessIconType;
+import androidx.annotation.RequiresApi;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
-/** Utility class to parse and validate a Safety Center Config */
+/**
+ * Utility class to parse and validate a Safety Center Config
+ *
+ * @hide
+ */
+@SystemApi
+@RequiresApi(TIRAMISU)
public final class Parser {
private Parser() {
}
@@ -97,9 +106,12 @@ public final class Parser {
/**
* Parses and validates the given XML resource into a {@link SafetyCenterConfig} object.
*
+ * <p>It throws a {@link ParseException} if the given XML resource does not comply with the
+ * safety_center_config.xsd schema.
+ *
* @param parser the XML resource parsing interface
*/
- @Nullable
+ @NonNull
public static SafetyCenterConfig parseXmlResource(@NonNull XmlResourceParser parser)
throws ParseException {
requireNonNull(parser);
diff --git a/SafetyCenter/Config/java/com/android/safetycenter/config/SafetyCenterConfig.java b/framework-s/java/android/safetycenter/config/SafetyCenterConfig.java
index 8f8fc78ae..235fa99f8 100644
--- a/SafetyCenter/Config/java/com/android/safetycenter/config/SafetyCenterConfig.java
+++ b/framework-s/java/android/safetycenter/config/SafetyCenterConfig.java
@@ -14,11 +14,18 @@
* limitations under the License.
*/
-package com.android.safetycenter.config;
+package android.safetycenter.config;
+
+import static android.os.Build.VERSION_CODES.TIRAMISU;
import static java.util.Objects.requireNonNull;
import android.annotation.NonNull;
+import android.annotation.SystemApi;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import androidx.annotation.RequiresApi;
import java.util.ArrayList;
import java.util.Collections;
@@ -27,8 +34,14 @@ import java.util.List;
import java.util.Objects;
import java.util.Set;
-/** Data class used to represent the initial configuration and current state of the Safety Center */
-public final class SafetyCenterConfig {
+/**
+ * Data class used to represent the initial configuration of the Safety Center
+ *
+ * @hide
+ */
+@SystemApi
+@RequiresApi(TIRAMISU)
+public final class SafetyCenterConfig implements Parcelable {
@NonNull
private final List<SafetySourcesGroup> mSafetySourcesGroups;
@@ -62,6 +75,34 @@ public final class SafetyCenterConfig {
+ '}';
}
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(@NonNull Parcel dest, int flags) {
+ dest.writeParcelableList(mSafetySourcesGroups, flags);
+ }
+
+ @NonNull
+ public static final Parcelable.Creator<SafetyCenterConfig> CREATOR =
+ new Parcelable.Creator<SafetyCenterConfig>() {
+ @Override
+ public SafetyCenterConfig createFromParcel(Parcel in) {
+ List<SafetySourcesGroup> safetySourcesGroups = new ArrayList<>();
+ in.readParcelableList(safetySourcesGroups,
+ SafetySourcesGroup.class.getClassLoader());
+ return new SafetyCenterConfig(
+ Collections.unmodifiableList(safetySourcesGroups));
+ }
+
+ @Override
+ public SafetyCenterConfig[] newArray(int size) {
+ return new SafetyCenterConfig[size];
+ }
+ };
+
/** Builder class for {@link SafetyCenterConfig}. */
public static final class Builder {
@NonNull
diff --git a/SafetyCenter/Config/java/com/android/safetycenter/config/SafetySource.java b/framework-s/java/android/safetycenter/config/SafetySource.java
index cc46c7930..dce0fac43 100644
--- a/SafetyCenter/Config/java/com/android/safetycenter/config/SafetySource.java
+++ b/framework-s/java/android/safetycenter/config/SafetySource.java
@@ -14,20 +14,33 @@
* limitations under the License.
*/
-package com.android.safetycenter.config;
+package android.safetycenter.config;
+
+import static android.os.Build.VERSION_CODES.TIRAMISU;
import android.annotation.IdRes;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SystemApi;
import android.content.res.Resources;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import androidx.annotation.RequiresApi;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Objects;
-/** Data class used to represent a generic safety source */
-public final class SafetySource {
+/**
+ * Data class used to represent the initial configuration of a safety source
+ *
+ * @hide
+ */
+@SystemApi
+@RequiresApi(TIRAMISU)
+public final class SafetySource implements Parcelable {
/** Static safety source. */
public static final int SAFETY_SOURCE_TYPE_STATIC = 1;
@@ -248,7 +261,6 @@ public final class SafetySource {
}
/** Returns the maximum severity level of this safety source. */
- @Profile
public int getMaxSeverityLevel() {
if (mType == SAFETY_SOURCE_TYPE_STATIC) {
throw new UnsupportedOperationException(
@@ -307,6 +319,7 @@ public final class SafetySource {
&& Objects.equals(mId, that.mId)
&& Objects.equals(mPackageName, that.mPackageName)
&& mTitleResId == that.mTitleResId
+ && mTitleForWorkResId == that.mTitleForWorkResId
&& mSummaryResId == that.mSummaryResId
&& Objects.equals(mIntentAction, that.mIntentAction)
&& mProfile == that.mProfile
@@ -320,9 +333,10 @@ public final class SafetySource {
@Override
public int hashCode() {
- return Objects.hash(mType, mId, mPackageName, mTitleResId, mSummaryResId, mIntentAction,
- mProfile, mInitialDisplayState, mMaxSeverityLevel, mSearchTermsResId,
- mBroadcastReceiverClassName, mAllowLogging, mAllowRefreshOnPageOpen);
+ return Objects.hash(mType, mId, mPackageName, mTitleResId, mTitleForWorkResId,
+ mSummaryResId, mIntentAction, mProfile, mInitialDisplayState, mMaxSeverityLevel,
+ mSearchTermsResId, mBroadcastReceiverClassName, mAllowLogging,
+ mAllowRefreshOnPageOpen);
}
@Override
@@ -332,6 +346,7 @@ public final class SafetySource {
+ ", mId='" + mId + '\''
+ ", mPackageName='" + mPackageName + '\''
+ ", mTitleResId=" + mTitleResId
+ + ", mTitleForWorkResId=" + mTitleForWorkResId
+ ", mSummaryResId=" + mSummaryResId
+ ", mIntentAction='" + mIntentAction + '\''
+ ", mProfile=" + mProfile
@@ -344,6 +359,60 @@ public final class SafetySource {
+ '}';
}
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(@NonNull Parcel dest, int flags) {
+ dest.writeInt(mType);
+ dest.writeString(mId);
+ dest.writeString(mPackageName);
+ dest.writeInt(mTitleResId);
+ dest.writeInt(mTitleForWorkResId);
+ dest.writeInt(mSummaryResId);
+ dest.writeString(mIntentAction);
+ dest.writeInt(mProfile);
+ dest.writeInt(mInitialDisplayState);
+ dest.writeInt(mMaxSeverityLevel);
+ dest.writeInt(mSearchTermsResId);
+ dest.writeString(mBroadcastReceiverClassName);
+ dest.writeBoolean(mAllowLogging);
+ dest.writeBoolean(mAllowRefreshOnPageOpen);
+ }
+
+ @NonNull
+ public static final Parcelable.Creator<SafetySource> CREATOR =
+ new Parcelable.Creator<SafetySource>() {
+ @Override
+ public SafetySource createFromParcel(Parcel in) {
+ int type = in.readInt();
+ String id = in.readString();
+ String packageName = in.readString();
+ int titleResId = in.readInt();
+ int titleForWorkResId = in.readInt();
+ int summaryResId = in.readInt();
+ String intentAction = in.readString();
+ int profile = in.readInt();
+ int initialDisplayState = in.readInt();
+ int maxSeverityLevel = in.readInt();
+ int searchTermsResId = in.readInt();
+ String broadcastReceiverClassName = in.readString();
+ boolean allowLogging = in.readBoolean();
+ boolean allowRefreshOnPageOpen = in.readBoolean();
+ return new SafetySource(type, id, packageName, titleResId, titleForWorkResId,
+ summaryResId, intentAction, profile, initialDisplayState,
+ maxSeverityLevel, searchTermsResId, broadcastReceiverClassName,
+ allowLogging, allowRefreshOnPageOpen);
+ }
+
+ @Override
+ public SafetySource[] newArray(int size) {
+ return new SafetySource[size];
+ }
+ };
+
/** Builder class for {@link SafetySource}. */
public static final class Builder {
@SafetySourceType
diff --git a/SafetyCenter/Config/java/com/android/safetycenter/config/SafetySourcesGroup.java b/framework-s/java/android/safetycenter/config/SafetySourcesGroup.java
index ee6b391ea..0e4f11d7c 100644
--- a/SafetyCenter/Config/java/com/android/safetycenter/config/SafetySourcesGroup.java
+++ b/framework-s/java/android/safetycenter/config/SafetySourcesGroup.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.safetycenter.config;
+package android.safetycenter.config;
-import static com.android.safetycenter.config.SafetySource.SAFETY_SOURCE_TYPE_ISSUE_ONLY;
+import static android.os.Build.VERSION_CODES.TIRAMISU;
import static java.util.Objects.requireNonNull;
@@ -24,7 +24,12 @@ import android.annotation.IdRes;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SystemApi;
import android.content.res.Resources;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import androidx.annotation.RequiresApi;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -33,8 +38,14 @@ import java.util.Collections;
import java.util.List;
import java.util.Objects;
-/** Data class used to represent a group of mixed safety sources */
-public final class SafetySourcesGroup {
+/**
+ * Data class used to represent the initial configuration of a group of safety sources
+ *
+ * @hide
+ */
+@SystemApi
+@RequiresApi(TIRAMISU)
+public final class SafetySourcesGroup implements Parcelable {
/**
* Indicates that the safety sources group should be displayed as a collapsible group with an
@@ -182,6 +193,41 @@ public final class SafetySourcesGroup {
+ '}';
}
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(@NonNull Parcel dest, int flags) {
+ dest.writeString(mId);
+ dest.writeInt(mTitleResId);
+ dest.writeInt(mSummaryResId);
+ dest.writeInt(mStatelessIconType);
+ dest.writeParcelableList(mSafetySources, flags);
+ }
+
+ @NonNull
+ public static final Parcelable.Creator<SafetySourcesGroup> CREATOR =
+ new Parcelable.Creator<SafetySourcesGroup>() {
+ @Override
+ public SafetySourcesGroup createFromParcel(Parcel in) {
+ String id = in.readString();
+ int titleResId = in.readInt();
+ int summaryResId = in.readInt();
+ int statelessIconType = in.readInt();
+ List<SafetySource> safetySources = new ArrayList<>();
+ in.readParcelableList(safetySources, SafetySource.class.getClassLoader());
+ return new SafetySourcesGroup(id, titleResId, summaryResId, statelessIconType,
+ Collections.unmodifiableList(safetySources));
+ }
+
+ @Override
+ public SafetySourcesGroup[] newArray(int size) {
+ return new SafetySourcesGroup[size];
+ }
+ };
+
/** Builder class for {@link SafetySourcesGroup}. */
public static final class Builder {
@Nullable
@@ -248,7 +294,7 @@ public final class SafetySourcesGroup {
int safetySourcesSize = mSafetySources.size();
for (int i = 0; i < safetySourcesSize; i++) {
int type = mSafetySources.get(i).getType();
- if (type != SAFETY_SOURCE_TYPE_ISSUE_ONLY) {
+ if (type != SafetySource.SAFETY_SOURCE_TYPE_ISSUE_ONLY) {
titleRequired = true;
break;
}
diff --git a/service/Android.bp b/service/Android.bp
index fcb7f6739..b55992108 100644
--- a/service/Android.bp
+++ b/service/Android.bp
@@ -104,7 +104,6 @@ java_sdk_library {
"kotlin-stdlib",
"modules-utils-backgroundthread",
"modules-utils-os",
- "safety-center-config",
"safety-center-resources-lib",
"service-permission-shared",
],
diff --git a/service/java/com/android/safetycenter/SafetyCenterConfigReader.java b/service/java/com/android/safetycenter/SafetyCenterConfigReader.java
index 4fc4d338f..df695a0d6 100644
--- a/service/java/com/android/safetycenter/SafetyCenterConfigReader.java
+++ b/service/java/com/android/safetycenter/SafetyCenterConfigReader.java
@@ -24,12 +24,12 @@ import android.annotation.StringRes;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
+import android.safetycenter.config.Parser;
+import android.safetycenter.config.SafetyCenterConfig;
import android.util.Log;
import androidx.annotation.RequiresApi;
-import com.android.safetycenter.config.Parser;
-import com.android.safetycenter.config.SafetyCenterConfig;
import com.android.safetycenter.resources.SafetyCenterResourcesContext;
/**
diff --git a/service/java/com/android/safetycenter/SafetyCenterDataTracker.java b/service/java/com/android/safetycenter/SafetyCenterDataTracker.java
index beffd9d08..f54cc2b4e 100644
--- a/service/java/com/android/safetycenter/SafetyCenterDataTracker.java
+++ b/service/java/com/android/safetycenter/SafetyCenterDataTracker.java
@@ -39,14 +39,13 @@ import android.safetycenter.SafetyCenterStatus;
import android.safetycenter.SafetySourceData;
import android.safetycenter.SafetySourceIssue;
import android.safetycenter.SafetySourceStatus;
+import android.safetycenter.config.SafetyCenterConfig;
+import android.safetycenter.config.SafetySource;
+import android.safetycenter.config.SafetySourcesGroup;
import android.util.Log;
import androidx.annotation.RequiresApi;
-import com.android.safetycenter.config.SafetyCenterConfig;
-import com.android.safetycenter.config.SafetySource;
-import com.android.safetycenter.config.SafetySourcesGroup;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
diff --git a/service/java/com/android/safetycenter/SafetyCenterRefreshManager.java b/service/java/com/android/safetycenter/SafetyCenterRefreshManager.java
index ab89c9167..ff6085a96 100644
--- a/service/java/com/android/safetycenter/SafetyCenterRefreshManager.java
+++ b/service/java/com/android/safetycenter/SafetyCenterRefreshManager.java
@@ -27,8 +27,7 @@ import static android.safetycenter.SafetyCenterManager.EXTRA_REFRESH_REQUEST_TYP
import static android.safetycenter.SafetyCenterManager.EXTRA_REFRESH_SAFETY_SOURCES_REQUEST_TYPE;
import static android.safetycenter.SafetyCenterManager.REFRESH_REASON_PAGE_OPEN;
import static android.safetycenter.SafetyCenterManager.REFRESH_REASON_RESCAN_BUTTON_CLICK;
-
-import static com.android.safetycenter.config.SafetySource.SAFETY_SOURCE_TYPE_STATIC;
+import static android.safetycenter.config.SafetySource.SAFETY_SOURCE_TYPE_STATIC;
import android.annotation.NonNull;
import android.app.BroadcastOptions;
@@ -37,13 +36,12 @@ import android.content.Context;
import android.content.Intent;
import android.os.UserHandle;
import android.safetycenter.SafetyCenterManager.RefreshReason;
+import android.safetycenter.config.SafetyCenterConfig;
+import android.safetycenter.config.SafetySource;
import android.util.Log;
import androidx.annotation.RequiresApi;
-import com.android.safetycenter.config.SafetyCenterConfig;
-import com.android.safetycenter.config.SafetySource;
-
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;