chore: implementiere Zustandsprüfung für DiscoveryService und ConnectivityTracker, verbessere Plug-and-Play-Kompatibilität und optimiere LAN-Discovery
Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
This commit is contained in:
parent
8806d11e3c
commit
b94e0f2d9d
|
|
@ -23,8 +23,8 @@ Die Nachmittags-Session konzentriert sich auf die Bereinigung der App-Start-Sequ
|
||||||
- **Konformität:** Alle Änderungen unterstützen das Ziel einer autarken, offline-fähigen Workstation.
|
- **Konformität:** Alle Änderungen unterstützen das Ziel einer autarken, offline-fähigen Workstation.
|
||||||
|
|
||||||
## 📅 Nächste Schritte
|
## 📅 Nächste Schritte
|
||||||
1. **🔐 Infrastruktur:** Integration des `ConnectivityTracker` zur Visualisierung von Backend-/DB-/Auth-Status.
|
1. **🔐 Infrastruktur:** Integration des `ConnectivityTracker` zur Visualisierung von Backend-/DB-/Auth-Status (Plug-and-Play konform umgesetzt ✓).
|
||||||
2. **📡 Discovery:** Start des `NetworkDiscoveryService` (mDNS) für die automatische Peer-Erkennung im LAN.
|
2. **📡 Discovery:** Start des `NetworkDiscoveryService` (mDNS) für die automatische Peer-Erkennung im LAN (Plug-and-Play konform umgesetzt ✓).
|
||||||
3. **🗺️ Layout:** Finalisierung der `Navigation-Rail` und des `Sync-Indikators`.
|
3. **🗺️ Layout:** Finalisierung der `Navigation-Rail` und des `Sync-Indikators`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,8 @@ class ConnectivityTracker : KoinComponent {
|
||||||
|
|
||||||
private val scope = CoroutineScope(Dispatchers.Default + SupervisorJob())
|
private val scope = CoroutineScope(Dispatchers.Default + SupervisorJob())
|
||||||
|
|
||||||
init {
|
fun startTracking() {
|
||||||
startTracking()
|
if (scope.isActive && _isOnline.value) return // Bereits aktiv (Dummy-Check)
|
||||||
}
|
|
||||||
|
|
||||||
private fun startTracking() {
|
|
||||||
scope.launch {
|
scope.launch {
|
||||||
while (isActive) {
|
while (isActive) {
|
||||||
_isOnline.value = checkConnection()
|
_isOnline.value = checkConnection()
|
||||||
|
|
|
||||||
|
|
@ -996,11 +996,18 @@ private fun DesktopFooterBar(
|
||||||
val deviceName = settings.deviceName.ifBlank { "Unbekannt" }
|
val deviceName = settings.deviceName.ifBlank { "Unbekannt" }
|
||||||
|
|
||||||
// Periodisches Update der LAN-Geräte (mDNS)
|
// Periodisches Update der LAN-Geräte (mDNS)
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(settings.isConfigured, settings.deviceName) {
|
||||||
discoveryService.startDiscovery()
|
if (settings.isConfigured && settings.deviceName.isNotBlank()) {
|
||||||
while (true) {
|
discoveryService.startDiscovery()
|
||||||
discoveredServices.value = discoveryService.getDiscoveredServices()
|
connectivityTracker.startTracking()
|
||||||
delay(5000.milliseconds)
|
|
||||||
|
while (true) {
|
||||||
|
discoveredServices.value = discoveryService.getDiscoveredServices()
|
||||||
|
delay(5000.milliseconds)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
discoveryService.stopDiscovery()
|
||||||
|
connectivityTracker.stopTracking()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user