diff options
author | Yuri Ufimtsev <yufimtsev@google.com> | 2023-03-13 11:34:19 +0000 |
---|---|---|
committer | Yuri Ufimtsev <yufimtsev@google.com> | 2023-03-14 11:07:55 +0000 |
commit | 1f0442f8cef40854027c2ccc1cad5f36e20a436a (patch) | |
tree | d6dc6b4d64abba3fa59f11a91f05bc9573d65ab4 /PermissionController/src/com/android/permissioncontroller/safetycenter | |
parent | 5d17f49a34f589e273cecab94e7a8d647f49c3d2 (diff) | |
download | Permission-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.kt | 16 |
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 { |