diff options
author | 2023-08-16 01:08:00 +0000 | |
---|---|---|
committer | 2023-08-16 01:08:00 +0000 | |
commit | cbc0ac9a69d8d480f9cae67df2cea5d35e7a021d (patch) | |
tree | 9b803c81feb58b242c79958df201a37a499a2092 | |
parent | 58e22c7a8b481240107babcda8f8134e194c56be (diff) | |
parent | 9fe140c90726b7a41e4161e7da3b0ee6edc02196 (diff) |
Don't show green dismissed issues. am: 9fe140c907
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Permission/+/24404225
Change-Id: I1dc115c0ba3690dbaebb5d38c0c36c7252343370
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
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) |