summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author mrenouf <mrenouf@google.com> 2023-12-20 15:21:24 -0500
committer mrenouf <mrenouf@google.com> 2023-12-20 15:21:34 -0500
commit7d6e64b1c978424d001f6238d9e355d7f78b6561 (patch)
tree09dd5977813f5f7d90bc0c12b705760d20282399 /java/src
parent9f23487948c6f613a780d49f6b00df507fb7a1cc (diff)
Provide Users map keyed by role instead of UserHandle
Provides this map keyed by role since callers should not be referencing a specific UserHandle. Bug: 309960444 Test: atest UserRepositoryImplTest Change-Id: Ic5f2007b06aaaaea627046b5f0a0b16f47e58e52
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/v2/data/repository/UserRepository.kt8
1 files changed, 5 insertions, 3 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 dc809b46..cbf89fe8 100644
--- a/java/src/com/android/intentresolver/v2/data/repository/UserRepository.kt
+++ b/java/src/com/android/intentresolver/v2/data/repository/UserRepository.kt
@@ -21,6 +21,7 @@ import com.android.intentresolver.inject.Main
import com.android.intentresolver.inject.ProfileParent
import com.android.intentresolver.v2.data.broadcastFlow
import com.android.intentresolver.v2.data.model.User
+import com.android.intentresolver.v2.data.model.User.Role
import com.android.intentresolver.v2.data.repository.UserRepositoryImpl.UserEvent
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject
@@ -42,7 +43,7 @@ interface UserRepository {
* A [Flow] user profile groups. Each map contains the context user along with all members of
* the profile group. This includes the (Full) parent user, if the context user is a profile.
*/
- val users: Flow<Map<UserHandle, User>>
+ val users: Flow<Map<Role, User>>
/**
* A [Flow] of availability. Only profile users may become unavailable.
@@ -140,8 +141,9 @@ constructor(
.stateIn(scope, SharingStarted.Eagerly, emptyMap())
.filterNot { it.isEmpty() }
- override val users: Flow<Map<UserHandle, User>> =
- usersWithState.map { map -> map.mapValues { it.value.user } }.distinctUntilChanged()
+ override val users: Flow<Map<Role, User>> = usersWithState.map { userStateMap ->
+ userStateMap.map { it.value.user }.associateBy { it.role }
+ }.distinctUntilChanged()
private val availability: Flow<Map<UserHandle, Boolean>> =
usersWithState.map { map -> map.mapValues { it.value.available } }.distinctUntilChanged()