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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions app/src/main/kotlin/com/wire/android/di/CoreLogicModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import com.wire.kalium.logic.feature.auth.LogoutUseCase
import com.wire.kalium.logic.feature.auth.sso.ValidateSSOCodeUseCase
import com.wire.kalium.logic.feature.connection.BlockUserUseCase
import com.wire.kalium.logic.feature.connection.UnblockUserUseCase
import com.wire.kalium.logic.feature.conversation.GetConversationEpochUseCase
import com.wire.kalium.logic.feature.conversation.ObserveOtherUserSecurityClassificationLabelUseCase
import com.wire.kalium.logic.feature.conversation.ObserveSecurityClassificationLabelUseCase
import com.wire.kalium.logic.feature.e2ei.usecase.FetchConversationMLSVerificationStatusUseCase
Expand Down Expand Up @@ -489,4 +490,11 @@ class UseCaseModule {
@KaliumCoreLogic coreLogic: CoreLogic,
@CurrentAccount currentAccount: UserId
) = coreLogic.getSessionScope(currentAccount).getTeamUrlUseCase

@ViewModelScoped
@Provides
fun provideGetConversationEpochUseCase(
@KaliumCoreLogic coreLogic: CoreLogic,
@CurrentAccount currentAccount: UserId
): GetConversationEpochUseCase = coreLogic.getSessionScope(currentAccount).getConversationEpochUseCase
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ fun DebugConversationScreen(

state.mlsProtocolInfo?.let {
SectionHeader("MLS")
MlsDetailsView(it)
MlsDetailsView(it, state.epoch)
}

SectionHeader("Actions")
Expand Down Expand Up @@ -205,7 +205,7 @@ private fun ConversationDetailsView(state: DebugConversationViewState) {
}

@Composable
private fun MlsDetailsView(mlsProtocolInfo: Conversation.ProtocolInfo.MLS) {
private fun MlsDetailsView(mlsProtocolInfo: Conversation.ProtocolInfo.MLS, epoch: ULong?) {

val clipboard = LocalClipboardManager.current

Expand All @@ -228,7 +228,7 @@ private fun MlsDetailsView(mlsProtocolInfo: Conversation.ProtocolInfo.MLS) {
)
SettingsItem(
title = "Epoch",
text = mlsProtocolInfo.epoch.toString(),
text = epoch.toString(),
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import com.wire.kalium.logic.data.conversation.Conversation
import com.wire.kalium.logic.data.conversation.FetchConversationUseCase
import com.wire.kalium.logic.data.conversation.ResetMLSConversationUseCase
import com.wire.kalium.logic.feature.conversation.GetConversationEpochUseCase
import com.wire.kalium.logic.feature.conversation.ObserveConversationDetailsUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
Expand All @@ -40,6 +41,7 @@
private val conversationDetails: ObserveConversationDetailsUseCase,
private val resetMLSConversation: ResetMLSConversationUseCase,
private val fetchConversation: FetchConversationUseCase,
private val getConversationEpoch: GetConversationEpochUseCase,

Check warning on line 44 in app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt

View check run for this annotation

Codecov / codecov/patch

app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt#L44

Added line #L44 was not covered by tests
savedStateHandle: SavedStateHandle,
) : ActionsViewModel<DebugConversationScreenAction>() {

Expand All @@ -66,6 +68,19 @@
mlsProtocolInfo = result.conversationDetails.conversation.protocol as? Conversation.ProtocolInfo.MLS,
)
}

// Call conversation epoch with the group id on every emit
(result.conversationDetails.conversation.protocol as? Conversation.ProtocolInfo.MLS)?.groupId?.let { groupId ->
when (val epochResult = getConversationEpoch(groupId)) {

Check warning on line 74 in app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt

View check run for this annotation

Codecov / codecov/patch

app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt#L74

Added line #L74 was not covered by tests
is GetConversationEpochUseCase.Result.Success -> {
_state.update { it.copy(epoch = epochResult.epoch) }

Check warning on line 76 in app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt

View check run for this annotation

Codecov / codecov/patch

app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt#L76

Added line #L76 was not covered by tests
}

is GetConversationEpochUseCase.Result.Failure -> {
appLogger.e("Failed to get conversation epoch: ${epochResult.coreFailure}")

Check warning on line 80 in app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt

View check run for this annotation

Codecov / codecov/patch

app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt#L80

Added line #L80 was not covered by tests
}
}
}
}
}
}
Expand Down Expand Up @@ -99,4 +114,5 @@
val conversationName: String? = null,
val teamId: String? = null,
val mlsProtocolInfo: Conversation.ProtocolInfo.MLS? = null,
val epoch: ULong? = null,

Check warning on line 117 in app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt

View check run for this annotation

Codecov / codecov/patch

app/src/main/kotlin/com/wire/android/ui/debug/conversation/DebugConversationViewModel.kt#L117

