Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import com.wire.kalium.logic.feature.publicuser.GetAllContactsUseCase
import com.wire.kalium.logic.feature.publicuser.GetKnownUserUseCase
import com.wire.kalium.logic.feature.publicuser.RefreshUsersWithoutMetadataUseCase
import com.wire.kalium.logic.feature.user.DeleteAccountUseCase
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
import com.wire.kalium.logic.feature.user.GetUserInfoUseCase
import com.wire.kalium.logic.feature.user.IsPasswordRequiredUseCase
Expand Down Expand Up @@ -202,6 +203,11 @@ class UserModule {
fun provideGetSelfUseCase(userScope: UserScope): GetSelfUserUseCase =
userScope.getSelfUser

@ViewModelScoped
@Provides
fun provideGetSelfTeamIdUseCase(userScope: UserScope): GetSelfTeamIdUseCase =
userScope.getSelfTeamId

@ViewModelScoped
@Provides
fun provideObserveSelfUseCase(userScope: UserScope): ObserveSelfUserUseCase =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import com.wire.kalium.logic.data.conversation.ConversationQueryConfig
import com.wire.kalium.logic.feature.conversation.GetPaginatedFlowOfConversationDetailsWithEventsBySearchQueryUseCase
import com.wire.kalium.logic.feature.conversation.folder.GetFavoriteFolderUseCase
import com.wire.kalium.logic.feature.conversation.folder.ObserveConversationsFromFolderUseCase
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.flowOn
Expand All @@ -48,7 +48,7 @@ class GetConversationsFromSearchUseCase @Inject constructor(
private val observeConversationsFromFromFolder: ObserveConversationsFromFolderUseCase,
private val userTypeMapper: UserTypeMapper,
private val dispatchers: DispatcherProvider,
private val getSelfUser: GetSelfUserUseCase,
private val getSelfTeamId: GetSelfTeamIdUseCase,
private val uiTextResolver: UiTextResolver,
) {
@Suppress("LongParameterList")
Expand All @@ -61,6 +61,7 @@ class GetConversationsFromSearchUseCase @Inject constructor(
playingAudioMessage: PlayingAudioMessage = PlayingAudioMessage.None,
useStrictMlsFilter: Boolean,
): Flow<PagingData<ConversationItem>> {
val selfUserTeamId = getSelfTeamId()
val pagingConfig = PagingConfig(
pageSize = PAGE_SIZE,
prefetchDistance = PREFETCH_DISTANCE,
Expand Down Expand Up @@ -104,7 +105,7 @@ class GetConversationsFromSearchUseCase @Inject constructor(
userTypeMapper = userTypeMapper,
uiTextResolver = uiTextResolver,
searchQuery = searchQuery,
selfUserTeamId = getSelfUser()?.teamId,
selfUserTeamId = selfUserTeamId,
playingAudioMessage = playingAudioMessage
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
import com.wire.kalium.logic.feature.legalhold.LegalHoldStateForSelfUser
import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserUseCase
import com.wire.kalium.logic.feature.publicuser.RefreshUsersWithoutMetadataUseCase
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
Expand Down Expand Up @@ -110,7 +110,7 @@
private val audioMessagePlayer: ConversationAudioMessagePlayer,
@CurrentAccount val currentAccount: UserId,
private val userTypeMapper: UserTypeMapper,
private val getSelfUser: GetSelfUserUseCase,
private val getSelfTeamId: GetSelfTeamIdUseCase,
private val uiTextResolver: UiTextResolver,
) : ConversationListViewModel, ViewModel() {

Expand Down Expand Up @@ -214,6 +214,7 @@

private fun observeNonPaginatedSearchConversationList() {
viewModelScope.launch {
val selfTeamId = getSelfTeamId()

Check warning on line 217 in app/src/main/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModel.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L217 was not covered by tests
searchQueryFlow
.debounce { if (it.isEmpty()) 0L else DEFAULT_SEARCH_QUERY_DEBOUNCE }
.onStart { emit("") }
Expand All @@ -232,7 +233,7 @@
userTypeMapper = userTypeMapper,
uiTextResolver = uiTextResolver,
searchQuery = searchQuery,
selfUserTeamId = getSelfUser()?.teamId,
selfUserTeamId = selfTeamId,

Check warning on line 236 in app/src/main/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModel.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L236 was not covered by tests
playingAudioMessage = playingAudioMessage
).hideIndicatorForSelfUserUnderLegalHold(isSelfUserUnderLegalHold)
} to searchQuery
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserU
import com.wire.kalium.logic.feature.personaltoteamaccount.CanMigrateFromPersonalToTeamUseCase
import com.wire.kalium.logic.feature.server.GetTeamUrlUseCase
import com.wire.kalium.logic.feature.team.SyncSelfTeamInfoUseCase
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
import com.wire.kalium.logic.feature.user.IsReadOnlyAccountUseCase
import com.wire.kalium.logic.feature.user.ObserveSelfUserUseCase
import com.wire.kalium.logic.feature.user.ObserveSelfUserWithTeamUseCase
import com.wire.kalium.logic.feature.user.ObserveValidAccountsUseCase
import com.wire.kalium.logic.feature.user.UpdateSelfAvailabilityStatusUseCase
Expand All @@ -83,7 +83,7 @@ import javax.inject.Inject
class SelfUserProfileViewModel @Inject constructor(
@CurrentAccount private val selfUserId: UserId,
private val dataStore: UserDataStore,
private val observeSelf: ObserveSelfUserUseCase,
private val getSelfTeamId: GetSelfTeamIdUseCase,
private val observeSelfUserWithTeam: ObserveSelfUserWithTeamUseCase,
private val syncSelfTeamInfo: SyncSelfTeamInfoUseCase,
private val canMigrateFromPersonalToTeam: CanMigrateFromPersonalToTeamUseCase,
Expand Down Expand Up @@ -147,7 +147,7 @@ class SelfUserProfileViewModel @Inject constructor(

private fun markCreateTeamNoticeAsRead() {
viewModelScope.launch {
if (observeSelf().first().teamId == null && !dataStore.isCreateTeamNoticeRead().first()) {
if (getSelfTeamId() == null && !dataStore.isCreateTeamNoticeRead().first()) {
dataStore.setIsCreateTeamNoticeRead(true)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import com.wire.kalium.logic.data.conversation.FolderType
import com.wire.kalium.logic.feature.conversation.GetPaginatedFlowOfConversationDetailsWithEventsBySearchQueryUseCase
import com.wire.kalium.logic.feature.conversation.folder.GetFavoriteFolderUseCase
import com.wire.kalium.logic.feature.conversation.folder.ObserveConversationsFromFolderUseCase
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
import io.mockk.MockKAnnotations
import io.mockk.coEvery
import io.mockk.coVerify
Expand Down Expand Up @@ -87,7 +87,7 @@ class GetConversationsFromSearchUseCaseTest {
ConversationDetailsWithEvents(TestConversationDetails.CONVERSATION_ONE_ONE),
ConversationDetailsWithEvents(TestConversationDetails.GROUP),
)
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfUser().arrange()
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfTeamId().arrange()
// When
val result = with(arrangement.queryConfig) {
useCase(
Expand Down Expand Up @@ -117,7 +117,7 @@ class GetConversationsFromSearchUseCaseTest {
)

val (arrangement, useCase) = Arrangement().withFavoriteFolderResult(folderResult).withFolderConversationsResult(conversationsList)
.withSelfUser().arrange()
.withSelfTeamId().arrange()

// When
useCase(
Expand Down Expand Up @@ -148,7 +148,7 @@ class GetConversationsFromSearchUseCaseTest {
)
)
)
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfUser().arrange()
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfTeamId().arrange()
// When
val result = with(arrangement.queryConfig) {
useCase(
Expand All @@ -170,7 +170,7 @@ class GetConversationsFromSearchUseCaseTest {
runTest(dispatcherProvider.main()) {
// Given
val conversationsList = listOf(ConversationDetailsWithEvents(TestConversationDetails.GROUP))
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfUser().arrange()
val (arrangement, useCase) = Arrangement().withPaginatedResult(conversationsList).withSelfTeamId().arrange()
// When
val result = with(arrangement.queryConfig) {
useCase(
Expand Down Expand Up @@ -202,7 +202,7 @@ class GetConversationsFromSearchUseCaseTest {
lateinit var userTypeMapper: UserTypeMapper

@MockK
lateinit var getSelfUser: GetSelfUserUseCase
lateinit var getSelfTeamId: GetSelfTeamIdUseCase

@MockK
lateinit var uiTextResolver: UiTextResolver
Expand All @@ -226,6 +226,7 @@ class GetConversationsFromSearchUseCaseTest {
}
}
coEvery { uiTextResolver.localeTag() } returns "test-locale"
withSelfTeamId()
withPaginatedResult(emptyList())
}

Expand All @@ -245,8 +246,8 @@ class GetConversationsFromSearchUseCaseTest {
} returns flowOf(conversations)
}

fun withSelfUser() = apply {
coEvery { getSelfUser() } returns TestUser.SELF_USER
fun withSelfTeamId() = apply {
coEvery { getSelfTeamId() } returns TestUser.SELF_USER.teamId
}

fun arrange() = this to GetConversationsFromSearchUseCase(
Expand All @@ -255,7 +256,7 @@ class GetConversationsFromSearchUseCaseTest {
observeConversationsFromFolderUseCase,
userTypeMapper,
dispatcherProvider,
getSelfUser,
getSelfTeamId,
uiTextResolver
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ import com.wire.kalium.logic.feature.conversation.RefreshConversationsWithoutMet
import com.wire.kalium.logic.feature.legalhold.LegalHoldStateForSelfUser
import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserUseCase
import com.wire.kalium.logic.feature.publicuser.RefreshUsersWithoutMetadataUseCase
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
import io.mockk.MockKAnnotations
import io.mockk.coEvery
import io.mockk.coVerify
Expand Down Expand Up @@ -288,7 +288,7 @@ class ConversationListViewModelTest {
private lateinit var observeLegalHoldStateForSelfUserUseCase: ObserveLegalHoldStateForSelfUserUseCase

@MockK
private lateinit var getSelfUser: GetSelfUserUseCase
private lateinit var getSelfTeamId: GetSelfTeamIdUseCase

@MockK
lateinit var audioMessagePlayer: ConversationAudioMessagePlayer
Expand All @@ -312,6 +312,7 @@ class ConversationListViewModelTest {
}
)
every { audioMessagePlayer.playingAudioMessageFlow } returns flowOf(PlayingAudioMessage.None)
coEvery { getSelfTeamId() } returns TestUser.SELF_USER.teamId
coEvery { uiTextResolver.resolve(any()) } answers {
val text = firstArg<UIText>()
when (text) {
Expand Down Expand Up @@ -357,7 +358,7 @@ class ConversationListViewModelTest {
observeConversationListDetailsWithEvents = observeConversationListDetailsWithEventsUseCase,
observeLegalHoldStateForSelfUser = observeLegalHoldStateForSelfUserUseCase,
userTypeMapper = UserTypeMapper(),
getSelfUser = getSelfUser,
getSelfTeamId = getSelfTeamId,
uiTextResolver = uiTextResolver,
usePagination = true,
audioMessagePlayer = audioMessagePlayer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserU
import com.wire.kalium.logic.feature.personaltoteamaccount.CanMigrateFromPersonalToTeamUseCase
import com.wire.kalium.logic.feature.server.GetTeamUrlUseCase
import com.wire.kalium.logic.feature.team.SyncSelfTeamInfoUseCase
import com.wire.kalium.logic.feature.user.GetSelfTeamIdUseCase
import com.wire.kalium.logic.feature.user.IsReadOnlyAccountUseCase
import com.wire.kalium.logic.feature.user.ObserveSelfUserUseCase
import com.wire.kalium.logic.feature.user.ObserveSelfUserWithTeamUseCase
import com.wire.kalium.logic.feature.user.ObserveValidAccountsUseCase
import com.wire.kalium.logic.feature.user.UpdateSelfAvailabilityStatusUseCase
Expand All @@ -53,7 +53,7 @@ class SelfUserProfileViewModelArrangement {
lateinit var userDataStore: UserDataStore

@MockK
lateinit var getSelf: ObserveSelfUserUseCase
lateinit var getSelfTeamId: GetSelfTeamIdUseCase

@MockK
lateinit var observeSelfUserWithTeam: ObserveSelfUserWithTeamUseCase
Expand Down Expand Up @@ -116,7 +116,7 @@ class SelfUserProfileViewModelArrangement {
SelfUserProfileViewModel(
selfUserId = TestUser.SELF_USER.id,
dataStore = userDataStore,
observeSelf = getSelf,
getSelfTeamId = getSelfTeamId,
observeSelfUserWithTeam = observeSelfUserWithTeam,
syncSelfTeamInfo = syncSelfTeamInfo,
observeValidAccounts = observeValidAccounts,
Expand All @@ -143,7 +143,7 @@ class SelfUserProfileViewModelArrangement {
MockKAnnotations.init(this, relaxUnitFun = true)
mockUri()

coEvery { getSelf.invoke() } returns flowOf(TestUser.SELF_USER)
coEvery { getSelfTeamId.invoke() } returns TestUser.SELF_USER.teamId
coEvery { observeSelfUserWithTeam.invoke() } returns flowOf(TestUser.SELF_USER to TestTeam.TEAM)
coEvery { syncSelfTeamInfo.invoke() } returns TestTeam.TEAM
coEvery { observeValidAccounts.invoke() } returns flowOf(listOf(TestUser.SELF_USER to TestTeam.TEAM))
Expand Down
Loading