Add native file picker to core test UI

This commit is contained in:
2026-07-03 00:30:21 +02:00
parent 3cdbf7e8f9
commit 1c525288a5
8 changed files with 240 additions and 5 deletions

View File

@@ -0,0 +1,39 @@
package com.vnidrop.app.core
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import java.awt.FileDialog
import java.awt.Frame
import java.io.File
@Composable
actual fun rememberShareFilePicker(
onFilePicked: (PickedShareFile) -> Unit,
onError: (String) -> Unit,
): ShareFilePicker = remember(onFilePicked, onError) {
object : ShareFilePicker {
override fun pickFile() {
try {
val dialog = FileDialog(null as Frame?, "Select file to share", FileDialog.LOAD)
dialog.isVisible = true
val directory = dialog.directory
val file = dialog.file
if (directory != null && file != null) {
val selected = File(directory, file)
onFilePicked(PickedShareFile(selected.absolutePath, selected.name))
}
} catch (error: Throwable) {
onError(error.message ?: error.toString())
}
}
}
}
actual suspend fun sharePickedFile(
repository: CoreRepository,
file: PickedShareFile,
transferName: String,
senderName: String,
) {
repository.sharePath(file.value, transferName, senderName)
}