AeroToss: убран хард релоуд discovery

- Убран авто-пересканирование каждые 5 сек (вызывало hard reload)
- TcpDiscovery уже отправляет broadcast каждую 1 секунду
- Устройства обновляются автоматически без перезапуска discovery
- Кнопка 'Обновить' делает полный перезапуск только по нажатию
This commit is contained in:
2026-08-20 00:10:47 +03:00
parent b6a0e75bab
commit 677b9e15ba
@@ -4,7 +4,6 @@ import com.aerotoss.discovery.DiscoveryManager
import com.aerotoss.model.Device
import com.aerotoss.model.TransferProgress
import com.aerotoss.transfer.TransferManager
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.Flow
import java.io.File
@@ -19,34 +18,14 @@ class AeroTossManager(
val serverPort: Int
get() = transfer.getServerPort()
private val scope = CoroutineScope(Dispatchers.Default + SupervisorJob())
private var autoScanJob: Job? = null
fun start(serverPort: Int) {
discovery.startDiscovery(serverPort)
startAutoScan()
}
private fun startAutoScan() {
autoScanJob?.cancel()
autoScanJob = scope.launch {
while (isActive) {
delay(5_000)
val port = transfer.getServerPort()
if (port > 0) {
discovery.stopDiscovery()
discovery.startDiscovery(port)
}
}
}
}
fun rescan() {
autoScanJob?.cancel()
val port = transfer.getServerPort()
discovery.stopDiscovery()
discovery.startDiscovery(port)
startAutoScan()
}
suspend fun sendFile(file: File, target: Device): Flow<TransferProgress> {
@@ -59,13 +38,10 @@ class AeroTossManager(
}
fun stop() {
autoScanJob?.cancel()
discovery.stopDiscovery()
}
fun dispose() {
autoScanJob?.cancel()
scope.cancel()
discovery.dispose()
transfer.dispose()
}