summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-02-06 18:31:26 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-02-06 18:31:26 +0000
commit2c2060e60afffcb3f565b6724178bdc8ab93bc67 (patch)
tree50d339a90aeb591c8e14a26504c82d017f155630 /java/src
parent7cba2e404f593df8eecfde11c765ecdaa2726a00 (diff)
parentb386cca4830e69919ffff5a8e506b84b0debd579 (diff)
Merge "Fix duplicated User values when availability changes" into main
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/v2/data/repository/UserRepository.kt5
1 files changed, 4 insertions, 1 deletions
diff --git a/java/src/com/android/intentresolver/v2/data/repository/UserRepository.kt b/java/src/com/android/intentresolver/v2/data/repository/UserRepository.kt
index 91ad6409..b57609e5 100644
--- a/java/src/com/android/intentresolver/v2/data/repository/UserRepository.kt
+++ b/java/src/com/android/intentresolver/v2/data/repository/UserRepository.kt
@@ -158,11 +158,14 @@ constructor(
}
}
+ private fun List<UserWithState>.update(handle: UserHandle, user: UserWithState) =
+ filter { it.user.id != handle.identifier } + user
+
private fun handleAvailability(event: UserEvent, current: UserStates): UserStates {
val userEntry =
current.firstOrNull { it.user.id == event.user.identifier }
?: throw UserStateException("User was not present in the map", event)
- return current + userEntry.copy(available = !event.quietMode)
+ return current.update(event.user, userEntry.copy(available = !event.quietMode))
}
private fun handleProfileRemoved(event: UserEvent, current: UserStates): UserStates {