summaryrefslogtreecommitdiff
path: root/PermissionController/src/com/android/permissioncontroller/safetycenter
diff options
context:
space:
mode:
authorYuri Ufimtsev <yufimtsev@google.com>2023-03-13 11:34:19 +0000
committerYuri Ufimtsev <yufimtsev@google.com>2023-03-14 11:07:55 +0000
commit1f0442f8cef40854027c2ccc1cad5f36e20a436a (patch)
treed6dc6b4d64abba3fa59f11a91f05bc9573d65ab4 /PermissionController/src/com/android/permissioncontroller/safetycenter
parent5d17f49a34f589e273cecab94e7a8d647f49c3d2 (diff)
downloadPermission-1f0442f8cef40854027c2ccc1cad5f36e20a436a.tar.gz
Account for Dismissed issues when calculating resolved Issues
Test: atest SafetyCenterFunctionalTestCases Fixes: 273215424 Change-Id: I4a24ceb5d6910e256dac7720c845f52341ee74e5
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/safetycenter')
-rw-r--r--PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/LiveSafetyCenterViewModel.kt16
1 files changed, 13 insertions, 3 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/LiveSafetyCenterViewModel.kt b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/LiveSafetyCenterViewModel.kt
index c56214cbb..65a7fced0 100644
--- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/LiveSafetyCenterViewModel.kt
+++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/LiveSafetyCenterViewModel.kt
@@ -37,6 +37,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Transformations
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
+import com.android.modules.utils.build.SdkLevel
import com.android.permissioncontroller.safetycenter.ui.InteractionLogger
import com.android.permissioncontroller.safetycenter.ui.NavigationSource
import com.android.safetycenter.internaldata.SafetyCenterIds
@@ -88,7 +89,7 @@ class LiveSafetyCenterViewModel(app: Application) : SafetyCenterViewModel(app) {
private val safetyCenterManager = app.getSystemService(SafetyCenterManager::class.java)!!
override fun getCurrentSafetyCenterDataAsUiData(): SafetyCenterUiData =
- SafetyCenterUiData(safetyCenterManager.safetyCenterData)
+ SafetyCenterUiData(safetyCenterManager.safetyCenterData)
override fun dismissIssue(issue: SafetyCenterIssue) {
safetyCenterManager.dismissSafetyCenterIssue(issue.id)
@@ -306,7 +307,7 @@ class LiveSafetyCenterViewModel(app: Application) : SafetyCenterViewModel(app) {
/** Returns inflight issues pending resolution */
private fun SafetyCenterData.getInFlightIssues(): Map<IssueId, ActionId> =
- issues
+ allResolvableIssues
.map { issue ->
issue.actions
// UX requirements require skipping resolution UI for issues that do not have a
@@ -320,7 +321,16 @@ private fun SafetyCenterData.getInFlightIssues(): Map<IssueId, ActionId> =
private fun SafetyCenterData.isScanning() =
status.refreshStatus == SafetyCenterStatus.REFRESH_STATUS_FULL_RESCAN_IN_PROGRESS
-private fun SafetyCenterData.buildIssueIdSet(): Set<IssueId> = issues.map { it.id }.toSet()
+private fun SafetyCenterData.buildIssueIdSet(): Set<IssueId> =
+ allResolvableIssues.map { it.id }.toSet()
+
+private val SafetyCenterData.allResolvableIssues: Sequence<SafetyCenterIssue>
+ get() =
+ if (SdkLevel.isAtLeastU()) {
+ issues.asSequence() + dismissedIssues.asSequence()
+ } else {
+ issues.asSequence()
+ }
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
class LiveSafetyCenterViewModelFactory(private val app: Application) : ViewModelProvider.Factory {