From 7d6e64b1c978424d001f6238d9e355d7f78b6561 Mon Sep 17 00:00:00 2001 From: mrenouf Date: Wed, 20 Dec 2023 15:21:24 -0500 Subject: 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 --- .../android/intentresolver/v2/data/repository/UserRepository.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'java/src') 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> + val users: Flow> /** * 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> = - usersWithState.map { map -> map.mapValues { it.value.user } }.distinctUntilChanged() + override val users: Flow> = usersWithState.map { userStateMap -> + userStateMap.map { it.value.user }.associateBy { it.role } + }.distinctUntilChanged() private val availability: Flow> = usersWithState.map { map -> map.mapValues { it.value.available } }.distinctUntilChanged() -- cgit v1.2.3-59-g8ed1b