Package-level declarations

Types

Link copied to clipboard
internal class ConversationDataSource(selfUserId: UserId, conversationDAO: ConversationDAO, memberDAO: MemberDAO, conversationApi: ConversationApi, messageDAO: MessageDAO, messageDraftDAO: MessageDraftDAO, clientDAO: ClientDAO, clientApi: ClientApi, conversationMetaDataDAO: ConversationMetaDataDAO, idMapper: IdMapper = MapperProvider.idMapper(), conversationMapper: ConversationMapper = MapperProvider.conversationMapper(selfUserId), memberMapper: MemberMapper = MapperProvider.memberMapper(), conversationStatusMapper: ConversationStatusMapper = MapperProvider.conversationStatusMapper(), conversationRoleMapper: ConversationRoleMapper = MapperProvider.conversationRoleMapper(), protocolInfoMapper: ProtocolInfoMapper = MapperProvider.protocolInfoMapper(), receiptModeMapper: ReceiptModeMapper = MapperProvider.receiptModeMapper(), userMapper: UserMapper = MapperProvider.userMapper()) : ConversationRepository
Link copied to clipboard
internal interface ConversationGroupRepository
Link copied to clipboard
internal class ConversationGroupRepositoryImpl(mlsConversationRepository: MLSConversationRepository, localEventRepository: LocalEventRepository, conversationMessageTimerEventHandler: ConversationMessageTimerEventHandler, conversationDAO: ConversationDAO, conversationApi: ConversationApi, newConversationMembersRepository: NewConversationMembersRepository, userRepository: UserRepository, newGroupConversationSystemMessagesCreator: Lazy<NewGroupConversationSystemMessagesCreator>, selfUserId: UserId, teamIdProvider: SelfTeamIdProvider, legalHoldHandler: LegalHoldHandler, transactionProvider: CryptoTransactionProvider, pendingActionsRepository: PendingActionsRepository, conversationMapper: ConversationMapper = MapperProvider.conversationMapper(selfUserId), eventMapper: EventMapper = MapperProvider.eventMapper(selfUserId), protocolInfoMapper: ProtocolInfoMapper = MapperProvider.protocolInfoMapper()) : ConversationGroupRepository
Link copied to clipboard
sealed interface ConversationListItem
Link copied to clipboard
data class ConversationListPosition(val activityTime: Instant, val conversationId: ConversationId)
Link copied to clipboard
data class ConversationListPreview(val content: MessagePreviewContent, val isSelfMessage: Boolean)
Link copied to clipboard
data class ConversationListQuery(val source: ConversationListSource = ConversationListSource.ALL, val searchQuery: String = "", val fromArchive: Boolean = false, val onlyInteractionEnabled: Boolean = false, val strictMlsFilter: Boolean = true, val unreadOnly: Boolean = false)
Link copied to clipboard
data class ConversationListUnreadState(val messages: Int = 0, val mentions: Int = 0, val replies: Int = 0, val missedCalls: Int = 0, val knocks: Int = 0)
Link copied to clipboard
data class ConversationListUser(val id: UserId, val name: String?, val avatarAssetId: UserAssetId?, val accentId: Int, val availabilityStatus: UserAvailabilityStatus, val userType: UserTypeInfo, val connectionStatus: ConnectionState, val deleted: Boolean, val defederated: Boolean)
Link copied to clipboard
internal interface ConversationMapper
Link copied to clipboard
internal class ConversationMapperImpl(selfUserId: UserId, idMapper: IdMapper, conversationStatusMapper: ConversationStatusMapper, protocolInfoMapper: ProtocolInfoMapper, userAvailabilityStatusMapper: AvailabilityStatusMapper, domainUserTypeMapper: DomainUserTypeMapper, connectionStatusMapper: ConnectionStatusMapper, conversationRoleMapper: ConversationRoleMapper, messageMapper: MessageMapper, receiptModeMapper: ReceiptModeMapper = MapperProvider.receiptModeMapper()) : ConversationMapper
Link copied to clipboard
internal data class ConversationMemberCounts(val conversationSize: Int, val servicesCount: Int, val guestsCount: Int, val guestsProCount: Int)
Link copied to clipboard
data class ConversationMembersQueryConfig(val searchQuery: String = "", val fromArchive: Boolean = false, val onlyInteractionEnabled: Boolean = false, val onlyTeamId: String? = null, val onlyDomain: String? = null)
Link copied to clipboard
internal class ConversationMetaDataDataSource(conversationMetaDataDAO: ConversationMetaDataDAO, protocolInfoMapper: ProtocolInfoMapper = MapperProvider.protocolInfoMapper()) : ConversationMetaDataRepository
Link copied to clipboard
Link copied to clipboard
data class ConversationQueryConfig(val searchQuery: String = "", val fromArchive: Boolean = false, val onlyInteractionEnabled: Boolean = false, val newActivitiesOnTop: Boolean = false, val conversationFilter: ConversationFilter = ConversationFilter.All)
Link copied to clipboard
internal interface ConversationRepository : SendingConversations
Link copied to clipboard
Link copied to clipboard
internal class ConversationRepositoryExtensionsImpl(selfUserId: UserId, conversationDAO: ConversationDAO, conversationMapper: ConversationMapper, userMapper: UserMapper, memberMapper: MemberMapper) : ConversationRepositoryExtensions
Link copied to clipboard
sealed interface ConversationSyncReason
Link copied to clipboard
internal data class ConversationWithOtherUserName(val conversation: Conversation, val otherUserName: String?, val selfIsMember: Boolean)
Link copied to clipboard
internal sealed interface CreateGroupConversationResult
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Use case responsible for ensuring that a conversation is available locally.

