Added customization screen

This commit is contained in:
Juan Gilsanz Polo 2022-10-26 14:26:09 +02:00
parent f1a837dc42
commit ddb9130769
14 changed files with 518 additions and 93 deletions

View file

@ -1,6 +1,6 @@
import 'package:sqflite/sqflite.dart';
Future<Map<String, dynamic>> loadDb() async {
Future<Map<String, dynamic>> loadDb(bool acceptsDynamicTheme) async {
List<Map<String, Object?>>? servers;
List<Map<String, Object?>>? appConfig;
@ -37,26 +37,44 @@ Future<Map<String, dynamic>> loadDb() async {
});
}
Future upgradeDbToV5(Database db) async {
await db.execute("ALTER TABLE appConfig ADD COLUMN useDynamicColor NUMERIC");
await db.execute("ALTER TABLE appConfig ADD COLUMN staticColor NUMERIC");
await db.execute("UPDATE appConfig SET useDynamicColor = ${acceptsDynamicTheme == true ? 1 : 0}, staticColor = 0");
await db.transaction((txn) async{
await txn.rawQuery(
'SELECT * FROM appConfig',
);
});
}
Database db = await openDatabase(
'adguard_home_manager.db',
version: 4,
version: 5,
onCreate: (Database db, int version) async {
await db.execute("CREATE TABLE servers (id TEXT PRIMARY KEY, name TEXT, connectionMethod TEXT, domain TEXT, path TEXT, port INTEGER, user TEXT, password TEXT, defaultServer INTEGER, authToken TEXT, runningOnHa INTEGER)");
await db.execute("CREATE TABLE appConfig (theme NUMERIC, overrideSslCheck NUMERIC, hideZeroValues NUMERIC)");
await db.execute("INSERT INTO appConfig (theme, overrideSslCheck, hideZeroValues) VALUES (0, 0, 0)");
await db.execute("CREATE TABLE appConfig (theme NUMERIC, overrideSslCheck NUMERIC, hideZeroValues NUMERIC, useDynamicColor NUMERIC, staticColor NUMERIC)");
await db.execute("INSERT INTO appConfig (theme, overrideSslCheck, hideZeroValues, useDynamicColor, staticColor) VALUES (0, 0, 0, ${acceptsDynamicTheme == true ? 1 : 0}, 0)");
},
onUpgrade: (Database db, int oldVersion, int newVersion) async {
if (oldVersion == 1) {
await upgradeDbToV2(db);
await upgradeDbToV3(db);
await upgradeDbToV4(db);
await upgradeDbToV5(db);
}
if (oldVersion == 2) {
await upgradeDbToV3(db);
await upgradeDbToV4(db);
await upgradeDbToV5(db);
}
if (oldVersion == 3) {
await upgradeDbToV4(db);
await upgradeDbToV5(db);
}
if (oldVersion == 4) {
await upgradeDbToV5(db);
}
},
onOpen: (Database db) async {