Added line #L117 was not covered by tests
)
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,6 @@ private val StateAdmin = StateMember.copy(
private val ProtocolInfoMLS = Conversation.ProtocolInfo.MLS(
groupId = GroupID("groupId"),
groupState = Conversation.ProtocolInfo.MLSCapable.GroupState.ESTABLISHED,
epoch = ULong.MIN_VALUE,
keyingMaterialLastUpdate = Instant.fromEpochMilliseconds(1648654560000),
cipherSuite = CipherSuite.MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,6 @@ object TestConversation {
val MLS_PROTOCOL_INFO = ProtocolInfo.MLS(
GROUP_ID,
ProtocolInfo.MLSCapable.GroupState.PENDING_JOIN,
0UL,
Instant.parse("2021-03-30T15:36:00.000Z"),
cipherSuite = CipherSuite.MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,6 @@ class SearchUserViewModelTest {
val mlsProtocol = Conversation.ProtocolInfo.MLS(
GroupID("s"),
Conversation.ProtocolInfo.MLSCapable.GroupState.PENDING_CREATION,
0UL,
Instant.parse("2021-03-30T15:36:00.000Z"),
cipherSuite = CipherSuite.MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519
)
Expand Down
2 changes: 1 addition & 1 deletion kalium
Submodule kalium updated 45 files
+0 −5 data/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/Conversation.kt
+0 −2 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/ConversationMapper.kt
+317 −117 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/JoinExistingMLSConversationUseCase.kt
+0 −3 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/MLSConversationRepository.kt
+0 −4 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/ProtocolInfoMapper.kt
+1 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/ResetMLSConversationUseCase.kt
+7 −0 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+71 −0 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/GetConversationEpochUseCase.kt
+13 −8 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/RecoverMLSConversationsUseCase.kt
+2 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/StaleEpochVerifier.kt
+0 −7 .../src/commonMain/kotlin/com/wire/kalium/logic/sync/receiver/conversation/MLSResetConversationEventHandler.kt
+0 −1 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/call/CallHelperTest.kt
+0 −1 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/call/CallRepositoryTest.kt
+0 −2 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/conversation/ConversationGroupRepositoryTest.kt
+0 −1 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/conversation/ConversationRepositoryTest.kt
+45 −15 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/conversation/MLSConversationRepositoryTest.kt
+0 −4 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/conversation/ProtocolInfoMapperTest.kt
+0 −3 logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/call/usecase/GetCallConversationTypeProviderTest.kt
+107 −0 logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/GetConversationEpochUseCaseTest.kt
+89 −9 .../src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/JoinExistingMLSConversationUseCaseTest.kt
+0 −2 ...src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/JoinExistingMLSConversationsUseCaseTest.kt
+9 −2 logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/RecoverMLSConversationsUseCaseTests.kt
+0 −1 logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/delete/DeleteConversationUseCaseTest.kt
+0 −2 ...src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/mls/MLSOneOnOneConversationResolverTest.kt
+0 −1 logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/message/MessageSenderTest.kt
+13 −0 logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/message/StaleEpochVerifierTest.kt
+0 −2 logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/mlsmigration/MLSMigratorTest.kt
+0 −4 logic/src/commonTest/kotlin/com/wire/kalium/logic/framework/TestConversation.kt
+3 −19 .../commonTest/kotlin/com/wire/kalium/logic/sync/receiver/conversation/MLSResetConversationEventHandlerTest.kt
+0 −1 logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/conversation/MemberLeaveEventHandlerTest.kt
+0 −1 logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnCloseCallTest.kt
+0 −1 logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnParticipantListChangedTest.kt
+0 −1 persistence/src/commonMain/db_user/com/wire/kalium/persistence/ConversationDetails.sq
+1 −1 persistence/src/commonMain/db_user/com/wire/kalium/persistence/ConversationMetadata.sq
+6 −9 persistence/src/commonMain/db_user/com/wire/kalium/persistence/Conversations.sq
+221 −0 persistence/src/commonMain/db_user/migrations/117.sqm
+0 −1 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/conversation/ConversationDAO.kt
+1 −6 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/conversation/ConversationDAOImpl.kt
+33 −35 ...e/src/commonMain/kotlin/com/wire/kalium/persistence/dao/conversation/ConversationDetailsWithEventsMapper.kt
+0 −3 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/conversation/ConversationEntity.kt
+68 −70 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/conversation/ConversationMapper.kt
+0 −1 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/conversation/ConversationMetaDataDAOImpl.kt
+1 −1 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/conversation/ConversationViewEntity.kt
+4 −28 persistence/src/commonTest/kotlin/com/wire/kalium/persistence/dao/ConversationDAOTest.kt
+0 −4 persistence/src/commonTest/kotlin/com/wire/kalium/persistence/utils/stubs/TestStubs.kt
Loading