diff options
author | 2024-02-06 18:31:26 +0000 | |
---|---|---|
committer | 2024-02-06 18:31:26 +0000 | |
commit | 2c2060e60afffcb3f565b6724178bdc8ab93bc67 (patch) | |
tree | 50d339a90aeb591c8e14a26504c82d017f155630 /java/src | |
parent | 7cba2e404f593df8eecfde11c765ecdaa2726a00 (diff) | |
parent | b386cca4830e69919ffff5a8e506b84b0debd579 (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.kt | 5 |
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 { |