Many minor improvements
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
|
||||
part 'appconfig.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class AppConfig {
|
||||
List<Device> devices = [];
|
||||
|
||||
AppConfig._constructor();
|
||||
static AppConfig _instance = AppConfig._constructor();
|
||||
|
||||
factory AppConfig({Map<String, dynamic>? json}) {
|
||||
if (json != null) {
|
||||
_instance = _$AppConfigFromJson(json);
|
||||
}
|
||||
|
||||
return _instance;
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => _$AppConfigToJson(this);
|
||||
|
||||
/// Saves configuration to file.
|
||||
///
|
||||
/// WARN: This method assumes the config file already exists.
|
||||
Future<void> save() async {
|
||||
final appDocsDir = await getApplicationDocumentsDirectory();
|
||||
var configFile = File(p.join(appDocsDir.path, "app.json"));
|
||||
await configFile.writeAsString(jsonEncode(toJson()));
|
||||
}
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class Device {
|
||||
String name;
|
||||
String routerSsid;
|
||||
String routerBssid;
|
||||
String networkPassword;
|
||||
String? ip;
|
||||
String? bssid;
|
||||
|
||||
Device({
|
||||
required this.name,
|
||||
required this.routerSsid,
|
||||
required this.routerBssid,
|
||||
this.networkPassword = "",
|
||||
});
|
||||
|
||||
factory Device.fromJson(Map<String, dynamic> json) => _$DeviceFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$DeviceToJson(this);
|
||||
}
|
||||
Reference in New Issue
Block a user