diff --git a/app/src/main/kotlin/com/wire/android/mapper/MessagePreviewContentMapper.kt b/app/src/main/kotlin/com/wire/android/mapper/MessagePreviewContentMapper.kt index 718b7c7a332..4d0676f6ca2 100644 --- a/app/src/main/kotlin/com/wire/android/mapper/MessagePreviewContentMapper.kt +++ b/app/src/main/kotlin/com/wire/android/mapper/MessagePreviewContentMapper.kt @@ -310,6 +310,14 @@ fun MessagePreview.uiLastMessageContent(): UILastMessageContent { } MessagePreviewContent.CryptoSessionReset -> UILastMessageContent.None + MessagePreviewContent.VerificationChanged.VerifiedMls -> + UILastMessageContent.VerificationChanged(R.string.last_message_verified_conversation_mls) + MessagePreviewContent.VerificationChanged.VerifiedProteus -> + UILastMessageContent.VerificationChanged(R.string.last_message_verified_conversation_proteus) + MessagePreviewContent.VerificationChanged.DegradedMls -> + UILastMessageContent.VerificationChanged(R.string.last_message_conversations_verification_degraded_mls) + MessagePreviewContent.VerificationChanged.DegradedProteus -> + UILastMessageContent.VerificationChanged(R.string.last_message_conversations_verification_degraded_proteus) Unknown -> UILastMessageContent.None } } 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 7803ed9edc1..72dbf33eb64 100644 --- a/app/src/main/kotlin/com/wire/android/migration/MigrationMapper.kt +++ b/app/src/main/kotlin/com/wire/android/migration/MigrationMapper.kt @@ -106,7 +106,8 @@ class MigrationMapper @Inject constructor() { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) } } diff --git a/app/src/main/kotlin/com/wire/android/ui/authentication/devices/DeviceItem.kt b/app/src/main/kotlin/com/wire/android/ui/authentication/devices/DeviceItem.kt index 6f4a29d8361..adb0d6108da 100644 --- a/app/src/main/kotlin/com/wire/android/ui/authentication/devices/DeviceItem.kt +++ b/app/src/main/kotlin/com/wire/android/ui/authentication/devices/DeviceItem.kt @@ -183,7 +183,7 @@ private fun DeviceItemTexts( ) if (shouldShowVerifyLabel) { Spacer(modifier = Modifier.width(MaterialTheme.wireDimensions.spacing8x)) - if (device.isVerifiedProteus) ProteusVerifiedIcon(Modifier.wrapContentWidth()) + if (device.isVerifiedProteus) ProteusVerifiedIcon(Modifier.wrapContentWidth().align(Alignment.CenterVertically)) } } diff --git a/app/src/main/kotlin/com/wire/android/ui/common/VerifiedIcons.kt b/app/src/main/kotlin/com/wire/android/ui/common/VerifiedIcons.kt index a79f3740bee..0834be5d5e8 100644 --- a/app/src/main/kotlin/com/wire/android/ui/common/VerifiedIcons.kt +++ b/app/src/main/kotlin/com/wire/android/ui/common/VerifiedIcons.kt @@ -17,6 +17,7 @@ */ package com.wire.android.ui.common +import androidx.annotation.StringRes import androidx.compose.foundation.Image import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable @@ -26,10 +27,25 @@ import androidx.compose.ui.res.stringResource import com.wire.android.R @Composable -fun ProteusVerifiedIcon(modifier: Modifier = Modifier) { +fun ProteusVerifiedIcon( + modifier: Modifier = Modifier, + @StringRes contentDescriptionId: Int = R.string.label_client_verified +) { Image( modifier = modifier.padding(start = dimensions().spacing4x), painter = painterResource(id = R.drawable.ic_certificate_valid_proteus), - contentDescription = stringResource(R.string.label_client_verified) + contentDescription = stringResource(contentDescriptionId) + ) +} + +@Composable +fun MLSVerifiedIcon( + modifier: Modifier = Modifier, + @StringRes contentDescriptionId: Int = R.string.label_client_verified +) { + Image( + modifier = modifier.padding(start = dimensions().spacing4x), + painter = painterResource(id = R.drawable.ic_certificate_valid_mls), + contentDescription = stringResource(contentDescriptionId) ) } diff --git a/app/src/main/kotlin/com/wire/android/ui/common/bottomsheet/conversation/ConversationSheetContent.kt b/app/src/main/kotlin/com/wire/android/ui/common/bottomsheet/conversation/ConversationSheetContent.kt index 306a0e7508e..227973328eb 100644 --- a/app/src/main/kotlin/com/wire/android/ui/common/bottomsheet/conversation/ConversationSheetContent.kt +++ b/app/src/main/kotlin/com/wire/android/ui/common/bottomsheet/conversation/ConversationSheetContent.kt @@ -125,7 +125,10 @@ data class ConversationSheetContent( val conversationTypeDetail: ConversationTypeDetail, val selfRole: Conversation.Member.Role?, val isTeamConversation: Boolean, - val isArchived: Boolean + val isArchived: Boolean, + val protocol: Conversation.ProtocolInfo, + val mlsVerificationStatus: Conversation.VerificationStatus, + val proteusVerificationStatus: Conversation.VerificationStatus ) { private val isSelfUserMember: Boolean get() = selfRole != null diff --git a/app/src/main/kotlin/com/wire/android/ui/common/bottomsheet/conversation/ConversationSheetState.kt b/app/src/main/kotlin/com/wire/android/ui/common/bottomsheet/conversation/ConversationSheetState.kt index 648c1f4c62a..d3833edaf8c 100644 --- a/app/src/main/kotlin/com/wire/android/ui/common/bottomsheet/conversation/ConversationSheetState.kt +++ b/app/src/main/kotlin/com/wire/android/ui/common/bottomsheet/conversation/ConversationSheetState.kt @@ -76,10 +76,14 @@ fun rememberConversationSheetState( ), isTeamConversation = teamId != null, selfRole = selfMemberRole, - isArchived = conversationItem.isArchived + isArchived = conversationItem.isArchived, + protocol = Conversation.ProtocolInfo.Proteus, + mlsVerificationStatus = Conversation.VerificationStatus.VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.VERIFIED ) } } + is ConversationItem.PrivateConversation -> { with(conversationItem) { ConversationSheetContent( @@ -95,10 +99,14 @@ fun rememberConversationSheetState( ), isTeamConversation = isTeamConversation, selfRole = Conversation.Member.Role.Member, - isArchived = conversationItem.isArchived + isArchived = conversationItem.isArchived, + protocol = Conversation.ProtocolInfo.Proteus, + mlsVerificationStatus = Conversation.VerificationStatus.VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.VERIFIED ) } } + is ConversationItem.ConnectionConversation -> { with(conversationItem) { ConversationSheetContent( @@ -110,7 +118,10 @@ fun rememberConversationSheetState( ), isTeamConversation = isTeamConversation, selfRole = Conversation.Member.Role.Member, - isArchived = conversationItem.isArchived + isArchived = conversationItem.isArchived, + protocol = Conversation.ProtocolInfo.Proteus, + mlsVerificationStatus = Conversation.VerificationStatus.VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.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 3b048f551e4..1459ad286a9 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 @@ -20,11 +20,11 @@ package com.wire.android.ui.home.conversations -import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size @@ -48,6 +48,8 @@ import com.wire.android.R import com.wire.android.model.UserAvatarData import com.wire.android.ui.calling.controlbuttons.JoinButton import com.wire.android.ui.calling.controlbuttons.StartCallButton +import com.wire.android.ui.common.MLSVerifiedIcon +import com.wire.android.ui.common.ProteusVerifiedIcon import com.wire.android.ui.common.UserProfileAvatar import com.wire.android.ui.common.button.WireSecondaryIconButton import com.wire.android.ui.common.colorsScheme @@ -133,7 +135,11 @@ private fun ConversationScreenTopAppBarContent( overflow = TextOverflow.Ellipsis, modifier = Modifier.weight(weight = 1f, fill = false) ) - VerificationIcon(conversationInfoViewState.protocolInfo, conversationInfoViewState.verificationStatus) + VerificationIcons( + conversationInfoViewState.protocolInfo, + conversationInfoViewState.mlsVerificationStatus, + conversationInfoViewState.proteusVerificationStatus + ) if (isDropDownEnabled && isInteractionEnabled) { Icon( painter = painterResource(id = R.drawable.ic_dropdown_icon), @@ -181,21 +187,29 @@ 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 +private fun RowScope.VerificationIcons( + protocolInfo: Conversation.ProtocolInfo?, + mlsVerificationStatus: Conversation.VerificationStatus?, + proteusVerificationStatus: Conversation.VerificationStatus? +) { + val mlsIcon: @Composable () -> Unit = { + if (mlsVerificationStatus == Conversation.VerificationStatus.VERIFIED) { + MLSVerifiedIcon(contentDescriptionId = R.string.content_description_mls_certificate_valid) + } + } + val proteusIcon: @Composable () -> Unit = { + if (proteusVerificationStatus == Conversation.VerificationStatus.VERIFIED) { + ProteusVerifiedIcon(contentDescriptionId = R.string.content_description_proteus_certificate_valid) + } + } - is Conversation.ProtocolInfo.Proteus, is Conversation.ProtocolInfo.Mixed -> - R.drawable.ic_certificate_valid_proteus to R.string.content_description_proteus_certificate_valid + if (protocolInfo is Conversation.ProtocolInfo.Proteus) { + proteusIcon() + mlsIcon() + } else { + mlsIcon() + proteusIcon() } - Image( - modifier = Modifier.padding(start = dimensions().spacing4x), - painter = painterResource(id = iconId), - contentDescription = stringResource(contentDescriptionId) - ) } @Composable @@ -371,3 +385,30 @@ fun PreviewConversationScreenTopAppBarShortTitleWithOngoingCall() { isSearchEnabled = false ) } + +@Preview("Topbar with a short conversation title and verified") +@Composable +fun PreviewConversationScreenTopAppBarShortTitleWithVerified() { + val conversationId = QualifiedID("", "") + ConversationScreenTopAppBarContent( + ConversationInfoViewState( + conversationId = ConversationId("value", "domain"), + conversationName = UIText.DynamicString("Short title"), + conversationDetailsData = ConversationDetailsData.Group(conversationId), + conversationAvatar = ConversationAvatar.Group(conversationId), + protocolInfo = Conversation.ProtocolInfo.Proteus, + proteusVerificationStatus = Conversation.VerificationStatus.VERIFIED, + mlsVerificationStatus = Conversation.VerificationStatus.VERIFIED + ), + onBackButtonClick = {}, + onDropDownClick = {}, + isDropDownEnabled = true, + onSearchButtonClick = {}, + onPhoneButtonClick = {}, + hasOngoingCall = false, + onJoinCallButtonClick = {}, + onPermanentPermissionDecline = {}, + isInteractionEnabled = true, + isSearchEnabled = false + ) +} diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsScreen.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsScreen.kt index 8afbbb5944b..73e2350db24 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsScreen.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsScreen.kt @@ -26,6 +26,9 @@ import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.LocalOverscrollConfiguration +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListState @@ -35,6 +38,7 @@ import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect @@ -47,10 +51,12 @@ import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.hilt.navigation.compose.hiltViewModel import com.ramcosta.composedestinations.annotation.Destination @@ -64,7 +70,9 @@ import com.wire.android.navigation.NavigationCommand import com.wire.android.navigation.Navigator import com.wire.android.navigation.style.PopUpNavigationAnimation import com.wire.android.ui.common.CollapsingTopBarScaffold +import com.wire.android.ui.common.MLSVerifiedIcon import com.wire.android.ui.common.MoreOptionIcon +import com.wire.android.ui.common.ProteusVerifiedIcon import com.wire.android.ui.common.TabItem import com.wire.android.ui.common.WireTabRow import com.wire.android.ui.common.bottomsheet.WireModalSheetLayout @@ -73,10 +81,12 @@ import com.wire.android.ui.common.bottomsheet.conversation.rememberConversationS import com.wire.android.ui.common.bottomsheet.rememberWireModalSheetState import com.wire.android.ui.common.calculateCurrentTab import com.wire.android.ui.common.dialogs.ArchiveConversationDialog +import com.wire.android.ui.common.dimensions import com.wire.android.ui.common.snackbar.LocalSnackbarHostState import com.wire.android.ui.common.topBarElevation import com.wire.android.ui.common.topappbar.NavigationIconType import com.wire.android.ui.common.topappbar.WireCenterAlignedTopAppBar +import com.wire.android.ui.common.topappbar.WireTopAppBarTitle import com.wire.android.ui.common.visbility.rememberVisibilityState import com.wire.android.ui.destinations.AddMembersSearchScreenDestination import com.wire.android.ui.destinations.EditConversationNameScreenDestination @@ -84,6 +94,7 @@ import com.wire.android.ui.destinations.EditGuestAccessScreenDestination import com.wire.android.ui.destinations.EditSelfDeletingMessagesScreenDestination import com.wire.android.ui.destinations.GroupConversationAllParticipantsScreenDestination import com.wire.android.ui.destinations.OtherUserProfileScreenDestination +import com.wire.android.ui.destinations.SearchConversationMessagesScreenDestination import com.wire.android.ui.destinations.SelfUserProfileScreenDestination import com.wire.android.ui.destinations.ServiceDetailsScreenDestination import com.wire.android.ui.home.conversations.details.dialog.ClearConversationContentDialog @@ -97,11 +108,12 @@ import com.wire.android.ui.home.conversations.details.participants.GroupConversa import com.wire.android.ui.home.conversations.details.participants.model.UIParticipant import com.wire.android.ui.home.conversationslist.model.DialogState import com.wire.android.ui.home.conversationslist.model.GroupDialogState -import com.wire.android.ui.destinations.SearchConversationMessagesScreenDestination import com.wire.android.ui.theme.WireTheme import com.wire.android.ui.theme.wireColorScheme import com.wire.android.ui.theme.wireDimensions +import com.wire.android.ui.theme.wireTypography import com.wire.android.util.ui.UIText +import com.wire.kalium.logic.data.conversation.Conversation import kotlinx.coroutines.launch @RootNavGraph @@ -303,7 +315,14 @@ private fun GroupConversationDetailsContent( topBarHeader = { WireCenterAlignedTopAppBar( elevation = elevationState, - title = stringResource(R.string.conversation_details_title), + titleContent = { + WireTopAppBarTitle( + title = stringResource(R.string.conversation_details_title), + style = MaterialTheme.wireTypography.title01, + maxLines = 2 + ) + VerificationInfo(conversationSheetContent) + }, navigationIconType = NavigationIconType.Close, onNavigationPressed = onBackPressed, actions = { MoreOptionIcon(onButtonClicked = openBottomSheet) } @@ -446,6 +465,59 @@ private fun GroupConversationDetailsContent( ) } +@Composable +private fun VerificationInfo(conversationSheetContent: ConversationSheetContent?) { + if (conversationSheetContent == null) return + + val isProteusVerified = conversationSheetContent.proteusVerificationStatus == Conversation.VerificationStatus.VERIFIED + val isMlsVerified = conversationSheetContent.mlsVerificationStatus == Conversation.VerificationStatus.VERIFIED + val isProteusProtocol = conversationSheetContent.protocol == Conversation.ProtocolInfo.Proteus + + if (isProteusVerified && (isProteusProtocol || !isMlsVerified)) { + ProteusVerifiedLabel() + } else if (isMlsVerified) { + MLSVerifiedLabel() + } +} + +@Composable +private fun MLSVerifiedLabel() { + VerifiedLabel( + stringResource(id = R.string.label_conversations_details_verified_mls).uppercase(), + MaterialTheme.wireColorScheme.mlsVerificationTextColor + ) { MLSVerifiedIcon() } +} + +@Composable +private fun ProteusVerifiedLabel() { + VerifiedLabel( + stringResource(id = R.string.label_conversations_details_verified_proteus).uppercase(), + MaterialTheme.wireColorScheme.primary + ) { ProteusVerifiedIcon() } +} + +@Composable +private fun VerifiedLabel(text: String, color: Color, icon: @Composable RowScope.() -> Unit = {}) { + Row( + modifier = Modifier + .padding(top = dimensions().spacing4x) + .fillMaxWidth(), + horizontalArrangement = Arrangement.Center + ) { + Text( + modifier = Modifier.padding( + start = dimensions().spacing6x, + end = dimensions().spacing6x + ), + text = text, + style = MaterialTheme.wireTypography.label01, + color = color, + overflow = TextOverflow.Ellipsis + ) + icon() + } +} + enum class GroupConversationDetailsTabItem(@StringRes override val titleResId: Int) : TabItem { OPTIONS(R.string.conversation_details_options_tab), PARTICIPANTS(R.string.conversation_details_participants_tab); diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsViewModel.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsViewModel.kt index 3edc0dec77f..c86b4087e48 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsViewModel.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/details/GroupConversationDetailsViewModel.kt @@ -150,7 +150,10 @@ class GroupConversationDetailsViewModel @Inject constructor( conversationTypeDetail = ConversationTypeDetail.Group(conversationId, groupDetails.isSelfUserCreator), isTeamConversation = groupDetails.conversation.teamId?.value != null, selfRole = groupDetails.selfRole, - isArchived = groupDetails.conversation.archived + isArchived = groupDetails.conversation.archived, + protocol = groupDetails.conversation.protocol, + mlsVerificationStatus = groupDetails.conversation.mlsVerificationStatus, + proteusVerificationStatus = groupDetails.conversation.proteusVerificationStatus ) val isGuestAllowed = groupDetails.conversation.isGuestAllowed() || groupDetails.conversation.isNonTeamMemberAllowed() val isUpdatingReadReceiptAllowed = if (selfTeam == null) { 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 dc6cdd4f606..3ef82c796bd 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 @@ -118,7 +118,8 @@ class ConversationInfoViewModel @Inject constructor( hasUserPermissionToEdit = detailsData !is ConversationDetailsData.None, conversationType = conversationDetails.conversation.type, protocolInfo = conversationDetails.conversation.protocol, - verificationStatus = conversationDetails.conversation.verificationStatus + mlsVerificationStatus = conversationDetails.conversation.mlsVerificationStatus, + proteusVerificationStatus = conversationDetails.conversation.proteusVerificationStatus ) } 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 b8b11cc394f..de4822c984d 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 @@ -36,7 +36,8 @@ data class ConversationInfoViewState( val hasUserPermissionToEdit: Boolean = false, val conversationType: Conversation.Type = Conversation.Type.ONE_ON_ONE, val protocolInfo: Conversation.ProtocolInfo? = null, - val verificationStatus: Conversation.VerificationStatus? = null, + val mlsVerificationStatus: Conversation.VerificationStatus? = null, + val proteusVerificationStatus: Conversation.VerificationStatus? = null, ) sealed class ConversationDetailsData { diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/model/UIMessage.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/model/UIMessage.kt index a94f18ef75c..eea235af9fc 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/model/UIMessage.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/model/UIMessage.kt @@ -193,6 +193,8 @@ sealed class UILastMessageContent { data class MultipleMessage(val messages: List, val separator: String = " ") : UILastMessageContent() data class Connection(val connectionState: ConnectionState, val userId: UserId) : UILastMessageContent() + + data class VerificationChanged(@StringRes val textResId: Int) : UILastMessageContent() } sealed class UIMessageContent { @@ -468,7 +470,8 @@ sealed class UIMessageContent { data class ConversationDegraded(val protocol: Conversation.Protocol) : SystemMessage( if (protocol == Conversation.Protocol.MLS) R.drawable.ic_conversation_degraded_mls else R.drawable.ic_shield_holo, - R.string.label_system_message_conversation_degraded + if (protocol == Conversation.Protocol.MLS) R.string.label_system_message_conversation_degraded_mls + else R.string.label_system_message_conversation_degraded_proteus ) data class ConversationVerified(val protocol: Conversation.Protocol) : SystemMessage( diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModel.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModel.kt index 59b418cf1cf..a10b1ca9c2c 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModel.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModel.kt @@ -492,7 +492,9 @@ private fun ConversationDetails.toConversationItem( isSelfUserMember = isSelfUserMember, teamId = conversation.teamId, selfMemberRole = selfRole, - isArchived = conversation.archived + isArchived = conversation.archived, + mlsVerificationStatus = conversation.mlsVerificationStatus, + proteusVerificationStatus = conversation.proteusVerificationStatus ) } @@ -523,7 +525,9 @@ private fun ConversationDetails.toConversationItem( userId = otherUser.id, blockingState = otherUser.BlockState, teamId = otherUser.teamId, - isArchived = conversation.archived + isArchived = conversation.archived, + mlsVerificationStatus = conversation.mlsVerificationStatus, + proteusVerificationStatus = conversation.proteusVerificationStatus ) } diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/common/ConversationItemFactory.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/common/ConversationItemFactory.kt index 19f18bd8d87..aef200a5964 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/common/ConversationItemFactory.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/common/ConversationItemFactory.kt @@ -32,6 +32,8 @@ import com.wire.android.R import com.wire.android.model.Clickable import com.wire.android.model.UserAvatarData import com.wire.android.ui.calling.controlbuttons.JoinButton +import com.wire.android.ui.common.MLSVerifiedIcon +import com.wire.android.ui.common.ProteusVerifiedIcon import com.wire.android.ui.common.RowItemTemplate import com.wire.android.ui.common.WireRadioButton import com.wire.android.ui.common.colorsScheme @@ -45,6 +47,7 @@ import com.wire.android.ui.home.conversationslist.model.ConversationInfo import com.wire.android.ui.home.conversationslist.model.ConversationItem import com.wire.android.ui.home.conversationslist.model.toUserInfoLabel import com.wire.android.util.ui.UIText +import com.wire.kalium.logic.data.conversation.Conversation import com.wire.kalium.logic.data.conversation.MutedConversationStatus import com.wire.kalium.logic.data.id.ConversationId import com.wire.kalium.logic.data.id.QualifiedID @@ -98,6 +101,8 @@ fun ConversationItemFactory( ) is UILastMessageContent.Connection -> ConnectionLabel(connectionInfo = messageContent) + is UILastMessageContent.VerificationChanged -> LastMessageSubtitle(UIText.StringResource(messageContent.textResId)) + else -> {} } } @@ -110,6 +115,7 @@ fun ConversationItemFactory( ) } +@Suppress("ComplexMethod") @Composable private fun GeneralConversationItem( searchQuery: String, @@ -140,7 +146,15 @@ private fun GeneralConversationItem( ConversationTitle( name = groupName.ifEmpty { stringResource(id = R.string.member_name_deleted_label) }, isLegalHold = conversation.isLegalHold, - searchQuery = searchQuery + searchQuery = searchQuery, + badges = { + if (proteusVerificationStatus == Conversation.VerificationStatus.VERIFIED) { + ProteusVerifiedIcon(contentDescriptionId = R.string.content_description_proteus_certificate_valid) + } + if (mlsVerificationStatus == Conversation.VerificationStatus.VERIFIED) { + MLSVerifiedIcon(contentDescriptionId = R.string.content_description_mls_certificate_valid) + } + } ) }, subTitle = subTitle, @@ -245,7 +259,9 @@ fun PreviewGroupConversationItemWithUnreadCount() { badgeEventType = BadgeEventType.UnreadMessage(100), selfMemberRole = null, teamId = null, - isArchived = false + isArchived = false, + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ), searchQuery = "", isSelectableItem = false, @@ -268,7 +284,9 @@ fun PreviewGroupConversationItemWithNoBadges() { badgeEventType = BadgeEventType.None, selfMemberRole = null, teamId = null, - isArchived = false + isArchived = false, + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ), searchQuery = "", isSelectableItem = false, @@ -291,7 +309,9 @@ fun PreviewGroupConversationItemWithMutedBadgeAndUnreadMentionBadge() { badgeEventType = BadgeEventType.UnreadMention, selfMemberRole = null, teamId = null, - isArchived = false + isArchived = false, + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ), searchQuery = "", isSelectableItem = false, @@ -315,7 +335,9 @@ fun PreviewGroupConversationItemWithOngoingCall() { selfMemberRole = null, teamId = null, hasOnGoingCall = true, - isArchived = false + isArchived = false, + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ), searchQuery = "", isSelectableItem = false, @@ -376,7 +398,9 @@ fun PreviewPrivateConversationItemWithBlockedBadge() { blockingState = BlockingState.BLOCKED, teamId = null, userId = UserId("value", "domain"), - isArchived = false + isArchived = false, + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ), searchQuery = "", isSelectableItem = false, diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/common/UserLabel.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/common/UserLabel.kt index 42034edf2ce..dd134bf1125 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/common/UserLabel.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/common/UserLabel.kt @@ -27,9 +27,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.wire.android.R +import com.wire.android.ui.common.MLSVerifiedIcon import com.wire.android.ui.common.MembershipQualifierLabel +import com.wire.android.ui.common.ProteusVerifiedIcon import com.wire.android.ui.home.conversationslist.model.Membership import com.wire.android.ui.home.conversationslist.model.hasLabel +import com.wire.kalium.logic.data.conversation.Conversation @Composable fun UserLabel( @@ -47,6 +50,12 @@ fun UserLabel( Spacer(modifier = Modifier.width(6.dp)) MembershipQualifierLabel(membership) } + if (proteusVerificationStatus == Conversation.VerificationStatus.VERIFIED) { + ProteusVerifiedIcon(contentDescriptionId = R.string.content_description_proteus_certificate_valid) + } + if (mlsVerificationStatus == Conversation.VerificationStatus.VERIFIED) { + MLSVerifiedIcon(contentDescriptionId = R.string.content_description_mls_certificate_valid) + } }, searchQuery = searchQuery ) @@ -57,5 +66,7 @@ data class UserInfoLabel( val labelName: String, val isLegalHold: Boolean, val membership: Membership, - val unavailable: Boolean = false + val unavailable: Boolean = false, + val proteusVerificationStatus: Conversation.VerificationStatus? = null, + val mlsVerificationStatus: Conversation.VerificationStatus? = null, ) diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/model/ConversationItem.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/model/ConversationItem.kt index be72a99c490..eef09b9ad42 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/model/ConversationItem.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversationslist/model/ConversationItem.kt @@ -40,6 +40,8 @@ sealed class ConversationItem { abstract val badgeEventType: BadgeEventType abstract val teamId: TeamId? abstract val isArchived: Boolean + abstract val mlsVerificationStatus: Conversation.VerificationStatus + abstract val proteusVerificationStatus: Conversation.VerificationStatus val isTeamConversation get() = teamId != null @@ -56,6 +58,8 @@ sealed class ConversationItem { override val badgeEventType: BadgeEventType, override val teamId: TeamId?, override val isArchived: Boolean, + override val mlsVerificationStatus: Conversation.VerificationStatus, + override val proteusVerificationStatus: Conversation.VerificationStatus ) : ConversationItem() data class PrivateConversation( @@ -69,7 +73,9 @@ sealed class ConversationItem { override val lastMessageContent: UILastMessageContent?, override val badgeEventType: BadgeEventType, override val teamId: TeamId?, - override val isArchived: Boolean + override val isArchived: Boolean, + override val mlsVerificationStatus: Conversation.VerificationStatus, + override val proteusVerificationStatus: Conversation.VerificationStatus ) : ConversationItem() data class ConnectionConversation( @@ -83,6 +89,8 @@ sealed class ConversationItem { override val isArchived: Boolean = false, ) : ConversationItem() { override val teamId: TeamId? = null + override val mlsVerificationStatus: Conversation.VerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + override val proteusVerificationStatus: Conversation.VerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED } } @@ -111,7 +119,9 @@ fun ConversationItem.PrivateConversation.toUserInfoLabel() = labelName = conversationInfo.name, isLegalHold = isLegalHold, membership = conversationInfo.membership, - unavailable = conversationInfo.isSenderUnavailable + unavailable = conversationInfo.isSenderUnavailable, + mlsVerificationStatus = mlsVerificationStatus, + proteusVerificationStatus = proteusVerificationStatus ) fun ConversationItem.ConnectionConversation.toUserInfoLabel() = diff --git a/app/src/main/kotlin/com/wire/android/ui/settings/devices/DeviceDetailsScreen.kt b/app/src/main/kotlin/com/wire/android/ui/settings/devices/DeviceDetailsScreen.kt index d39f063fdc2..7c9e635c788 100644 --- a/app/src/main/kotlin/com/wire/android/ui/settings/devices/DeviceDetailsScreen.kt +++ b/app/src/main/kotlin/com/wire/android/ui/settings/devices/DeviceDetailsScreen.kt @@ -264,7 +264,7 @@ private fun DeviceDetailsTopBar( maxLines = 2 ) if (!isCurrentDevice && device.isVerifiedProteus) { - ProteusVerifiedIcon() + ProteusVerifiedIcon(Modifier.align(Alignment.CenterVertically)) } } } diff --git a/app/src/main/kotlin/com/wire/android/ui/sharing/ImportMediaAuthenticatedViewModel.kt b/app/src/main/kotlin/com/wire/android/ui/sharing/ImportMediaAuthenticatedViewModel.kt index e76814f5cfb..249d644cede 100644 --- a/app/src/main/kotlin/com/wire/android/ui/sharing/ImportMediaAuthenticatedViewModel.kt +++ b/app/src/main/kotlin/com/wire/android/ui/sharing/ImportMediaAuthenticatedViewModel.kt @@ -192,7 +192,9 @@ class ImportMediaAuthenticatedViewModel @Inject constructor( isSelfUserMember = isSelfUserMember, teamId = conversation.teamId, selfMemberRole = selfRole, - isArchived = conversation.archived + isArchived = conversation.archived, + mlsVerificationStatus = conversation.mlsVerificationStatus, + proteusVerificationStatus = conversation.proteusVerificationStatus ) } @@ -228,7 +230,9 @@ class ImportMediaAuthenticatedViewModel @Inject constructor( userId = otherUser.id, blockingState = otherUser.BlockState, teamId = otherUser.teamId, - isArchived = conversation.archived + isArchived = conversation.archived, + mlsVerificationStatus = conversation.mlsVerificationStatus, + proteusVerificationStatus = conversation.proteusVerificationStatus ) } diff --git a/app/src/main/kotlin/com/wire/android/ui/theme/WireColorScheme.kt b/app/src/main/kotlin/com/wire/android/ui/theme/WireColorScheme.kt index 1f06d347cdc..6811c2e7f7e 100644 --- a/app/src/main/kotlin/com/wire/android/ui/theme/WireColorScheme.kt +++ b/app/src/main/kotlin/com/wire/android/ui/theme/WireColorScheme.kt @@ -104,6 +104,7 @@ data class WireColorScheme( val scrollToBottomButtonColor: Color, val onScrollToBottomButtonColor: Color, val validE2eiStatusColor: Color, + val mlsVerificationTextColor: Color, ) { fun toColorScheme(): ColorScheme = ColorScheme( primary = primary, @@ -238,6 +239,7 @@ private val LightWireColorScheme = WireColorScheme( scrollToBottomButtonColor = WireColorPalette.Gray70, onScrollToBottomButtonColor = Color.White, validE2eiStatusColor = WireColorPalette.LightGreen550, + mlsVerificationTextColor = WireColorPalette.DarkGreen700 ) // Dark WireColorScheme @@ -346,6 +348,7 @@ private val DarkWireColorScheme = WireColorScheme( scrollToBottomButtonColor = WireColorPalette.Gray60, onScrollToBottomButtonColor = Color.Black, validE2eiStatusColor = WireColorPalette.DarkGreen550, + mlsVerificationTextColor = WireColorPalette.DarkGreen700 ) @PackagePrivate diff --git a/app/src/main/kotlin/com/wire/android/ui/userprofile/other/OtherUserProfileScreenViewModel.kt b/app/src/main/kotlin/com/wire/android/ui/userprofile/other/OtherUserProfileScreenViewModel.kt index db4af6fdfe9..22bdbdc652c 100644 --- a/app/src/main/kotlin/com/wire/android/ui/userprofile/other/OtherUserProfileScreenViewModel.kt +++ b/app/src/main/kotlin/com/wire/android/ui/userprofile/other/OtherUserProfileScreenViewModel.kt @@ -386,7 +386,10 @@ class OtherUserProfileScreenViewModel @Inject constructor( ), isTeamConversation = conversation.isTeamGroup(), selfRole = Conversation.Member.Role.Member, - isArchived = conversation.archived + isArchived = conversation.archived, + protocol = conversation.protocol, + mlsVerificationStatus = conversation.mlsVerificationStatus, + proteusVerificationStatus = conversation.proteusVerificationStatus ) } ) diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml index 39999a6376e..0c0cae718bd 100644 --- a/app/src/main/res/values-af/strings.xml +++ b/app/src/main/res/values-af/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index e8d45d64096..53d34e3b335 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -597,7 +597,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 109ee050226..5d24aa54920 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 39999a6376e..0c0cae718bd 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 7f78a072c11..d2e56b12c56 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -593,7 +593,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 39999a6376e..0c0cae718bd 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7aa3218c54e..74c74aad2ce 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -590,7 +590,7 @@ %1$s **Teilnehmer** konnten der Gruppe nicht hinzugefügt werden. %1$s konnten der Gruppe nicht hinzugefügt werden. %1$s konnte der Gruppe nicht hinzugefügt werden. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 39999a6376e..0c0cae718bd 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 60c2f2eb786..a18a2337682 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -587,7 +587,7 @@ Hasta 500 personas pueden unirse a una conversación en grupo. %1$s **participants** could not be added to the group. %1$s no pudieron ser añadidos a la conversación. %1$s no pudo ser añadido a la conversación. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index ddfa543a5b3..94fd65f80a4 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 109ee050226..5d24aa54920 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 39999a6376e..0c0cae718bd 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 2d3a72e70ba..7cdd6b8822f 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -578,7 +578,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 240af6cb17c..c3e583b9d16 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -593,7 +593,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 109ee050226..5d24aa54920 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 826b3377474..3d4c79ffb99 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -585,7 +585,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 188d7310541..7eb3b8d911e 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -589,7 +589,7 @@ %1$s **résztvevőket** nem sikerült hozzáadni a csoporthoz. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index b6375f34ee7..fcd9ef822a9 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -587,7 +587,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 56abf9440ed..984cc48d773 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -587,7 +587,7 @@ Fino a 500 persone possono unirsi a una conversazione di gruppo. %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 1cdf54afb67..129c6204400 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -587,7 +587,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 1cdf54afb67..129c6204400 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -587,7 +587,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 0634c2d468c..d8e03f4c744 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -593,7 +593,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 109ee050226..5d24aa54920 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 39999a6376e..0c0cae718bd 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml index 39999a6376e..0c0cae718bd 100644 --- a/app/src/main/res/values-no/strings.xml +++ b/app/src/main/res/values-no/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index 109ee050226..5d24aa54920 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 1c2772760ea..ab8be0a63ad 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -593,7 +593,7 @@ Do grupy może dołączyć maksymalnie 500 osób. %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index e3fcc4f3398..375bddc88c5 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -588,7 +588,7 @@ Até 500 pessoas podem participar de uma conversa em grupo. %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index ecb7160d0d5..424fe7ef390 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -591,7 +591,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index ae990370859..9b24bbe051d 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -593,7 +593,7 @@ Не удалось добавить в группу %1$s **участников**. Не удалось добавить %1$s в группу. Не удалось добавить %1$s в группу. - Эта беседа больше не верифицируется, так как кто-то из пользователей использует по крайней мере одно устройство без действительного сертификата сквозной идентификации. + Эта беседа больше не верифицируется, так как кто-то из пользователей использует по крайней мере одно устройство без действительного сертификата сквозной идентификации. Все устройства верифицированы (сквозная идентификация) Все отпечатки верифицированы (Proteus) diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index f2cb92e9a70..5be28b47260 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -579,7 +579,7 @@ **සහභාගීන්** %1$s ක් සමූහයට එක් කිරීමට නොහැකි විය. %1$s දෙනෙක් සමූහයට එක් කිරීමට නොහැකි විය. %1$s දෙනෙක් සමූහයට එක් කිරීමට නොහැකි විය. - ඇතැම් පරිශ්‍රීලකයින් වලංගු අන්ත අනන්‍යතා සහතිකයක් නැතිව අවම වශයෙන් එක් උපාංගයක් භාවිතා කරන බැවින් මෙම සංවාදය තවදුරටත් සත්‍යාපිත නොවේ. + ඇතැම් පරිශ්‍රීලකයින් වලංගු අන්ත අනන්‍යතා සහතිකයක් නැතිව අවම වශයෙන් එක් උපාංගයක් භාවිතා කරන බැවින් මෙම සංවාදය තවදුරටත් සත්‍යාපිත නොවේ. සියලු උපාංග සත්‍යාපිතයි (අන්ත අනන්‍යතාව) සියලු ඇඟිලි සටහන් සත්‍යාපිතයි (ප්‍රෝතියස්) diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 872f9ce6950..c97cab9970c 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -593,7 +593,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 909f267e803..da9dc9ab421 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -593,7 +593,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index ecb7160d0d5..424fe7ef390 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -591,7 +591,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 650275c6a28..44dc6b8281e 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 1c1afc9d28f..99126c42070 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -589,7 +589,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c82967628b6..bf372c93951 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -593,7 +593,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 1cdf54afb67..129c6204400 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -587,7 +587,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index b6375f34ee7..fcd9ef822a9 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -587,7 +587,7 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b042a16d8fe..42c28663049 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -616,10 +616,13 @@ %1$s **participants** could not be added to the group. %1$s could not be added to the group. %1$s could not be added to the group. - This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. + This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate. All devices are verified (end-to-end identity) All fingerprints are verified (Proteus) Communication in Wire is always end-to-end encrypted. Everything you send and receive in this conversation is only accessible to you and other group participants.\n**Please still be careful with who you share sensitive information.** + Verified (Proteus) + Verified (End-to-end Identity) You added 1 person to the conversation @@ -667,6 +670,10 @@ left the conversation. joined the conversation. left the conversation. + All device fingerprints are verified (Proteus) + All devices are verified (End-to-end Identity) + Conversation is no longer verified + Conversation is no longer verified %1$d ping 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 3d44a0c7878..01af3d57d03 100644 --- a/app/src/test/kotlin/com/wire/android/framework/TestConversation.kt +++ b/app/src/test/kotlin/com/wire/android/framework/TestConversation.kt @@ -52,7 +52,8 @@ object TestConversation { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) val SELF = Conversation( ID.copy(value = "SELF ID"), @@ -73,7 +74,8 @@ object TestConversation { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) fun GROUP(protocolInfo: ProtocolInfo = ProtocolInfo.Proteus) = Conversation( @@ -95,7 +97,8 @@ object TestConversation { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) fun one_on_one(convId: ConversationId) = Conversation( @@ -117,7 +120,8 @@ object TestConversation { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) val USER_1 = UserId("member1", "domainMember") @@ -146,6 +150,7 @@ object TestConversation { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = 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 5a797ebce72..fe0d6b98338 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 @@ -419,7 +419,10 @@ class GroupConversationDetailsViewModelTest { conversationTypeDetail = ConversationTypeDetail.Group(details.conversation.id, details.isSelfUserCreator), selfRole = Conversation.Member.Role.Member, isTeamConversation = details.conversation.isTeamGroup(), - isArchived = false + isArchived = false, + protocol = Conversation.ProtocolInfo.Proteus, + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) // When - Then assertEquals(expected, viewModel.conversationSheetContent) @@ -589,7 +592,8 @@ class GroupConversationDetailsViewModelTest { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ), legalHoldStatus = LegalHoldStatus.DISABLED, hasOngoingCall = false, 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 cc73a66a62c..0d10563c47b 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 @@ -233,8 +233,8 @@ class ConversationInfoViewModelTest { viewModel.conversationInfoViewState.protocolInfo ) assertEquals( - groupConversationDetails.conversation.verificationStatus, - viewModel.conversationInfoViewState.verificationStatus + groupConversationDetails.conversation.mlsVerificationStatus, + viewModel.conversationInfoViewState.mlsVerificationStatus ) cancel() } @@ -257,8 +257,8 @@ class ConversationInfoViewModelTest { viewModel.conversationInfoViewState.protocolInfo ) assertEquals( - groupConversationDetails.conversation.verificationStatus, - viewModel.conversationInfoViewState.verificationStatus + groupConversationDetails.conversation.mlsVerificationStatus, + viewModel.conversationInfoViewState.mlsVerificationStatus ) cancel() } @@ -281,8 +281,8 @@ class ConversationInfoViewModelTest { viewModel.conversationInfoViewState.protocolInfo ) assertEquals( - groupConversationDetails.conversation.verificationStatus, - viewModel.conversationInfoViewState.verificationStatus + groupConversationDetails.conversation.mlsVerificationStatus, + viewModel.conversationInfoViewState.mlsVerificationStatus ) cancel() } @@ -302,7 +302,7 @@ class ConversationInfoViewModelTest { ) assertEquals( null, - viewModel.conversationInfoViewState.verificationStatus + viewModel.conversationInfoViewState.mlsVerificationStatus ) } diff --git a/app/src/test/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModelTest.kt b/app/src/test/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModelTest.kt index e74e5b3a7d7..1de57abc136 100644 --- a/app/src/test/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModelTest.kt +++ b/app/src/test/kotlin/com/wire/android/ui/home/conversationslist/ConversationListViewModelTest.kt @@ -42,6 +42,7 @@ import com.wire.android.ui.home.conversationslist.model.DialogState import com.wire.android.ui.home.conversationslist.model.Membership import com.wire.android.util.orDefault import com.wire.android.util.ui.WireSessionImageLoader +import com.wire.kalium.logic.data.conversation.Conversation import com.wire.kalium.logic.data.conversation.MutedConversationStatus import com.wire.kalium.logic.data.id.ConversationId import com.wire.kalium.logic.data.user.UserId @@ -406,7 +407,9 @@ class ConversationListViewModelTest { userId = userId, blockingState = BlockingState.CAN_NOT_BE_BLOCKED, teamId = null, - isArchived = false + isArchived = false, + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) } } 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 50eb8b96de6..e59862ddd9e 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 @@ -305,7 +305,8 @@ class MediaGalleryViewModelTest { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = 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 3976b38b2a6..f3359c3a3df 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 @@ -159,7 +159,8 @@ internal class NewConversationViewModelArrangement { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = 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 b2563e5e7f7..61aa56606fa 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 @@ -247,7 +247,8 @@ class OtherUserProfileScreenViewModelTest { userMessageTimer = null, archived = false, archivedDateTime = null, - verificationStatus = Conversation.VerificationStatus.NOT_VERIFIED + mlsVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED, + proteusVerificationStatus = Conversation.VerificationStatus.NOT_VERIFIED ) val CONVERSATION_ROLE_DATA = ConversationRoleData( "some_name", diff --git a/kalium b/kalium index 290418d9b92..07301bd8a12 160000 --- a/kalium +++ b/kalium @@ -1 +1 @@ -Subproject commit 290418d9b924aae4480617720fb678857cb77bf7 +Subproject commit 07301bd8a120b930e057a94c1d80fb99e9edc16f