mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-05-14 05:52:51 +00:00
Database preparations for new features
This commit is contained in:
parent
2f40415ada
commit
a38c9bf4b0
4 changed files with 91 additions and 4 deletions
|
@ -1,10 +1,15 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:device_info_plus/device_info_plus.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
import 'package:store_checker/store_checker.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:sqflite/sqlite_api.dart';
|
||||
|
||||
import 'package:adguard_home_manager/constants/enums.dart';
|
||||
import 'package:adguard_home_manager/config/home_top_items_default_order.dart';
|
||||
import 'package:adguard_home_manager/models/github_release.dart';
|
||||
import 'package:adguard_home_manager/services/db/queries.dart';
|
||||
import 'package:adguard_home_manager/functions/conversions.dart';
|
||||
|
@ -31,6 +36,8 @@ class AppConfigProvider with ChangeNotifier {
|
|||
int _selectedClientsTab = 0;
|
||||
int _selectedFiltersTab = 0;
|
||||
|
||||
List<HomeTopItems> _homeTopItemsOrder = homeTopItemsDefaultOrder;
|
||||
|
||||
final List<AppLog> _logs = [];
|
||||
|
||||
int _overrideSslCheck = 0;
|
||||
|
@ -151,6 +158,10 @@ class AppConfigProvider with ChangeNotifier {
|
|||
return _installationSource;
|
||||
}
|
||||
|
||||
List<HomeTopItems> get homeTopItemsOrder {
|
||||
return _homeTopItemsOrder;
|
||||
}
|
||||
|
||||
void setDbInstance(Database db) {
|
||||
_dbInstance = db;
|
||||
}
|
||||
|
@ -353,6 +364,22 @@ class AppConfigProvider with ChangeNotifier {
|
|||
}
|
||||
}
|
||||
|
||||
Future<bool> setHomeTopItemsOrder(List<HomeTopItems> order) async {
|
||||
final updated = await updateConfigQuery(
|
||||
db: _dbInstance!,
|
||||
column: 'homeTopItemsOrder',
|
||||
value: jsonEncode(order)
|
||||
);
|
||||
if (updated == true) {
|
||||
_homeTopItemsOrder = order;
|
||||
notifyListeners();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> setDoNotRememberVersion(String value) async {
|
||||
final updated = await updateConfigQuery(
|
||||
db: _dbInstance!,
|
||||
|
@ -373,6 +400,30 @@ class AppConfigProvider with ChangeNotifier {
|
|||
_doNotRememberVersion = dbData['doNotRememberVersion'];
|
||||
_showIpLogs = dbData['showIpLogs'] ?? 0;
|
||||
_combinedChartHome = dbData['combinedChart'] ?? 0;
|
||||
if (dbData['homeTopItemsOrder'] != null) {
|
||||
try {
|
||||
_homeTopItemsOrder = List<HomeTopItems>.from(
|
||||
List<String>.from(jsonDecode(dbData['homeTopItemsOrder'])).map((e) {
|
||||
switch (e) {
|
||||
case 'queriedDomains':
|
||||
return HomeTopItems.queriedDomains;
|
||||
|
||||
case 'blockedDomains':
|
||||
return HomeTopItems.blockedDomains;
|
||||
|
||||
case 'recurrentClients':
|
||||
return HomeTopItems.recurrentClients;
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}).where((e) => e != null).toList()
|
||||
);
|
||||
} catch (e) {
|
||||
Sentry.captureException(e);
|
||||
_homeTopItemsOrder = homeTopItemsDefaultOrder;
|
||||
}
|
||||
}
|
||||
|
||||
_dbInstance = dbInstance;
|
||||
notifyListeners();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue