Skip to content

Commit d2f9f7f

Browse files
committed
Merge branch 'develop' into fix/keyboard-navigation-conversations
2 parents 95024a2 + 9341b52 commit d2f9f7f

8 files changed

Lines changed: 38 additions & 28 deletions

File tree

app/src/main/kotlin/com/wire/android/di/accountScoped/UserModule.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import com.wire.kalium.logic.feature.publicuser.GetAllContactsUseCase
3838
import com.wire.kalium.logic.feature.publicuser.GetKnownUserUseCase
3939
import com.wire.kalium.logic.feature.publicuser.RefreshUsersWithoutMetadataUseCase
4040
import com.wire.kalium.logic.feature.user.DeleteAccountUseCase
41+
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
4142
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
4243
import com.wire.kalium.logic.feature.user.GetUserInfoUseCase
4344
import com.wire.kalium.logic.feature.user.IsPasswordRequiredUseCase
@@ -202,6 +203,11 @@ class UserModule {
202203
fun provideGetSelfUseCase(userScope: UserScope): GetSelfUserUseCase =
203204
userScope.getSelfUser
204205

206+
@ViewModelScoped
207+
@Provides
208+
fun provideGetSelfTeamIdUseCase(userScope: UserScope): GetSelfTeamIdUseCase =
209+
userScope.getSelfTeamId
210+
205211
@ViewModelScoped
206212
@Provides
207213
fun provideObserveSelfUseCase(userScope: UserScope): ObserveSelfUserUseCase =

app/src/main/kotlin/com/wire/android/ui/home/conversations/usecase/GetConversationsFromSearchUseCase.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import com.wire.kalium.logic.data.conversation.ConversationQueryConfig
3535
import com.wire.kalium.logic.feature.conversation.GetPaginatedFlowOfConversationDetailsWithEventsBySearchQueryUseCase
3636
import com.wire.kalium.logic.feature.conversation.folder.GetFavoriteFolderUseCase
3737
import com.wire.kalium.logic.feature.conversation.folder.ObserveConversationsFromFolderUseCase
38-
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
38+
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
3939
import kotlinx.coroutines.flow.Flow
4040
import kotlinx.coroutines.flow.flowOf
4141
import kotlinx.coroutines.flow.flowOn
@@ -48,7 +48,7 @@ class GetConversationsFromSearchUseCase @Inject constructor(
4848
private val observeConversationsFromFromFolder: ObserveConversationsFromFolderUseCase,
4949
private val userTypeMapper: UserTypeMapper,
5050
private val dispatchers: DispatcherProvider,
51-
private val getSelfUser: GetSelfUserUseCase,
51+
private val getSelfTeamId: GetSelfTeamIdUseCase,
5252
private val uiTextResolver: UiTextResolver,
5353
) {
5454
@Suppress("LongParameterList")
@@ -61,6 +61,7 @@ class GetConversationsFromSearchUseCase @Inject constructor(
6161
playingAudioMessage: PlayingAudioMessage = PlayingAudioMessage.None,
6262
useStrictMlsFilter: Boolean,
6363
): Flow<PagingData<ConversationItem>> {
64+
val selfUserTeamId = getSelfTeamId()
6465
val pagingConfig = PagingConfig(
6566
pageSize = PAGE_SIZE,
6667
prefetchDistance = PREFETCH_DISTANCE,
@@ -104,7 +105,7 @@ class GetConversationsFromSearchUseCase @Inject constructor(
104105
userTypeMapper = userTypeMapper,
105106
uiTextResolver = uiTextResolver,
106107
searchQuery = searchQuery,
107-
selfUserTeamId = getSelfUser()?.teamId,
108+
selfUserTeamId = selfUserTeamId,
108109
playingAudioMessage = playingAudioMessage
109110
)
110111
}

app/src/main/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModel.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ import com.wire.kalium.logic.feature.conversation.RefreshConversationsWithoutMet
5555
import com.wire.kalium.logic.feature.legalhold.LegalHoldStateForSelfUser
5656
import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserUseCase
5757
import com.wire.kalium.logic.feature.publicuser.RefreshUsersWithoutMetadataUseCase
58-
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
58+
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
5959
import dagger.assisted.Assisted
6060
import dagger.assisted.AssistedFactory
6161
import dagger.assisted.AssistedInject
@@ -110,7 +110,7 @@ class ConversationListViewModelImpl @AssistedInject constructor(
110110
private val audioMessagePlayer: ConversationAudioMessagePlayer,
111111
@CurrentAccount val currentAccount: UserId,
112112
private val userTypeMapper: UserTypeMapper,
113-
private val getSelfUser: GetSelfUserUseCase,
113+
private val getSelfTeamId: GetSelfTeamIdUseCase,
114114
private val uiTextResolver: UiTextResolver,
115115
) : ConversationListViewModel, ViewModel() {
116116

@@ -214,6 +214,7 @@ class ConversationListViewModelImpl @AssistedInject constructor(
214214

215215
private fun observeNonPaginatedSearchConversationList() {
216216
viewModelScope.launch {
217+
val selfTeamId = getSelfTeamId()
217218
searchQueryFlow
218219
.debounce { if (it.isEmpty()) 0L else DEFAULT_SEARCH_QUERY_DEBOUNCE }
219220
.onStart { emit("") }
@@ -232,7 +233,7 @@ class ConversationListViewModelImpl @AssistedInject constructor(
232233
userTypeMapper = userTypeMapper,
233234
uiTextResolver = uiTextResolver,
234235
searchQuery = searchQuery,
235-
selfUserTeamId = getSelfUser()?.teamId,
236+
selfUserTeamId = selfTeamId,
236237
playingAudioMessage = playingAudioMessage
237238
).hideIndicatorForSelfUserUnderLegalHold(isSelfUserUnderLegalHold)
238239
} to searchQuery

app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileViewModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserU
5656
import com.wire.kalium.logic.feature.personaltoteamaccount.CanMigrateFromPersonalToTeamUseCase
5757
import com.wire.kalium.logic.feature.server.GetTeamUrlUseCase
5858
import com.wire.kalium.logic.feature.team.SyncSelfTeamInfoUseCase
59+
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
5960
import com.wire.kalium.logic.feature.user.IsReadOnlyAccountUseCase
60-
import com.wire.kalium.logic.feature.user.ObserveSelfUserUseCase
6161
import com.wire.kalium.logic.feature.user.ObserveSelfUserWithTeamUseCase
6262
import com.wire.kalium.logic.feature.user.ObserveValidAccountsUseCase
6363
import com.wire.kalium.logic.feature.user.UpdateSelfAvailabilityStatusUseCase
@@ -83,7 +83,7 @@ import javax.inject.Inject
8383
class SelfUserProfileViewModel @Inject constructor(
8484
@CurrentAccount private val selfUserId: UserId,
8585
private val dataStore: UserDataStore,
86-
private val observeSelf: ObserveSelfUserUseCase,
86+
private val getSelfTeamId: GetSelfTeamIdUseCase,
8787
private val observeSelfUserWithTeam: ObserveSelfUserWithTeamUseCase,
8888
private val syncSelfTeamInfo: SyncSelfTeamInfoUseCase,
8989
private val canMigrateFromPersonalToTeam: CanMigrateFromPersonalToTeamUseCase,
@@ -147,7 +147,7 @@ class SelfUserProfileViewModel @Inject constructor(
147147

148148
private fun markCreateTeamNoticeAsRead() {
149149
viewModelScope.launch {
150-
if (observeSelf().first().teamId == null && !dataStore.isCreateTeamNoticeRead().first()) {
150+
if (getSelfTeamId() == null && !dataStore.isCreateTeamNoticeRead().first()) {
151151
dataStore.setIsCreateTeamNoticeRead(true)
152152
}
153153
}

app/src/test/kotlin/com/wire/android/ui/home/conversations/usecase/GetConversationsFromSearchUseCaseTest.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import com.wire.kalium.logic.data.conversation.FolderType
3636
import com.wire.kalium.logic.feature.conversation.GetPaginatedFlowOfConversationDetailsWithEventsBySearchQueryUseCase
3737
import com.wire.kalium.logic.feature.conversation.folder.GetFavoriteFolderUseCase
3838
import com.wire.kalium.logic.feature.conversation.folder.ObserveConversationsFromFolderUseCase
39-
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
39+
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
4040
import io.mockk.MockKAnnotations
4141
import io.mockk.coEvery
4242
import io.mockk.coVerify
@@ -87,7 +87,7 @@ class GetConversationsFromSearchUseCaseTest {
8787
ConversationDetailsWithEvents(TestConversationDetails.CONVERSATION_ONE_ONE),
8888
ConversationDetailsWithEvents(TestConversationDetails.GROUP),
8989
)
90-
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfUser().arrange()
90+
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfTeamId().arrange()
9191
// When
9292
val result = with(arrangement.queryConfig) {
9393
useCase(
@@ -117,7 +117,7 @@ class GetConversationsFromSearchUseCaseTest {
117117
)
118118

119119
val (arrangement, useCase) = Arrangement().withFavoriteFolderResult(folderResult).withFolderConversationsResult(conversationsList)
120-
.withSelfUser().arrange()
120+
.withSelfTeamId().arrange()
121121

122122
// When
123123
useCase(
@@ -148,7 +148,7 @@ class GetConversationsFromSearchUseCaseTest {
148148
)
149149
)
150150
)
151-
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfUser().arrange()
151+
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfTeamId().arrange()
152152
// When
153153
val result = with(arrangement.queryConfig) {
154154
useCase(
@@ -170,7 +170,7 @@ class GetConversationsFromSearchUseCaseTest {
170170
runTest(dispatcherProvider.main()) {
171171
// Given
172172
val conversationsList = listOf(ConversationDetailsWithEvents(TestConversationDetails.GROUP))
173-
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfUser().arrange()
173+
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfTeamId().arrange()
174174
// When
175175
val result = with(arrangement.queryConfig) {
176176
useCase(
@@ -202,7 +202,7 @@ class GetConversationsFromSearchUseCaseTest {
202202
lateinit var userTypeMapper: UserTypeMapper
203203

204204
@MockK
205-
lateinit var getSelfUser: GetSelfUserUseCase
205+
lateinit var getSelfTeamId: GetSelfTeamIdUseCase
206206

207207
@MockK
208208
lateinit var uiTextResolver: UiTextResolver
@@ -226,6 +226,7 @@ class GetConversationsFromSearchUseCaseTest {
226226
}
227227
}
228228
coEvery { uiTextResolver.localeTag() } returns "test-locale"
229+
withSelfTeamId()
229230
withPaginatedResult(emptyList())
230231
}
231232

@@ -245,8 +246,8 @@ class GetConversationsFromSearchUseCaseTest {
245246
} returns flowOf(conversations)
246247
}
247248

248-
fun withSelfUser() = apply {
249-
coEvery { getSelfUser() } returns TestUser.SELF_USER
249+
fun withSelfTeamId() = apply {
250+
coEvery { getSelfTeamId() } returns TestUser.SELF_USER.teamId
250251
}
251252

252253
fun arrange() = this to GetConversationsFromSearchUseCase(
@@ -255,7 +256,7 @@ class GetConversationsFromSearchUseCaseTest {
255256
observeConversationsFromFolderUseCase,
256257
userTypeMapper,
257258
dispatcherProvider,
258-
getSelfUser,
259+
getSelfTeamId,
259260
uiTextResolver
260261
)
261262
}

app/src/test/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModelTest.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import com.wire.kalium.logic.feature.conversation.RefreshConversationsWithoutMet
4646
import com.wire.kalium.logic.feature.legalhold.LegalHoldStateForSelfUser
4747
import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserUseCase
4848
import com.wire.kalium.logic.feature.publicuser.RefreshUsersWithoutMetadataUseCase
49-
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
49+
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
5050
import io.mockk.MockKAnnotations
5151
import io.mockk.coEvery
5252
import io.mockk.coVerify
@@ -288,7 +288,7 @@ class ConversationListViewModelTest {
288288
private lateinit var observeLegalHoldStateForSelfUserUseCase: ObserveLegalHoldStateForSelfUserUseCase
289289

290290
@MockK
291-
private lateinit var getSelfUser: GetSelfUserUseCase
291+
private lateinit var getSelfTeamId: GetSelfTeamIdUseCase
292292

293293
@MockK
294294
lateinit var audioMessagePlayer: ConversationAudioMessagePlayer
@@ -312,6 +312,7 @@ class ConversationListViewModelTest {
312312
}
313313
)
314314
every { audioMessagePlayer.playingAudioMessageFlow } returns flowOf(PlayingAudioMessage.None)
315+
coEvery { getSelfTeamId() } returns TestUser.SELF_USER.teamId
315316
coEvery { uiTextResolver.resolve(any()) } answers {
316317
val text = firstArg<UIText>()
317318
when (text) {
@@ -357,7 +358,7 @@ class ConversationListViewModelTest {
357358
observeConversationListDetailsWithEvents = observeConversationListDetailsWithEventsUseCase,
358359
observeLegalHoldStateForSelfUser = observeLegalHoldStateForSelfUserUseCase,
359360
userTypeMapper = UserTypeMapper(),
360-
getSelfUser = getSelfUser,
361+
getSelfTeamId = getSelfTeamId,
361362
uiTextResolver = uiTextResolver,
362363
usePagination = true,
363364
audioMessagePlayer = audioMessagePlayer,

app/src/test/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileViewModelArrangement.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserU
3838
import com.wire.kalium.logic.feature.personaltoteamaccount.CanMigrateFromPersonalToTeamUseCase
3939
import com.wire.kalium.logic.feature.server.GetTeamUrlUseCase
4040
import com.wire.kalium.logic.feature.team.SyncSelfTeamInfoUseCase
41+
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
4142
import com.wire.kalium.logic.feature.user.IsReadOnlyAccountUseCase
42-
import com.wire.kalium.logic.feature.user.ObserveSelfUserUseCase
4343
import com.wire.kalium.logic.feature.user.ObserveSelfUserWithTeamUseCase
4444
import com.wire.kalium.logic.feature.user.ObserveValidAccountsUseCase
4545
import com.wire.kalium.logic.feature.user.UpdateSelfAvailabilityStatusUseCase
@@ -53,7 +53,7 @@ class SelfUserProfileViewModelArrangement {
5353
lateinit var userDataStore: UserDataStore
5454

5555
@MockK
56-
lateinit var getSelf: ObserveSelfUserUseCase
56+
lateinit var getSelfTeamId: GetSelfTeamIdUseCase
5757

5858
@MockK
5959
lateinit var observeSelfUserWithTeam: ObserveSelfUserWithTeamUseCase
@@ -116,7 +116,7 @@ class SelfUserProfileViewModelArrangement {
116116
SelfUserProfileViewModel(
117117
selfUserId = TestUser.SELF_USER.id,
118118
dataStore = userDataStore,
119-
observeSelf = getSelf,
119+
getSelfTeamId = getSelfTeamId,
120120
observeSelfUserWithTeam = observeSelfUserWithTeam,
121121
syncSelfTeamInfo = syncSelfTeamInfo,
122122
observeValidAccounts = observeValidAccounts,
@@ -143,7 +143,7 @@ class SelfUserProfileViewModelArrangement {
143143
MockKAnnotations.init(this, relaxUnitFun = true)
144144
mockUri()
145145

146-
coEvery { getSelf.invoke() } returns flowOf(TestUser.SELF_USER)
146+
coEvery { getSelfTeamId.invoke() } returns TestUser.SELF_USER.teamId
147147
coEvery { observeSelfUserWithTeam.invoke() } returns flowOf(TestUser.SELF_USER to TestTeam.TEAM)
148148
coEvery { syncSelfTeamInfo.invoke() } returns TestTeam.TEAM
149149
coEvery { observeValidAccounts.invoke() } returns flowOf(listOf(TestUser.SELF_USER to TestTeam.TEAM))

gradle/libs.versions.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
androidJunit5 = "2.0.1"
44

55
# Kotlin
6-
grgitCore = "5.3.2"
6+
grgitCore = "5.3.3"
77
kotlin = "2.3.20"
88

99
# KotlinX
@@ -84,7 +84,7 @@ rss-parser = "6.0.7"
8484
dataDog = "1.19.3"
8585

8686
# Lint
87-
lint-compose = "1.4.2"
87+
lint-compose = "1.4.3"
8888

8989
#OAuth
9090
openIdAppAuth = "0.11.1"
@@ -113,7 +113,7 @@ junit4 = "4.13.2"
113113
junit5 = "5.11.0"
114114
mockk = "1.14.9"
115115
okio = "3.9.0"
116-
turbine = "1.2.0"
116+
turbine = "1.2.1"
117117
robolectric = "4.14.1"
118118
hamcrest = "3.0"
119119
rules = "1.7.0"

0 commit comments

Comments
 (0)