Link copied to clipboard
internal interface FetchConversationsUseCase

Use case responsible for fetching all available conversations from the backend, handling pagination, and persisting them locally.

Link copied to clipboard
Link copied to clipboard

Use case responsible for fetching a single conversation from the backend and persisting it locally if the fetch is successful.

Link copied to clipboard
internal class FetchConversationUseCaseImpl(conversationRepository: ConversationRepository, persistConversations: PersistConversationsUseCase, transactionProvider: CryptoTransactionProvider) : FetchConversationUseCase
Link copied to clipboard
Link copied to clipboard
internal class FetchMLSOneToOneConversationUseCaseImpl(selfUserId: UserId, conversationRepository: ConversationRepository, persistConversations: PersistConversationsUseCase, conversationMapper: ConversationMapper = MapperProvider.conversationMapper(selfUserId)) : FetchMLSOneToOneConversationUseCase
Link copied to clipboard
internal data class GroupWithEpoch(val groupId: GroupID, val epoch: ULong)
Link copied to clipboard

Send an external commit to join all MLS conversations for which the user is a member, but has not yet joined the corresponding MLS group.

Link copied to clipboard
internal class JoinExistingMLSConversationsUseCaseImpl(featureSupport: FeatureSupport, clientRepository: ClientRepository, conversationRepository: ConversationRepository, joinExistingMLSConversationUseCase: JoinExistingMLSConversationUseCase, transactionProvider: CryptoTransactionProvider, pendingActionsRepository: PendingActionsRepository, selfUserId: UserId, maxConcurrentJoins: Int = DEFAULT_MAX_CONCURRENT_JOINS, maxThrottleRetries: Int = DEFAULT_MAX_THROTTLE_RETRIES, throttleRetryDelayMs: Long = DEFAULT_THROTTLE_RETRY_DELAY_MS) : JoinExistingMLSConversationsUseCase
Link copied to clipboard

Use case for joining or establishing an MLS group for an existing conversation. If the conversation is MLS-capable, it checks if it is already established. If not, it establishes the MLS group, otherwise it sends an external commit to join an MLS conversation for which the user is a member, but has not yet joined the corresponding MLS group.

Link copied to clipboard
internal class JoinExistingMLSConversationUseCaseImpl(featureSupport: FeatureSupport, conversationApi: ConversationApi, clientRepository: ClientRepository, conversationRepository: ConversationRepository, mlsConversationRepository: MLSConversationRepository, fetchMLSOneToOneConversation: FetchMLSOneToOneConversationUseCase, fetchConversation: FetchConversationUseCase, resetMLSConversation: ResetMLSConversationUseCase, selfUserId: UserId, kaliumDispatcher: KaliumDispatcher = KaliumDispatcherImpl) : JoinExistingMLSConversationUseCase
Link copied to clipboard
internal interface JoinSubconversationUseCase

Join a sub-conversation of a MLS conversation

Link copied to clipboard
internal class JoinSubconversationUseCaseImpl(conversationApi: ConversationApi, mlsConversationRepository: MLSConversationRepository, subconversationRepository: SubconversationRepository, transactionProvider: CryptoTransactionProvider) : JoinSubconversationUseCase
Link copied to clipboard
internal interface LeaveSubconversationUseCase

Leave a sub-conversation you've previously joined

