summaryrefslogtreecommitdiff
path: root/lib/data.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/data.dart')
-rw-r--r--lib/data.dart39
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) {