Matthias Nott
2026-03-22 c4ce6380fbfa55f22e9c20bb2ccffe4456ed9683
lib/screens/settings_screen.dart
....@@ -3,7 +3,7 @@
33
44 import '../models/server_config.dart';
55 import '../providers/providers.dart';
6
-import '../services/websocket_service.dart';
6
+import '../services/websocket_service.dart' show ConnectionStatus;
77 import '../services/wol_service.dart';
88 import '../theme/app_theme.dart';
99 import '../widgets/status_dot.dart';
....@@ -21,6 +21,7 @@
2121 late final TextEditingController _remoteHostController;
2222 late final TextEditingController _portController;
2323 late final TextEditingController _macController;
24
+ late final TextEditingController _mqttTokenController;
2425 bool _isWaking = false;
2526
2627 @override
....@@ -35,6 +36,8 @@
3536 TextEditingController(text: '${config?.port ?? 8765}');
3637 _macController =
3738 TextEditingController(text: config?.macAddress ?? '');
39
+ _mqttTokenController =
40
+ TextEditingController(text: config?.mqttToken ?? '');
3841 }
3942
4043 @override
....@@ -43,6 +46,7 @@
4346 _remoteHostController.dispose();
4447 _portController.dispose();
4548 _macController.dispose();
49
+ _mqttTokenController.dispose();
4650 super.dispose();
4751 }
4852
....@@ -58,6 +62,9 @@
5862 macAddress: _macController.text.trim().isEmpty
5963 ? null
6064 : _macController.text.trim(),
65
+ mqttToken: _mqttTokenController.text.trim().isEmpty
66
+ ? null
67
+ : _mqttTokenController.text.trim(),
6168 );
6269
6370 await ref.read(serverConfigProvider.notifier).save(config);
....@@ -183,6 +190,19 @@
183190 hintText: 'AA:BB:CC:DD:EE:FF',
184191 ),
185192 ),
193
+ const SizedBox(height: 16),
194
+
195
+ // MQTT Token
196
+ Text('MQTT Token',
197
+ style: Theme.of(context).textTheme.bodyMedium),
198
+ const SizedBox(height: 4),
199
+ TextFormField(
200
+ controller: _mqttTokenController,
201
+ decoration: const InputDecoration(
202
+ hintText: 'Shared secret for MQTT auth',
203
+ ),
204
+ obscureText: true,
205
+ ),
186206 const SizedBox(height: 24),
187207
188208 // Save button