All Downloads are FREE. Search and download functionalities are using the official Maven repository.

main.com.sceyt.chatuikit.persistence.logic.PersistenceAttachmentLogic.kt Maven / Gradle / Ivy

package com.sceyt.chatuikit.persistence.logic

import android.util.Size
import com.sceyt.chatuikit.data.models.LoadKeyData
import com.sceyt.chatuikit.data.models.PaginationResponse
import com.sceyt.chatuikit.data.models.SceytResponse
import com.sceyt.chatuikit.data.models.messages.AttachmentWithUserData
import com.sceyt.chatuikit.data.models.messages.FileChecksumData
import com.sceyt.chatuikit.data.models.messages.LinkPreviewDetails
import com.sceyt.chatuikit.data.models.messages.SceytMessage
import com.sceyt.chatuikit.persistence.entity.messages.AttachmentPayLoadDb
import com.sceyt.chatuikit.persistence.file_transfer.TransferData
import kotlinx.coroutines.flow.Flow

interface PersistenceAttachmentLogic {
    suspend fun setupFileTransferUpdateObserver()
    suspend fun getAllPayLoadsByMsgTid(tid: Long): List
    suspend fun getPrevAttachments(conversationId: Long, lastAttachmentId: Long, types: List,
                                   offset: Int, ignoreDb: Boolean = false, loadKeyData: LoadKeyData = LoadKeyData()): Flow>

    suspend fun getNextAttachments(conversationId: Long, lastAttachmentId: Long, types: List,
                                   offset: Int, ignoreDb: Boolean = false, loadKeyData: LoadKeyData = LoadKeyData()): Flow>

    suspend fun getNearAttachments(conversationId: Long, attachmentId: Long, types: List,
                                   offset: Int, ignoreDb: Boolean = false, loadKeyData: LoadKeyData = LoadKeyData()): Flow>

    suspend fun updateAttachmentIdAndMessageId(message: SceytMessage)
    suspend fun updateTransferDataByMsgTid(data: TransferData)
    suspend fun updateAttachmentWithTransferData(data: TransferData)
    suspend fun updateAttachmentFilePathAndMetadata(messageTid: Long, newPath: String, fileSize: Long, metadata: String?)
    suspend fun getFileChecksumData(filePath: String?): FileChecksumData?
    suspend fun getLinkPreviewData(link: String?): SceytResponse
    suspend fun upsertLinkPreviewData(linkDetails: LinkPreviewDetails)
    suspend fun updateLinkDetailsSize(link: String, size: Size)
    suspend fun updateLinkDetailsThumb(link: String, thumb: String)
    fun onTransferProgressPercentUpdated(transferData: TransferData)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy