summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/SafetyCenterUiData.kt8
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetycenter/ui/model/SafetyCenterUiDataTest.kt48
-rw-r--r--tests/functional/safetycenter/subpages/src/android/safetycenter/functional/ui/SafetyCenterSubpagesTest.kt18
3 files changed, 72 insertions, 2 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/SafetyCenterUiData.kt b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/SafetyCenterUiData.kt
index 39241ff9a..239f9a377 100644
--- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/SafetyCenterUiData.kt
+++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/SafetyCenterUiData.kt
@@ -21,6 +21,7 @@ import android.safetycenter.SafetyCenterData
import android.safetycenter.SafetyCenterEntryGroup
import android.safetycenter.SafetyCenterEntryOrGroup
import android.safetycenter.SafetyCenterIssue
+import android.safetycenter.SafetyCenterIssue.ISSUE_SEVERITY_LEVEL_OK
import androidx.annotation.RequiresApi
import com.android.safetycenter.internaldata.SafetyCenterBundles.ISSUES_TO_GROUPS_BUNDLE_KEY
@@ -51,7 +52,7 @@ data class SafetyCenterUiData(
*/
@RequiresApi(UPSIDE_DOWN_CAKE)
fun getMatchingDismissedIssues(groupId: String): List<SafetyCenterIssue> =
- selectMatchingIssuesForGroup(groupId, safetyCenterData.dismissedIssues)
+ selectMatchingIssuesForGroup(groupId, safetyCenterData.visibleDismissedIssues())
@RequiresApi(UPSIDE_DOWN_CAKE)
private fun selectMatchingIssuesForGroup(
@@ -68,4 +69,9 @@ data class SafetyCenterUiData(
if (mappingExists) matchesInMapping else matchesByDefault
}
}
+
+ /** Returns the [SafetyCenterData.getDismissedIssues] that are meant to be visible in the UI. */
+ @RequiresApi(UPSIDE_DOWN_CAKE)
+ fun SafetyCenterData.visibleDismissedIssues() =
+ dismissedIssues.filter { it.severityLevel > ISSUE_SEVERITY_LEVEL_OK }
}
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetycenter/ui/model/SafetyCenterUiDataTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetycenter/ui/model/SafetyCenterUiDataTest.kt
index 34ea6fcf0..ca0392716 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetycenter/ui/model/SafetyCenterUiDataTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetycenter/ui/model/SafetyCenterUiDataTest.kt
@@ -22,6 +22,9 @@ import android.safetycenter.SafetyCenterData
import android.safetycenter.SafetyCenterEntryGroup
import android.safetycenter.SafetyCenterEntryOrGroup
import android.safetycenter.SafetyCenterIssue
+import android.safetycenter.SafetyCenterIssue.ISSUE_SEVERITY_LEVEL_CRITICAL_WARNING
+import android.safetycenter.SafetyCenterIssue.ISSUE_SEVERITY_LEVEL_OK
+import android.safetycenter.SafetyCenterIssue.ISSUE_SEVERITY_LEVEL_RECOMMENDATION
import android.safetycenter.SafetyCenterStatus
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SdkSuppress
@@ -209,6 +212,44 @@ class SafetyCenterUiDataTest {
assertThat(result).isEmpty()
}
+ @Test
+ fun getMatchingDismissedIssues_doesntReturnGreenIssues() {
+ val greenDismissedIssue =
+ createSafetyCenterIssue(
+ "id1",
+ MATCHING_GROUP_ID,
+ severityLevel = ISSUE_SEVERITY_LEVEL_OK
+ )
+ val yellowDismissedIssue =
+ createSafetyCenterIssue(
+ "id2",
+ MATCHING_GROUP_ID,
+ severityLevel = ISSUE_SEVERITY_LEVEL_RECOMMENDATION
+ )
+ val redDismissedIssue =
+ createSafetyCenterIssue(
+ "id3",
+ MATCHING_GROUP_ID,
+ severityLevel = ISSUE_SEVERITY_LEVEL_CRITICAL_WARNING
+ )
+ val nonMatchingDismissedIssue = createSafetyCenterIssue("id4", NON_MATCHING_GROUP_ID)
+ val safetyCenterData =
+ createSafetyCenterData(
+ dismissedIssues =
+ listOf(
+ redDismissedIssue,
+ yellowDismissedIssue,
+ greenDismissedIssue,
+ nonMatchingDismissedIssue
+ ),
+ )
+
+ val result =
+ SafetyCenterUiData(safetyCenterData).getMatchingDismissedIssues(MATCHING_GROUP_ID)
+
+ assertThat(result).containsExactly(redDismissedIssue, yellowDismissedIssue).inOrder()
+ }
+
private companion object {
const val MATCHING_GROUP_ID = "matching_group_id"
const val NON_MATCHING_GROUP_ID = "non_matching_group_id"
@@ -238,8 +279,13 @@ class SafetyCenterUiDataTest {
fun createSafetyCenterEntryGroup(groupId: String) =
SafetyCenterEntryGroup.Builder(groupId, "group title").build()
- fun createSafetyCenterIssue(issueId: String, groupId: String) =
+ fun createSafetyCenterIssue(
+ issueId: String,
+ groupId: String,
+ severityLevel: Int = ISSUE_SEVERITY_LEVEL_RECOMMENDATION
+ ) =
SafetyCenterIssue.Builder(issueId, "issue title", "issue summary")
+ .setSeverityLevel(severityLevel)
.setGroupId(groupId)
.build()
diff --git a/tests/functional/safetycenter/subpages/src/android/safetycenter/functional/ui/SafetyCenterSubpagesTest.kt b/tests/functional/safetycenter/subpages/src/android/safetycenter/functional/ui/SafetyCenterSubpagesTest.kt
index 4731f99b6..236beb34e 100644
--- a/tests/functional/safetycenter/subpages/src/android/safetycenter/functional/ui/SafetyCenterSubpagesTest.kt
+++ b/tests/functional/safetycenter/subpages/src/android/safetycenter/functional/ui/SafetyCenterSubpagesTest.kt
@@ -788,6 +788,24 @@ class SafetyCenterSubpagesTest {
}
@Test
+ fun dismissedIssuesCard_doesntShowGreenCards() {
+ safetyCenterTestHelper.setConfig(safetyCenterTestConfigs.singleSourceConfig)
+ val (sourcesGroup, issue) =
+ prepareSingleSourceGroupWithIssue(
+ safetySourceTestData.informationWithIssueWithAttributionTitle
+ )
+ val safetyCenterIssueId = SafetyCenterTestData.issueId(SINGLE_SOURCE_ID, issue.id)
+ safetyCenterTestHelper.dismissSafetyCenterIssue(safetyCenterIssueId)
+
+ context.launchSafetyCenterActivity {
+ openPageAndExit(context.getString(sourcesGroup.titleResId)) {
+ waitAllTextNotDisplayed("Dismissed alerts")
+ waitSourceIssueNotDisplayed(issue)
+ }
+ }
+ }
+
+ @Test
fun moreIssuesCard_expandWithDismissedIssues_showsAdditionalCards() {
safetyCenterTestHelper.setConfig(safetyCenterTestConfigs.multipleSourcesInSingleGroupConfig)