diff options
| author | xengineering <me@xengineering.eu> | 2026-04-03 21:29:39 +0200 |
|---|---|---|
| committer | xengineering <me@xengineering.eu> | 2026-04-03 21:42:15 +0200 |
| commit | 2dc31225e08260a4a8f84fd61623e28f1c8c001e (patch) | |
| tree | 07ad68ce8662823b6c1713c0610596f3600086dd /lib/data.dart | |
| parent | a406df320080bf31e32cb181136928793cb5d37b (diff) | |
| download | sia-app-2dc31225e08260a4a8f84fd61623e28f1c8c001e.tar sia-app-2dc31225e08260a4a8f84fd61623e28f1c8c001e.tar.zst sia-app-2dc31225e08260a4a8f84fd61623e28f1c8c001e.zip | |
Introduce class DB
This centralises database related code in one class.
Diffstat (limited to 'lib/data.dart')
| -rw-r--r-- | lib/data.dart | 39 |
1 files changed, 11 insertions, 28 deletions
diff --git a/lib/data.dart b/lib/data.dart index 7d5f938..e4d7524 100644 --- a/lib/data.dart +++ b/lib/data.dart @@ -4,9 +4,8 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:mqtt_client/mqtt_client.dart'; import 'package:mqtt_client/mqtt_server_client.dart'; -import 'package:path_provider/path_provider.dart'; -import 'package:sqlite3/sqlite3.dart'; -import 'package:path/path.dart' as p; + +import 'db.dart'; const int brokerPort = 1883; const String topicPrefix = 'sia'; @@ -28,6 +27,8 @@ enum MachineEvent { } class AppState with ChangeNotifier { + final DB db = DB(); + static const Map<MachineState, Map<MachineEvent, MachineState>> machine = <MachineState, Map<MachineEvent, MachineState>> { MachineState.init: <MachineEvent, MachineState> { MachineEvent.connect: MachineState.disconnected, @@ -56,33 +57,15 @@ class AppState with ChangeNotifier { String fqdn = ''; AppState() { - loadPersistence(); + unawaited(loadPersistence()); } - void loadPersistence() async { - supportDir = await getApplicationSupportDirectory(); - String dbPath = p.join(supportDir.path, 'main.sqlite3'); - - final Database db = sqlite3.open(dbPath); - try { - ResultSet result = db.select('PRAGMA user_version;'); - final int version = result.first.values.first as int; - if (version != 0) { - return; // DB schema version 0 required, no migrations implemented - } - - result = db.select( - 'SELECT value FROM key_value WHERE key = \'server_fqdn\';' - ); - if (result.length == 1) { - fqdn = result[0]['value']; - notifyListeners(); - } - } catch (e) { - return; - } finally { - db.close(); - } + Future<void> loadPersistence() async { + await db.connect(); + String? dbFqdn = await db.getServerFqdn(); + if (dbFqdn == null) return; + fqdn = dbFqdn; + notifyListeners(); } void setFqdn(String value) { |
