TransferManager

interface TransferManager

Cross-platform file transfer manager for background downloads and uploads.

No Ktor dependency — uses platform-native HTTP APIs:

  • Android: HttpURLConnection

  • iOS: NSURLSession background sessions

val manager = TransferManager.create(context) // platform factory

// Download with progress
manager.download(DownloadRequest(
id = "large-file",
url = "https://example.com/file.zip",
savePath = "/downloads/file.zip",
expectedChecksum = "sha256:abc..."
))

// Observe progress
manager.observeProgress("large-file").collect { progress ->
println("${progress.percentComplete}%")
}

// Upload
manager.upload(UploadRequest(
id = "backup",
url = "https://api.example.com/upload",
filePath = "/data/backup.zip"
))

Inheritors

Functions

Link copied to clipboard
abstract suspend fun cancel(transferId: String)

Cancels an active transfer by ID.

Link copied to clipboard
abstract suspend fun download(request: DownloadRequest)

Starts a background download.

Link copied to clipboard
abstract fun observe(transferId: String): Flow<TaskState>

Observes task state for a transfer.

Link copied to clipboard
abstract fun observeProgress(transferId: String): Flow<TransferProgress>

Observes transfer progress.

Link copied to clipboard
abstract suspend fun upload(request: UploadRequest)

Starts a background upload.