AeroToss v0.4.0: полная реализация M1-M4
- KMP проект: Kotlin 2.3.21, Compose 1.11.1, Gradle 8.13, AGP 8.13.2 - Обнаружение устройств: mDNS (JMDNS/Android NSD) + Wi-Fi Direct P2P - Передача файлов: Java Socket, стриминг чанками, SHA-256 checksum - UI: HomeScreen, SendScreen, ReceiveScreen, навигация - Защита: санитизация имён файлов (path traversal) - 65+ тестов (WireProtocol, Transfer, FileUtils, Wi-Fi Direct)
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package com.aerotoss
|
||||
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.window.Window
|
||||
import androidx.compose.ui.window.application
|
||||
import com.aerotoss.core.AeroTossManager
|
||||
import com.aerotoss.discovery.JmdnsDiscovery
|
||||
import com.aerotoss.transfer.DesktopFileTransferManager
|
||||
import com.aerotoss.ui.App
|
||||
|
||||
fun main() = application {
|
||||
val transferManager = remember { DesktopFileTransferManager() }
|
||||
val discoveryManager = remember { JmdnsDiscovery() }
|
||||
val manager = remember { AeroTossManager(discoveryManager, transferManager) }
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
val port = transferManager.startServer(0)
|
||||
manager.start(port)
|
||||
}
|
||||
|
||||
Window(
|
||||
onCloseRequest = {
|
||||
manager.dispose()
|
||||
exitApplication()
|
||||
},
|
||||
title = "AeroToss"
|
||||
) {
|
||||
App(manager)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user