AeroToss: убран хард релоуд discovery
- Убран авто-пересканирование каждые 5 сек (вызывало hard reload) - TcpDiscovery уже отправляет broadcast каждую 1 секунду - Устройства обновляются автоматически без перезапуска discovery - Кнопка 'Обновить' делает полный перезапуск только по нажатию
This commit is contained in:
@@ -4,7 +4,6 @@ import com.aerotoss.discovery.DiscoveryManager
|
|||||||
import com.aerotoss.model.Device
|
import com.aerotoss.model.Device
|
||||||
import com.aerotoss.model.TransferProgress
|
import com.aerotoss.model.TransferProgress
|
||||||
import com.aerotoss.transfer.TransferManager
|
import com.aerotoss.transfer.TransferManager
|
||||||
import kotlinx.coroutines.*
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -19,34 +18,14 @@ class AeroTossManager(
|
|||||||
val serverPort: Int
|
val serverPort: Int
|
||||||
get() = transfer.getServerPort()
|
get() = transfer.getServerPort()
|
||||||
|
|
||||||
private val scope = CoroutineScope(Dispatchers.Default + SupervisorJob())
|
|
||||||
private var autoScanJob: Job? = null
|
|
||||||
|
|
||||||
fun start(serverPort: Int) {
|
fun start(serverPort: Int) {
|
||||||
discovery.startDiscovery(serverPort)
|
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() {
|
fun rescan() {
|
||||||
autoScanJob?.cancel()
|
|
||||||
val port = transfer.getServerPort()
|
val port = transfer.getServerPort()
|
||||||
discovery.stopDiscovery()
|
discovery.stopDiscovery()
|
||||||
discovery.startDiscovery(port)
|
discovery.startDiscovery(port)
|
||||||
startAutoScan()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun sendFile(file: File, target: Device): Flow<TransferProgress> {
|
suspend fun sendFile(file: File, target: Device): Flow<TransferProgress> {
|
||||||
@@ -59,13 +38,10 @@ class AeroTossManager(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun stop() {
|
fun stop() {
|
||||||
autoScanJob?.cancel()
|
|
||||||
discovery.stopDiscovery()
|
discovery.stopDiscovery()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dispose() {
|
fun dispose() {
|
||||||
autoScanJob?.cancel()
|
|
||||||
scope.cancel()
|
|
||||||
discovery.dispose()
|
discovery.dispose()
|
||||||
transfer.dispose()
|
transfer.dispose()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user