Link copied to clipboard
internal class LeaveSubconversationUseCaseImpl(val conversationApi: ConversationApi, val subconversationRepository: SubconversationRepository, val selfUserId: UserId, val selfClientIdProvider: CurrentClientIdProvider, val subgroupProposals: PendingSubconversationProposals) : LeaveSubconversationUseCase
Link copied to clipboard
internal interface LegalHoldStatusMapper
Link copied to clipboard
internal class MLSConversationDataSource(selfUserId: UserId, keyPackageRepository: KeyPackageRepository, conversationDAO: ConversationDAO, clientApi: ClientApi, mlsPublicKeysRepository: MLSPublicKeysRepository, proposalTimersFlow: MutableSharedFlow<ProposalTimer>, keyPackageLimitsProvider: KeyPackageLimitsProvider, mutex: Mutex, idMapper: IdMapper = MapperProvider.idMapper(), conversationMapper: ConversationMapper = MapperProvider.conversationMapper(selfUserId), dispatchers: KaliumDispatcher = KaliumDispatcherImpl) : MLSConversationRepository
Link copied to clipboard
Link copied to clipboard

Handles the addition of members to a new conversation and the related system messages when a conversation is started. Either all users are added or some of them could fail to be added.

Link copied to clipboard
internal class NewConversationMembersRepositoryImpl(memberDAO: MemberDAO, newGroupConversationSystemMessagesCreator: Lazy<NewGroupConversationSystemMessagesCreator>, idMapper: IdMapper = MapperProvider.idMapper(), memberMapper: MemberMapper = MapperProvider.memberMapper()) : NewConversationMembersRepository
Link copied to clipboard
internal interface PersistConversationsUseCase

Use case responsible for persisting a list of conversations in the local database.

Link copied to clipboard
internal class PersistConversationsUseCaseImpl(selfUserId: UserId, conversationRepository: ConversationRepository, selfTeamIdProvider: SelfTeamIdProvider, idMapper: IdMapper = IdMapperImpl(), conversationMapper: ConversationMapper = MapperProvider.conversationMapper(selfUserId)) : PersistConversationsUseCase
Link copied to clipboard
internal interface PersistConversationUseCase

Use case responsible for persisting a single conversation, if it doesn't already exist or if its group state is not yet fully established.

Link copied to clipboard
Link copied to clipboard
internal data class PreparedX509KeyPackages(val keyPackages: List<ByteArray>, val cipherSuite: CipherSuite)
Link copied to clipboard
Link copied to clipboard

Reset an MLS conversation which cannot be recovered by any other means.

Link copied to clipboard
internal class ResetMLSConversationUseCaseImpl(selfUserId: UserId, userConfig: UserConfigRepository, transactionProvider: CryptoTransactionProvider, conversationRepository: ConversationRepository, mlsConversationRepository: MLSConversationRepository, fetchConversationUseCase: FetchConversationUseCase, endCallOnMLSReset: EndCallOnMLSResetUseCase, kaliumConfigs: KaliumConfigs) : ResetMLSConversationUseCase
Link copied to clipboard
internal interface SubconversationRepository
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
internal class TypingIndicatorIncomingRepositoryImpl(userPropertyRepository: UserPropertyRepository, timeSource: TimeSource.WithComparableMarks = TimeSource.Monotonic) : TypingIndicatorIncomingRepository

Remembers, per conversation, when each user last sent a typing STARTED event.

Link copied to clipboard
Link copied to clipboard
internal interface TypingIndicatorSenderHandler

Outgoing user typing sent events manager.

Link copied to clipboard
internal class TypingIndicatorSenderHandlerImpl(conversationRepository: ConversationRepository, kaliumDispatcher: KaliumDispatcher = KaliumDispatcherImpl, userSessionCoroutineScope: CoroutineScope) : TypingIndicatorSenderHandler, CoroutineScope
Link copied to clipboard

Use case responsible for updating the protocol of a conversation, either locally or remotely.

Functions

Link copied to clipboard
internal fun Conversation.Protocol.toApi(): ConvProtocol
internal fun Conversation.TypingIndicatorMode.toApi(): TypingIndicatorStatus
internal fun ConversationDetails.Group.Channel.ChannelAddPermission.toApi(): ChannelAddPermissionTypeDTO
Link copied to clipboard
Link copied to clipboard
internal fun ConvProtocol.toModel(): Conversation.Protocol
internal fun SubconversationMemberDTO.toModel(): SubconversationMember
internal fun SubconversationResponse.toModel(): SubConversation
Link copied to clipboard
internal fun Conversation.TypingIndicatorMode.toStatusDto(): TypingIndicatorStatusDTO