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:
Stefan Mogeritsch 2026-04-20 14:39:43 +02:00
parent 8806d11e3c
commit b94e0f2d9d
3 changed files with 16 additions and 12 deletions

View File

@ -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.
## 📅 Nächste Schritte
1. **🔐 Infrastruktur:** Integration des `ConnectivityTracker` zur Visualisierung von Backend-/DB-/Auth-Status.
2. **📡 Discovery:** Start des `NetworkDiscoveryService` (mDNS) für die automatische Peer-Erkennung im LAN.
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 (Plug-and-Play konform umgesetzt ✓).
3. **🗺️ Layout:** Finalisierung der `Navigation-Rail` und des `Sync-Indikators`.
---

View File

@ -21,11 +21,8 @@ class ConnectivityTracker : KoinComponent {
private val scope = CoroutineScope(Dispatchers.Default + SupervisorJob())
init {
startTracking()
}
private fun startTracking() {
fun startTracking() {
if (scope.isActive && _isOnline.value) return // Bereits aktiv (Dummy-Check)
scope.launch {
while (isActive) {
_isOnline.value = checkConnection()

View File

@ -996,11 +996,18 @@ private fun DesktopFooterBar(
val deviceName = settings.deviceName.ifBlank { "Unbekannt" }
// Periodisches Update der LAN-Geräte (mDNS)
LaunchedEffect(Unit) {
discoveryService.startDiscovery()
while (true) {
discoveredServices.value = discoveryService.getDiscoveredServices()
delay(5000.milliseconds)
LaunchedEffect(settings.isConfigured, settings.deviceName) {
if (settings.isConfigured && settings.deviceName.isNotBlank()) {
discoveryService.startDiscovery()
connectivityTracker.startTracking()
while (true) {
discoveredServices.value = discoveryService.getDiscoveredServices()
delay(5000.milliseconds)
}
} else {
discoveryService.stopDiscovery()
connectivityTracker.stopTracking()
}
}