From 0e96dfbd03261dd757a57df39e196e8a742af707 Mon Sep 17 00:00:00 2001 From: boris Date: Thu, 28 Sep 2023 14:14:12 +0300 Subject: [PATCH] feat: Conversation MLS verification status updating (WPB-3872) (#2224) --- .../com/wire/android/di/CoreLogicModule.kt | 13 --- .../di/accountScoped/ConversationModule.kt | 6 ++ .../wire/android/migration/MigrationMapper.kt | 3 +- .../conversations/ConversationTopAppBar.kt | 36 +++---- .../info/ConversationInfoViewModel.kt | 13 +-- .../info/ConversationInfoViewState.kt | 4 +- .../android/framework/TestConversation.kt | 15 ++- .../GroupConversationDetailsViewModelTest.kt | 3 +- .../ConversationInfoViewModelArrangement.kt | 18 +--- .../info/ConversationInfoViewModelTest.kt | 94 +++++++++---------- .../home/gallery/MediaGalleryViewModelTest.kt | 3 +- .../NewConversationViewModelArrangement.kt | 3 +- .../OtherUserProfileScreenViewModelTest.kt | 3 +- kalium | 2 +- 14 files changed, 97 insertions(+), 119 deletions(-) diff --git a/app/src/main/kotlin/com/wire/android/di/CoreLogicModule.kt b/app/src/main/kotlin/com/wire/android/di/CoreLogicModule.kt index db8e1ecf66..b13990b3a8 100644 --- a/app/src/main/kotlin/com/wire/android/di/CoreLogicModule.kt +++ b/app/src/main/kotlin/com/wire/android/di/CoreLogicModule.kt @@ -35,7 +35,6 @@ import com.wire.kalium.logic.feature.connection.BlockUserUseCase import com.wire.kalium.logic.feature.connection.UnblockUserUseCase import com.wire.kalium.logic.feature.conversation.ObserveOtherUserSecurityClassificationLabelUseCase import com.wire.kalium.logic.feature.conversation.ObserveSecurityClassificationLabelUseCase -import com.wire.kalium.logic.feature.conversation.UpdateConversationMemberRoleUseCase import com.wire.kalium.logic.feature.selfDeletingMessages.ObserveSelfDeletionTimerSettingsForConversationUseCase import com.wire.kalium.logic.feature.selfDeletingMessages.ObserveTeamSettingsSelfDeletingStatusUseCase import com.wire.kalium.logic.feature.selfDeletingMessages.PersistNewSelfDeletionTimerUseCase @@ -286,13 +285,6 @@ class UseCaseModule { ): QualifiedIdMapper = coreLogic.getSessionScope(currentAccount).qualifiedIdMapper - @ViewModelScoped - @Provides - fun provideUpdateConversationMemberRoleUseCase( - @KaliumCoreLogic coreLogic: CoreLogic, - @CurrentAccount currentAccount: UserId - ): UpdateConversationMemberRoleUseCase = coreLogic.getSessionScope(currentAccount).conversations.updateConversationMemberRole - @ViewModelScoped @Provides fun provideBlockUserUseCase( @@ -425,9 +417,4 @@ class UseCaseModule { @KaliumCoreLogic coreLogic: CoreLogic, @CurrentAccount currentAccount: UserId ): ObserveScreenshotCensoringConfigUseCase = coreLogic.getSessionScope(currentAccount).observeScreenshotCensoringConfig - - @ViewModelScoped - @Provides - fun provideGetConversationVerificationStatusUseCase(@KaliumCoreLogic coreLogic: CoreLogic, @CurrentAccount currentAccount: UserId) = - coreLogic.getSessionScope(currentAccount).getConversationVerificationStatus } diff --git a/app/src/main/kotlin/com/wire/android/di/accountScoped/ConversationModule.kt b/app/src/main/kotlin/com/wire/android/di/accountScoped/ConversationModule.kt index 9ad64cdad7..3c63bbe318 100644 --- a/app/src/main/kotlin/com/wire/android/di/accountScoped/ConversationModule.kt +++ b/app/src/main/kotlin/com/wire/android/di/accountScoped/ConversationModule.kt @@ -43,6 +43,7 @@ import com.wire.kalium.logic.feature.conversation.RemoveMemberFromConversationUs import com.wire.kalium.logic.feature.conversation.RenameConversationUseCase import com.wire.kalium.logic.feature.conversation.UpdateConversationAccessRoleUseCase import com.wire.kalium.logic.feature.conversation.UpdateConversationArchivedStatusUseCase +import com.wire.kalium.logic.feature.conversation.UpdateConversationMemberRoleUseCase import com.wire.kalium.logic.feature.conversation.UpdateConversationMutedStatusUseCase import com.wire.kalium.logic.feature.conversation.UpdateConversationReadDateUseCase import com.wire.kalium.logic.feature.conversation.UpdateConversationReceiptModeUseCase @@ -222,4 +223,9 @@ class ConversationModule { @Provides fun provideUpdateConversationArchivedStatusUseCase(conversationScope: ConversationScope): UpdateConversationArchivedStatusUseCase = conversationScope.updateConversationArchivedStatus + + @ViewModelScoped + @Provides + fun provideUpdateConversationMemberRoleUseCase(conversationScope: ConversationScope): UpdateConversationMemberRoleUseCase = + conversationScope.updateConversationMemberRole } diff --git a/app/src/main/kotlin/com/wire/android/migration/MigrationMapper.kt b/app/src/main/kotlin/com/wire/android/migration/MigrationMapper.kt index 63d34867ac..d135493d54 100644 --- a/app/src/main/kotlin/com/wire/android/migration/MigrationMapper.kt +++ b/app/src/main/kotlin/com/wire/android/migration/MigrationMapper.kt @@ -104,7 +104,8 @@ class MigrationMapper @Inject constructor() { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) } } diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/ConversationTopAppBar.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/ConversationTopAppBar.kt index e071bb5ded..790983d6a6 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/ConversationTopAppBar.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/ConversationTopAppBar.kt @@ -63,11 +63,10 @@ import com.wire.android.ui.theme.wireDimensions import com.wire.android.ui.theme.wireTypography import com.wire.android.util.debug.LocalFeatureVisibilityFlags import com.wire.android.util.ui.UIText -import com.wire.kalium.logic.data.conversation.ConversationVerificationStatus +import com.wire.kalium.logic.data.conversation.Conversation import com.wire.kalium.logic.data.id.ConversationId import com.wire.kalium.logic.data.id.QualifiedID import com.wire.kalium.logic.data.user.UserAvailabilityStatus -import com.wire.kalium.logic.feature.conversation.ConversationProtocol @Composable fun ConversationScreenTopAppBar( @@ -134,20 +133,7 @@ private fun ConversationScreenTopAppBarContent( overflow = TextOverflow.Ellipsis, modifier = Modifier.weight(weight = 1f, fill = false) ) - if (conversationInfoViewState.verificationStatus?.status == ConversationVerificationStatus.VERIFIED) { - val (iconId, contentDescriptionId) = when (conversationInfoViewState.verificationStatus.protocol) { - ConversationProtocol.MLS -> - R.drawable.ic_certificate_valid_mls to R.string.content_description_mls_certificate_valid - - ConversationProtocol.PROTEUS -> - R.drawable.ic_certificate_valid_proteus to R.string.content_description_proteus_certificate_valid - } - Image( - modifier = Modifier.padding(start = dimensions().spacing4x), - painter = painterResource(id = iconId), - contentDescription = stringResource(contentDescriptionId) - ) - } + VerificationIcon(conversationInfoViewState.protocolInfo, conversationInfoViewState.verificationStatus) if (isDropDownEnabled && isInteractionEnabled) { Icon( painter = painterResource(id = R.drawable.ic_dropdown_icon), @@ -194,6 +180,24 @@ private fun ConversationScreenTopAppBarContent( ) } +@Composable +private fun VerificationIcon(protocolInfo: Conversation.ProtocolInfo?, verificationStatus: Conversation.VerificationStatus?) { + if (verificationStatus != Conversation.VerificationStatus.VERIFIED || protocolInfo == null) return + + val (iconId, contentDescriptionId) = when (protocolInfo) { + is Conversation.ProtocolInfo.MLS -> + R.drawable.ic_certificate_valid_mls to R.string.content_description_mls_certificate_valid + + Conversation.ProtocolInfo.Proteus -> + R.drawable.ic_certificate_valid_proteus to R.string.content_description_proteus_certificate_valid + } + Image( + modifier = Modifier.padding(start = dimensions().spacing4x), + painter = painterResource(id = iconId), + contentDescription = stringResource(contentDescriptionId) + ) +} + @Composable private fun Avatar( conversationAvatar: ConversationAvatar, diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModel.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModel.kt index b908f12894..dc6cdd4f60 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModel.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModel.kt @@ -40,8 +40,6 @@ import com.wire.kalium.logic.data.id.QualifiedID import com.wire.kalium.logic.data.id.QualifiedIdMapper import com.wire.kalium.logic.data.user.ConnectionState import com.wire.kalium.logic.data.user.UserId -import com.wire.kalium.logic.feature.conversation.ConversationVerificationStatusResult -import com.wire.kalium.logic.feature.conversation.GetConversationVerificationStatusUseCase import com.wire.kalium.logic.feature.conversation.ObserveConversationDetailsUseCase import com.wire.kalium.logic.feature.user.GetSelfUserUseCase import dagger.hilt.android.lifecycle.HiltViewModel @@ -57,7 +55,6 @@ class ConversationInfoViewModel @Inject constructor( private val observeConversationDetails: ObserveConversationDetailsUseCase, private val observerSelfUser: GetSelfUserUseCase, private val wireSessionImageLoader: WireSessionImageLoader, - private val getConversationVerificationStatus: GetConversationVerificationStatusUseCase ) : SavedStateViewModel(savedStateHandle) { private val conversationNavArgs: ConversationNavArgs = savedStateHandle.navArgs() @@ -75,12 +72,6 @@ class ConversationInfoViewModel @Inject constructor( viewModelScope.launch { selfUserId = observerSelfUser().first().id } - viewModelScope.launch { - val result = getConversationVerificationStatus(conversationId) - if (result is ConversationVerificationStatusResult.Success) { - conversationInfoViewState = conversationInfoViewState.copy(verificationStatus = result) - } - } } /* @@ -125,7 +116,9 @@ class ConversationInfoViewModel @Inject constructor( conversationAvatar = getConversationAvatar(conversationDetails), conversationDetailsData = detailsData, hasUserPermissionToEdit = detailsData !is ConversationDetailsData.None, - conversationType = conversationDetails.conversation.type + conversationType = conversationDetails.conversation.type, + protocolInfo = conversationDetails.conversation.protocol, + verificationStatus = conversationDetails.conversation.verificationStatus ) } diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewState.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewState.kt index 4848ddff9b..b8b11cc394 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewState.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewState.kt @@ -27,7 +27,6 @@ import com.wire.kalium.logic.data.id.QualifiedID import com.wire.kalium.logic.data.user.ConnectionState import com.wire.kalium.logic.data.user.UserAvailabilityStatus import com.wire.kalium.logic.data.user.UserId -import com.wire.kalium.logic.feature.conversation.ConversationVerificationStatusResult data class ConversationInfoViewState( val conversationId: QualifiedID, @@ -36,7 +35,8 @@ data class ConversationInfoViewState( val conversationAvatar: ConversationAvatar = ConversationAvatar.None, val hasUserPermissionToEdit: Boolean = false, val conversationType: Conversation.Type = Conversation.Type.ONE_ON_ONE, - val verificationStatus: ConversationVerificationStatusResult.Success? = null, + val protocolInfo: Conversation.ProtocolInfo? = null, + val verificationStatus: Conversation.VerificationStatus? = null, ) sealed class ConversationDetailsData { diff --git a/app/src/test/kotlin/com/wire/android/framework/TestConversation.kt b/app/src/test/kotlin/com/wire/android/framework/TestConversation.kt index 4dc75fae9a..3d44a0c787 100644 --- a/app/src/test/kotlin/com/wire/android/framework/TestConversation.kt +++ b/app/src/test/kotlin/com/wire/android/framework/TestConversation.kt @@ -51,7 +51,8 @@ object TestConversation { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) val SELF = Conversation( ID.copy(value = "SELF ID"), @@ -71,7 +72,8 @@ object TestConversation { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) fun GROUP(protocolInfo: ProtocolInfo = ProtocolInfo.Proteus) = Conversation( @@ -92,7 +94,8 @@ object TestConversation { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) fun one_on_one(convId: ConversationId) = Conversation( @@ -113,7 +116,8 @@ object TestConversation { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) val USER_1 = UserId("member1", "domainMember") @@ -141,6 +145,7 @@ object TestConversation { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) } diff --git a/app/src/test/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsViewModelTest.kt b/app/src/test/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsViewModelTest.kt index b8958f8ba7..a7fa277e98 100644 --- a/app/src/test/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsViewModelTest.kt +++ b/app/src/test/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsViewModelTest.kt @@ -561,7 +561,8 @@ class GroupConversationDetailsViewModelTest { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ), legalHoldStatus = LegalHoldStatus.DISABLED, hasOngoingCall = false, diff --git a/app/src/test/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModelArrangement.kt b/app/src/test/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModelArrangement.kt index a5e6d21827..7ff8bed758 100644 --- a/app/src/test/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModelArrangement.kt +++ b/app/src/test/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModelArrangement.kt @@ -28,14 +28,10 @@ import com.wire.android.ui.navArgs import com.wire.android.util.ui.WireSessionImageLoader import com.wire.kalium.logic.StorageFailure import com.wire.kalium.logic.data.conversation.ConversationDetails -import com.wire.kalium.logic.data.conversation.ConversationVerificationStatus import com.wire.kalium.logic.data.id.ConversationId import com.wire.kalium.logic.data.id.QualifiedID import com.wire.kalium.logic.data.id.QualifiedIdMapper import com.wire.kalium.logic.data.user.UserId -import com.wire.kalium.logic.feature.conversation.ConversationProtocol -import com.wire.kalium.logic.feature.conversation.ConversationVerificationStatusResult -import com.wire.kalium.logic.feature.conversation.GetConversationVerificationStatusUseCase import com.wire.kalium.logic.feature.conversation.ObserveConversationDetailsUseCase import com.wire.kalium.logic.feature.user.GetSelfUserUseCase import io.mockk.MockKAnnotations @@ -68,9 +64,6 @@ class ConversationInfoViewModelArrangement { @MockK private lateinit var wireSessionImageLoader: WireSessionImageLoader - @MockK - private lateinit var getConversationVerificationStatus: GetConversationVerificationStatusUseCase - @MockK(relaxed = true) lateinit var onNotFound: () -> Unit @@ -80,8 +73,7 @@ class ConversationInfoViewModelArrangement { savedStateHandle, observeConversationDetails, observerSelfUser, - wireSessionImageLoader, - getConversationVerificationStatus + wireSessionImageLoader ) } @@ -96,10 +88,6 @@ class ConversationInfoViewModelArrangement { coEvery { observeConversationDetails(any()) } returns conversationDetailsChannel.consumeAsFlow().map { ObserveConversationDetailsUseCase.Result.Success(it) } - coEvery { getConversationVerificationStatus(any()) } returns ConversationVerificationStatusResult.Success( - ConversationProtocol.PROTEUS, - ConversationVerificationStatus.NOT_VERIFIED - ) } suspend fun withConversationDetailUpdate(conversationDetails: ConversationDetails) = apply { @@ -121,9 +109,5 @@ class ConversationInfoViewModelArrangement { every { qualifiedIdMapper.fromStringToQualifiedID(id.toString()) } returns id } - suspend fun withVerificationStatus(result: ConversationVerificationStatusResult) = apply { - coEvery { getConversationVerificationStatus(any()) } returns result - } - fun arrange() = this to viewModel } diff --git a/app/src/test/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModelTest.kt b/app/src/test/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModelTest.kt index ea47dcb27d..cc73a66a62 100644 --- a/app/src/test/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModelTest.kt +++ b/app/src/test/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModelTest.kt @@ -28,10 +28,7 @@ import com.wire.android.ui.home.conversations.withMockConversationDetailsOneOnOn import com.wire.android.util.EMPTY import com.wire.android.util.ui.UIText import com.wire.kalium.logic.StorageFailure -import com.wire.kalium.logic.data.conversation.ConversationVerificationStatus import com.wire.kalium.logic.data.id.ConversationId -import com.wire.kalium.logic.feature.conversation.ConversationProtocol -import com.wire.kalium.logic.feature.conversation.ConversationVerificationStatusResult import io.mockk.verify import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.launch @@ -222,92 +219,89 @@ class ConversationInfoViewModelTest { @Test fun `given a not-verified MLS conversation, then mlsVerificationStatus is not verified`() = runTest { // Given - val result = ConversationVerificationStatusResult.Success( - ConversationProtocol.MLS, - ConversationVerificationStatus.NOT_VERIFIED - ) + val groupConversationDetails = mockConversationDetailsGroup("Conversation Name Goes Here") val (_, viewModel) = ConversationInfoViewModelArrangement() - .withVerificationStatus(result) + .withConversationDetailUpdate(conversationDetails = groupConversationDetails) .withSelfUser() .arrange() // then - assertEquals( - result, - viewModel.conversationInfoViewState.verificationStatus - ) + launch { viewModel.observeConversationDetails {} }.run { + advanceUntilIdle() + assertEquals( + groupConversationDetails.conversation.protocol, + viewModel.conversationInfoViewState.protocolInfo + ) + assertEquals( + groupConversationDetails.conversation.verificationStatus, + viewModel.conversationInfoViewState.verificationStatus + ) + cancel() + } } @Test fun `given conversation is MLS verified, then mlsVerificationStatus is verified`() = runTest { // Given - val result = ConversationVerificationStatusResult.Success( - ConversationProtocol.MLS, - ConversationVerificationStatus.VERIFIED - ) + val groupConversationDetails = mockConversationDetailsGroup("Conversation Name Goes Here") val (_, viewModel) = ConversationInfoViewModelArrangement() - .withVerificationStatus(result) + .withConversationDetailUpdate(conversationDetails = groupConversationDetails) .withSelfUser() .arrange() // then - assertEquals( - result, - viewModel.conversationInfoViewState.verificationStatus - ) + launch { viewModel.observeConversationDetails {} }.run { + advanceUntilIdle() + assertEquals( + groupConversationDetails.conversation.protocol, + viewModel.conversationInfoViewState.protocolInfo + ) + assertEquals( + groupConversationDetails.conversation.verificationStatus, + viewModel.conversationInfoViewState.verificationStatus + ) + cancel() + } } @Test fun `given a verified Proteus conversation, then proteusVerificationStatus is verified`() = runTest { // Given - val result = ConversationVerificationStatusResult.Success( - ConversationProtocol.PROTEUS, - ConversationVerificationStatus.VERIFIED - ) + val groupConversationDetails = mockConversationDetailsGroup("Conversation Name Goes Here") val (_, viewModel) = ConversationInfoViewModelArrangement() - .withVerificationStatus(result) + .withConversationDetailUpdate(conversationDetails = groupConversationDetails) .withSelfUser() .arrange() // then - assertEquals( - result, - viewModel.conversationInfoViewState.verificationStatus - ) + launch { viewModel.observeConversationDetails {} }.run { + advanceUntilIdle() + assertEquals( + groupConversationDetails.conversation.protocol, + viewModel.conversationInfoViewState.protocolInfo + ) + assertEquals( + groupConversationDetails.conversation.verificationStatus, + viewModel.conversationInfoViewState.verificationStatus + ) + cancel() + } } @Test fun `given Failure while getting an MLS conversation's verification status, then mlsVerificationStatus is null`() = runTest { // Given val (_, viewModel) = ConversationInfoViewModelArrangement() - .withVerificationStatus(ConversationVerificationStatusResult.Failure(StorageFailure.DataNotFound)) .withSelfUser() .arrange() // then assertEquals( null, - viewModel.conversationInfoViewState.verificationStatus + viewModel.conversationInfoViewState.protocolInfo ) - } - - @Test - fun `given a not-verified Proteus conversation, then proteusVerificationStatus is not verified`() = runTest { - // Given - val result = ConversationVerificationStatusResult.Success( - ConversationProtocol.PROTEUS, - ConversationVerificationStatus.NOT_VERIFIED - ) - val (_, viewModel) = ConversationInfoViewModelArrangement() - .withVerificationStatus( - result - ) - .withSelfUser() - .arrange() - - // then assertEquals( - result, + null, viewModel.conversationInfoViewState.verificationStatus ) } diff --git a/app/src/test/kotlin/com/wire/android/ui/home/gallery/MediaGalleryViewModelTest.kt b/app/src/test/kotlin/com/wire/android/ui/home/gallery/MediaGalleryViewModelTest.kt index 1e00af9e32..9b908f80c1 100644 --- a/app/src/test/kotlin/com/wire/android/ui/home/gallery/MediaGalleryViewModelTest.kt +++ b/app/src/test/kotlin/com/wire/android/ui/home/gallery/MediaGalleryViewModelTest.kt @@ -303,7 +303,8 @@ class MediaGalleryViewModelTest { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ), otherUser = OtherUser( QualifiedID("other-user-id", "domain-id"), diff --git a/app/src/test/kotlin/com/wire/android/ui/home/newconversation/NewConversationViewModelArrangement.kt b/app/src/test/kotlin/com/wire/android/ui/home/newconversation/NewConversationViewModelArrangement.kt index 24f24ecad2..bd4769198e 100644 --- a/app/src/test/kotlin/com/wire/android/ui/home/newconversation/NewConversationViewModelArrangement.kt +++ b/app/src/test/kotlin/com/wire/android/ui/home/newconversation/NewConversationViewModelArrangement.kt @@ -157,7 +157,8 @@ internal class NewConversationViewModelArrangement { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) val PUBLIC_USER = OtherUser( diff --git a/app/src/test/kotlin/com/wire/android/ui/userprofile/other/OtherUserProfileScreenViewModelTest.kt b/app/src/test/kotlin/com/wire/android/ui/userprofile/other/OtherUserProfileScreenViewModelTest.kt index 0a6948ea44..551d2b5cce 100644 --- a/app/src/test/kotlin/com/wire/android/ui/userprofile/other/OtherUserProfileScreenViewModelTest.kt +++ b/app/src/test/kotlin/com/wire/android/ui/userprofile/other/OtherUserProfileScreenViewModelTest.kt @@ -243,7 +243,8 @@ class OtherUserProfileScreenViewModelTest { messageTimer = null, userMessageTimer = null, archived = false, - archivedDateTime = null + archivedDateTime = null, + verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) val CONVERSATION_ROLE_DATA = ConversationRoleData( "some_name", diff --git a/kalium b/kalium index 45b6707e7a..2497ff627a 160000 --- a/kalium +++ b/kalium @@ -1 +1 @@ -Subproject commit 45b6707e7a0f29bd9b1647a7780fe04425404015 +Subproject commit 2497ff627a19874849c7d8d307bb4790b77945cb