Package-level declarations
Types
Link copied to clipboard
Records an acknowledged send before dispatcher return can discard its result on cancellation.
Link copied to clipboard
data class AssetPreviewUploadParams(val assetDataPath: Path, val assetDataSize: Long, val mimeType: String, val width: Int, val height: Int)
Optional image generated from a video. Kalium copies this source into its managed cache when scheduling. The caller owns assetDataPath and remains responsible for deleting it, including after success, rejection, failure or cancellation.
Link copied to clipboard
Link copied to clipboard
data class AssetUploadParams(val conversationId: ConversationId, val assetDataPath: Path, val assetDataSize: Long, val assetName: String, val assetMimeType: String, val assetWidth: Int?, val assetHeight: Int?, val audioLengthInMs: Long, val audioNormalizedLoudness: ByteArray?, val preview: AssetPreviewUploadParams? = null)
Link copied to clipboard
These are completed-work phases, not an estimate of transferred bytes.
Link copied to clipboard
Link copied to clipboard
internal class PersistNewAssetMessageUseCaseImpl(persistMessage: PersistMessageUseCase, currentClientIdProvider: CurrentClientIdProvider, userPropertyRepository: UserPropertyRepository, selfDeleteTimer: ObserveSelfDeletionTimerSettingsForConversationUseCase, assetDataSource: AssetRepository, dispatcher: KaliumDispatcher) : PersistNewAssetMessageUseCase
Link copied to clipboard
Link copied to clipboard
interface ScheduleNewAssetMessageUseCase
Link copied to clipboard
internal class ScheduleNewAssetMessageUseCaseImpl(persistNewAssetMessage: PersistNewAssetMessageUseCase, uploadAsset: UploadAssetUseCase, updateAssetMessageTransferStatus: UpdateAssetMessageTransferStatusUseCase, userId: UserId, slowSyncRepository: SlowSyncRepository, messageRepository: MessageRepository, observeFileSharingStatus: ObserveFileSharingStatusUseCase, validateAssetFileUseCase: ValidateAssetFileTypeUseCase, messageSendFailureHandler: MessageSendFailureHandler, pendingMessagesEnabled: Boolean = true, scope: CoroutineScope, dispatcher: KaliumDispatcher) : ScheduleNewAssetMessageUseCase
Link copied to clipboard
Link copied to clipboard
Starts an upload whose lifetime and final message-send result can be owned by the application.
Link copied to clipboard
interface TrackedAssetUpload
Link copied to clipboard
internal class TrackedAssetUploadImpl(val messageId: String, scope: CoroutineScope, retryOperation: suspend () -> TrackedAssetUpload, monitor: suspend () -> Unit, upload: suspend () -> Either<CoreFailure, Unit>, onCancelled: suspend () -> Unit, onFailed: suspend (CoreFailure) -> Unit = {}) : TrackedAssetUpload
Link copied to clipboard
internal data class UploadAssetMessageMetadata(val conversationId: ConversationId, val mimeType: String, val assetId: UploadedAssetId, val assetDataPath: Path, val assetDataSize: Long, val assetName: String, val assetWidth: Int?, val assetHeight: Int?, val otrKey: AES256Key, val sha256Key: SHA256Key, val audioLengthInMs: Long, val audioNormalizedLoudness: ByteArray?, val preview: AssetContent.Preview? = null)
Link copied to clipboard
Link copied to clipboard
internal class UploadAssetUseCaseImpl(assetDataSource: AssetRepository, messageSender: MessageSender, messageSendFailureHandler: MessageSendFailureHandler, updateAssetMessageTransferStatus: UpdateAssetMessageTransferStatusUseCase, updateAudioNormalizedLoudness: UpdateAudioMessageNormalizedLoudnessUseCase, persistMessage: PersistMessageUseCase, audioNormalizedLoudnessBuilder: AudioNormalizedLoudnessBuilder, pendingMessagesEnabled: Boolean = true, dispatcher: KaliumDispatcher) : UploadAssetUseCase
Functions
Link copied to clipboard
internal fun AssetUploadParams.createTempAssetMetadata(assetKey: String, path: Path): UploadAssetMessageMetadata
Link copied to clipboard
internal suspend fun AssetRepository.deleteTemporaryPreview(previous: AssetContent.Preview?, current: AssetContent.Preview?)
Link copied to clipboard
Link copied to clipboard
internal suspend fun AssetRepository.uploadPreviewIfNeeded(preview: AssetContent.Preview?, conversationId: ConversationId): AssetContent.Preview?
Optional previews fail open; cancellation still propagates from repository calls.
Link copied to clipboard
internal suspend fun validateAssetSharing(observeFileSharingStatus: ObserveFileSharingStatusUseCase, validateAssetFileType: ValidateAssetFileTypeUseCase, assetName: String, assetMimeType: String): Either<ScheduleNewAssetMessageResult.Failure, Unit>
Checks the team's file sharing settings for an asset before anything is sent.