From c4ce6380fbfa55f22e9c20bb2ccffe4456ed9683 Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Sun, 22 Mar 2026 17:37:55 +0100
Subject: [PATCH] feat: MQTT client replaces WebSocket (Phase 2)

---
 lib/screens/settings_screen.dart |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart
index 6cb89e7..ed129f8 100644
--- a/lib/screens/settings_screen.dart
+++ b/lib/screens/settings_screen.dart
@@ -3,7 +3,7 @@
 
 import '../models/server_config.dart';
 import '../providers/providers.dart';
-import '../services/websocket_service.dart';
+import '../services/websocket_service.dart' show ConnectionStatus;
 import '../services/wol_service.dart';
 import '../theme/app_theme.dart';
 import '../widgets/status_dot.dart';
@@ -21,6 +21,7 @@
   late final TextEditingController _remoteHostController;
   late final TextEditingController _portController;
   late final TextEditingController _macController;
+  late final TextEditingController _mqttTokenController;
   bool _isWaking = false;
 
   @override
@@ -35,6 +36,8 @@
         TextEditingController(text: '${config?.port ?? 8765}');
     _macController =
         TextEditingController(text: config?.macAddress ?? '');
+    _mqttTokenController =
+        TextEditingController(text: config?.mqttToken ?? '');
   }
 
   @override
@@ -43,6 +46,7 @@
     _remoteHostController.dispose();
     _portController.dispose();
     _macController.dispose();
+    _mqttTokenController.dispose();
     super.dispose();
   }
 
@@ -58,6 +62,9 @@
       macAddress: _macController.text.trim().isEmpty
           ? null
           : _macController.text.trim(),
+      mqttToken: _mqttTokenController.text.trim().isEmpty
+          ? null
+          : _mqttTokenController.text.trim(),
     );
 
     await ref.read(serverConfigProvider.notifier).save(config);
@@ -183,6 +190,19 @@
                   hintText: 'AA:BB:CC:DD:EE:FF',
                 ),
               ),
+              const SizedBox(height: 16),
+
+              // MQTT Token
+              Text('MQTT Token',
+                  style: Theme.of(context).textTheme.bodyMedium),
+              const SizedBox(height: 4),
+              TextFormField(
+                controller: _mqttTokenController,
+                decoration: const InputDecoration(
+                  hintText: 'Shared secret for MQTT auth',
+                ),
+                obscureText: true,
+              ),
               const SizedBox(height: 24),
 
               // Save button

--
Gitblit v1.3.1