mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-05-14 05:52:51 +00:00
Save settings on shared preferences
This commit is contained in:
parent
3eaf7143f2
commit
794b690c91
7 changed files with 242 additions and 465 deletions
|
@ -1,141 +1,7 @@
|
|||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
import 'package:adguard_home_manager/config/home_top_items_default_order.dart';
|
||||
|
||||
Future<Map<String, dynamic>> loadDb(bool acceptsDynamicTheme) async {
|
||||
Future<Map<String, dynamic>> loadDb() async {
|
||||
List<Map<String, Object?>>? servers;
|
||||
List<Map<String, Object?>>? appConfig;
|
||||
|
||||
Future rebuildAppConfig(Database db) async {
|
||||
await db.execute("DROP TABLE appConfig");
|
||||
await db.execute("CREATE TABLE appConfig (theme NUMERIC, overrideSslCheck NUMERIC, hideZeroValues NUMERIC, useDynamicColor NUMERIC, staticColor NUMERIC, useThemeColorForStatus NUMERIC, showTimeLogs NUMERIC, showIpLogs NUMERIC, combinedChart NUMERIC, doNotRememberVersion TEXT)");
|
||||
await db.execute("INSERT INTO appConfig (theme, overrideSslCheck, hideZeroValues, useDynamicColor, staticColor, useThemeColorForStatus, showTimeLogs, showIpLogs, combinedChart) VALUES (0, 0, 0, ${acceptsDynamicTheme == true ? 1 : 0}, 0, 0, 0, 0, 0)");
|
||||
}
|
||||
|
||||
Future upgradeDbToV2(Database db) async {
|
||||
await db.execute("ALTER TABLE appConfig ADD COLUMN overrideSslCheck NUMERIC");
|
||||
await db.execute("UPDATE appConfig SET overrideSslCheck = 0");
|
||||
|
||||
await db.transaction((txn) async{
|
||||
await txn.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Future upgradeDbToV3(Database db) async {
|
||||
await db.execute("ALTER TABLE appConfig ADD COLUMN hideZeroValues NUMERIC");
|
||||
await db.execute("UPDATE appConfig SET hideZeroValues = 0");
|
||||
|
||||
await db.transaction((txn) async{
|
||||
await txn.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Future upgradeDbToV4(Database db) async {
|
||||
await db.execute("ALTER TABLE servers ADD COLUMN runningOnHa INTEGER");
|
||||
await db.execute("UPDATE servers SET runningOnHa = 0");
|
||||
|
||||
await db.transaction((txn) async{
|
||||
await txn.rawQuery(
|
||||
'SELECT * FROM servers',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
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("ALTER TABLE appConfig ADD COLUMN useThemeColorForStatus NUMERIC");
|
||||
await db.execute("UPDATE appConfig SET useDynamicColor = ${acceptsDynamicTheme == true ? 1 : 0}, staticColor = 0, useThemeColorForStatus = 0");
|
||||
|
||||
await db.transaction((txn) async{
|
||||
await txn.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Future upgradeDbToV6(Database db) async {
|
||||
await db.execute("ALTER TABLE appConfig ADD COLUMN showNameTimeLogs NUMERIC");
|
||||
await db.execute("UPDATE appConfig SET showNameTimeLogs = 0");
|
||||
|
||||
await db.transaction((txn) async{
|
||||
await txn.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Future upgradeDbToV7(Database db) async {
|
||||
await db.execute("ALTER TABLE appConfig ADD COLUMN doNotRememberVersion TEXT");
|
||||
|
||||
await db.transaction((txn) async{
|
||||
await txn.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Future upgradeDbToV8(Database db) async {
|
||||
try {
|
||||
final data = await db.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
await rebuildAppConfig(db);
|
||||
await db.update(
|
||||
'appConfig',
|
||||
{
|
||||
'theme': data[0]['theme'],
|
||||
'overrideSslCheck': data[0]['overrideSslCheck'],
|
||||
'hideZeroValues': data[0]['hideZeroValues'],
|
||||
'useDynamicColor': data[0]['useDynamicColor'],
|
||||
'staticColor': data[0]['staticColor'],
|
||||
'useThemeColorForStatus': data[0]['useThemeColorForStatus'],
|
||||
'showTimeLogs': data[0]['showNameTimeLogs'],
|
||||
'showIpLogs': data[0]['showIpLogs'],
|
||||
'combinedChart': data[0]['combinedChart'],
|
||||
}
|
||||
);
|
||||
} catch (e) {
|
||||
await rebuildAppConfig(db);
|
||||
}
|
||||
}
|
||||
|
||||
Future upgradeDbToV9(Database db) async {
|
||||
await db.execute("ALTER TABLE appConfig ADD COLUMN hideServerAddress NUMERIC");
|
||||
await db.execute("ALTER TABLE appConfig ADD COLUMN homeTopItemsOrder TEXT");
|
||||
await db.execute("UPDATE appConfig SET hideServerAddress = 0, homeTopItemsOrder = '$homeTopItemsDefaultOrderString'");
|
||||
|
||||
await db.transaction((txn) async{
|
||||
await txn.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Future upgradeDbToV10(Database db) async {
|
||||
await db.execute("ALTER TABLE appConfig ADD COLUMN showTopItemsChart NUMERIC");
|
||||
await db.execute("UPDATE appConfig SET showTopItemsChart = 1");
|
||||
|
||||
await db.transaction((txn) async{
|
||||
await txn.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Future upgradeDbToV11(Database db) async {
|
||||
await db.execute("ALTER TABLE appConfig DROP COLUMN showTopItemsChart");
|
||||
|
||||
await db.transaction((txn) async{
|
||||
await txn.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Database db = await openDatabase(
|
||||
'adguard_home_manager.db',
|
||||
|
@ -159,135 +25,9 @@ Future<Map<String, dynamic>> loadDb(bool acceptsDynamicTheme) async {
|
|||
)
|
||||
"""
|
||||
);
|
||||
|
||||
await db.execute(
|
||||
"""
|
||||
CREATE TABLE
|
||||
appConfig (
|
||||
theme NUMERIC,
|
||||
overrideSslCheck NUMERIC,
|
||||
hideZeroValues NUMERIC,
|
||||
useDynamicColor NUMERIC,
|
||||
staticColor NUMERIC,
|
||||
useThemeColorForStatus NUMERIC,
|
||||
showTimeLogs NUMERIC,
|
||||
showIpLogs NUMERIC,
|
||||
combinedChart NUMERIC,
|
||||
doNotRememberVersion TEXT,
|
||||
hideServerAddress NUMERIC,
|
||||
homeTopItemsOrder TEXT
|
||||
)
|
||||
"""
|
||||
);
|
||||
|
||||
await db.execute(
|
||||
"""
|
||||
INSERT INTO
|
||||
appConfig (
|
||||
theme,
|
||||
overrideSslCheck,
|
||||
hideZeroValues,
|
||||
useDynamicColor,
|
||||
staticColor,
|
||||
useThemeColorForStatus,
|
||||
showTimeLogs,
|
||||
showIpLogs,
|
||||
combinedChart,
|
||||
hideServerAddress,
|
||||
homeTopItemsOrder
|
||||
)
|
||||
VALUES (
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
${acceptsDynamicTheme == true ? 1 : 0},
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
'$homeTopItemsDefaultOrderString'
|
||||
)
|
||||
"""
|
||||
);
|
||||
},
|
||||
onUpgrade: (Database db, int oldVersion, int newVersion) async {
|
||||
if (oldVersion == 1) {
|
||||
await upgradeDbToV2(db);
|
||||
await upgradeDbToV3(db);
|
||||
await upgradeDbToV4(db);
|
||||
await upgradeDbToV5(db);
|
||||
await upgradeDbToV6(db);
|
||||
await upgradeDbToV7(db);
|
||||
await upgradeDbToV8(db);
|
||||
await upgradeDbToV9(db);
|
||||
await upgradeDbToV10(db);
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
if (oldVersion == 2) {
|
||||
await upgradeDbToV3(db);
|
||||
await upgradeDbToV4(db);
|
||||
await upgradeDbToV5(db);
|
||||
await upgradeDbToV6(db);
|
||||
await upgradeDbToV7(db);
|
||||
await upgradeDbToV8(db);
|
||||
await upgradeDbToV9(db);
|
||||
await upgradeDbToV10(db);
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
if (oldVersion == 3) {
|
||||
await upgradeDbToV4(db);
|
||||
await upgradeDbToV5(db);
|
||||
await upgradeDbToV6(db);
|
||||
await upgradeDbToV7(db);
|
||||
await upgradeDbToV8(db);
|
||||
await upgradeDbToV9(db);
|
||||
await upgradeDbToV10(db);
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
if (oldVersion == 4) {
|
||||
await upgradeDbToV5(db);
|
||||
await upgradeDbToV6(db);
|
||||
await upgradeDbToV7(db);
|
||||
await upgradeDbToV8(db);
|
||||
await upgradeDbToV9(db);
|
||||
await upgradeDbToV10(db);
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
if (oldVersion == 5) {
|
||||
await upgradeDbToV6(db);
|
||||
await upgradeDbToV7(db);
|
||||
await upgradeDbToV8(db);
|
||||
await upgradeDbToV9(db);
|
||||
await upgradeDbToV10(db);
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
if (oldVersion == 6) {
|
||||
await upgradeDbToV7(db);
|
||||
await upgradeDbToV8(db);
|
||||
await upgradeDbToV9(db);
|
||||
await upgradeDbToV10(db);
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
if (oldVersion == 7) {
|
||||
await upgradeDbToV8(db);
|
||||
await upgradeDbToV9(db);
|
||||
await upgradeDbToV10(db);
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
if (oldVersion == 8) {
|
||||
await upgradeDbToV9(db);
|
||||
await upgradeDbToV10(db);
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
if (oldVersion == 9) {
|
||||
await upgradeDbToV10(db);
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
if (oldVersion == 10) {
|
||||
await upgradeDbToV11(db);
|
||||
}
|
||||
|
||||
},
|
||||
onOpen: (Database db) async {
|
||||
await db.transaction((txn) async{
|
||||
|
@ -295,17 +35,11 @@ Future<Map<String, dynamic>> loadDb(bool acceptsDynamicTheme) async {
|
|||
'SELECT * FROM servers',
|
||||
);
|
||||
});
|
||||
await db.transaction((txn) async{
|
||||
appConfig = await txn.rawQuery(
|
||||
'SELECT * FROM appConfig',
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
return {
|
||||
"servers": servers,
|
||||
"appConfig": appConfig![0],
|
||||
"dbInstance": db,
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue