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);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'appconfig.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
AppConfig _$AppConfigFromJson(Map<String, dynamic> json) => AppConfig()
|
||||
..devices = (json['devices'] as List<dynamic>)
|
||||
.map((e) => Device.fromJson(e as Map<String, dynamic>))
|
||||
.toList();
|
||||
|
||||
Map<String, dynamic> _$AppConfigToJson(AppConfig instance) => <String, dynamic>{
|
||||
'devices': instance.devices,
|
||||
};
|
||||
|
||||
Device _$DeviceFromJson(Map<String, dynamic> json) =>
|
||||
Device(
|
||||
name: json['name'] as String,
|
||||
routerSsid: json['routerSsid'] as String,
|
||||
routerBssid: json['routerBssid'] as String,
|
||||
networkPassword: json['networkPassword'] as String? ?? "",
|
||||
)
|
||||
..ip = json['ip'] as String?
|
||||
..bssid = json['bssid'] as String?;
|
||||
|
||||
Map<String, dynamic> _$DeviceToJson(Device instance) => <String, dynamic>{
|
||||
'name': instance.name,
|
||||
'routerSsid': instance.routerSsid,
|
||||
'routerBssid': instance.routerBssid,
|
||||
'networkPassword': instance.networkPassword,
|
||||
'ip': instance.ip,
|
||||
'bssid': instance.bssid,
|
||||
};
|
||||
@@ -0,0 +1,16 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'device_status.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class DeviceStatus {
|
||||
bool entryNfc = false;
|
||||
bool exitNfc = false;
|
||||
|
||||
DeviceStatus({this.entryNfc = false, this.exitNfc = false});
|
||||
|
||||
factory DeviceStatus.fromJson(Map<String, dynamic> json) =>
|
||||
_$DeviceStatusFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$DeviceStatusToJson(this);
|
||||
}
|
||||
Reference in New Issue
Block a user