mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-04-20 22:09:11 +00:00
Improved server version check
This commit is contained in:
parent
c2af933eb5
commit
34bff2f506
29 changed files with 77 additions and 57 deletions
|
@ -1,20 +1,14 @@
|
||||||
|
import 'package:adguard_home_manager/config/globals.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import 'package:adguard_home_manager/widgets/process_dialog.dart';
|
import 'package:adguard_home_manager/widgets/process_dialog.dart';
|
||||||
|
|
||||||
class ProcessModal {
|
class ProcessModal {
|
||||||
late BuildContext context;
|
|
||||||
|
|
||||||
ProcessModal({
|
|
||||||
required this.context
|
|
||||||
});
|
|
||||||
|
|
||||||
void open(String message) async {
|
void open(String message) async {
|
||||||
await Future.delayed(const Duration(seconds: 0), () => {
|
await Future.delayed(const Duration(seconds: 0), () => {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: globalNavigatorKey.currentContext!,
|
||||||
builder: (c) {
|
builder: (ctx) {
|
||||||
context = c;
|
|
||||||
return ProcessDialog(
|
return ProcessDialog(
|
||||||
message: message,
|
message: message,
|
||||||
);
|
);
|
||||||
|
@ -26,6 +20,6 @@ class ProcessModal {
|
||||||
}
|
}
|
||||||
|
|
||||||
void close() {
|
void close() {
|
||||||
Navigator.pop(context);
|
Navigator.pop(globalNavigatorKey.currentContext!);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -12,7 +12,7 @@ import 'package:adguard_home_manager/models/server.dart';
|
||||||
Future<ApiResponse> clearDnsCache(BuildContext context, Server server) async {
|
Future<ApiResponse> clearDnsCache(BuildContext context, Server server) async {
|
||||||
final serversProvider = Provider.of<ServersProvider>(context, listen: false);
|
final serversProvider = Provider.of<ServersProvider>(context, listen: false);
|
||||||
|
|
||||||
final ProcessModal processModal = ProcessModal(context: context);
|
final ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.clearingDnsCache);
|
processModal.open(AppLocalizations.of(context)!.clearingDnsCache);
|
||||||
|
|
||||||
final result = await serversProvider.apiClient2!.resetDnsCache();
|
final result = await serversProvider.apiClient2!.resetDnsCache();
|
||||||
|
|
|
@ -237,7 +237,8 @@ class StatusProvider with ChangeNotifier {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> getServerStatus({
|
Future<bool> getServerStatus({
|
||||||
bool? withLoadingIndicator
|
bool? withLoadingIndicator,
|
||||||
|
bool? overrideCheckServerVersion
|
||||||
}) async {
|
}) async {
|
||||||
if (withLoadingIndicator == true) {
|
if (withLoadingIndicator == true) {
|
||||||
_loadStatus = LoadStatus.loading;
|
_loadStatus = LoadStatus.loading;
|
||||||
|
@ -258,7 +259,7 @@ class StatusProvider with ChangeNotifier {
|
||||||
referenceVersion: MinimumServerVersion.stable,
|
referenceVersion: MinimumServerVersion.stable,
|
||||||
referenceVersionBeta: MinimumServerVersion.beta
|
referenceVersionBeta: MinimumServerVersion.beta
|
||||||
);
|
);
|
||||||
if (validVersion == false) {
|
if (validVersion == false && overrideCheckServerVersion != true) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: globalNavigatorKey.currentContext!,
|
context: globalNavigatorKey.currentContext!,
|
||||||
builder: (ctx) => UnsupportedVersionModal(
|
builder: (ctx) => UnsupportedVersionModal(
|
||||||
|
@ -269,7 +270,6 @@ class StatusProvider with ChangeNotifier {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -75,7 +75,7 @@ class _AddedListState extends State<AddedList> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void confirmEditClient(Client client) async {
|
void confirmEditClient(Client client) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.addingClient);
|
processModal.open(AppLocalizations.of(context)!.addingClient);
|
||||||
|
|
||||||
final result = await clientsProvider.editClient(client);
|
final result = await clientsProvider.editClient(client);
|
||||||
|
@ -99,7 +99,7 @@ class _AddedListState extends State<AddedList> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void deleteClient(Client client) async {
|
void deleteClient(Client client) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.removingClient);
|
processModal.open(AppLocalizations.of(context)!.removingClient);
|
||||||
|
|
||||||
final result = await clientsProvider.deleteClient(client);
|
final result = await clientsProvider.deleteClient(client);
|
||||||
|
|
|
@ -25,7 +25,7 @@ class ClientsFab extends StatelessWidget {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void confirmAddClient(Client client) async {
|
void confirmAddClient(Client client) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.addingClient);
|
processModal.open(AppLocalizations.of(context)!.addingClient);
|
||||||
|
|
||||||
final result = await clientsProvider.addClient(client);
|
final result = await clientsProvider.addClient(client);
|
||||||
|
|
|
@ -86,7 +86,7 @@ class _SearchClientsState extends State<SearchClients> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void deleteClient(Client client) async {
|
void deleteClient(Client client) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.removingClient);
|
processModal.open(AppLocalizations.of(context)!.removingClient);
|
||||||
|
|
||||||
final result = await clientsProvider.deleteClient(client);
|
final result = await clientsProvider.deleteClient(client);
|
||||||
|
@ -110,7 +110,7 @@ class _SearchClientsState extends State<SearchClients> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void confirmEditClient(Client client) async {
|
void confirmEditClient(Client client) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.addingClient);
|
processModal.open(AppLocalizations.of(context)!.addingClient);
|
||||||
|
|
||||||
final result = await clientsProvider.editClient(client);
|
final result = await clientsProvider.editClient(client);
|
||||||
|
|
|
@ -32,7 +32,7 @@ class AddFiltersButton extends StatelessWidget {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void confirmAddRule(String rule) async {
|
void confirmAddRule(String rule) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.addingRule);
|
processModal.open(AppLocalizations.of(context)!.addingRule);
|
||||||
|
|
||||||
final result = await filteringProvider.addCustomRule(rule);
|
final result = await filteringProvider.addCustomRule(rule);
|
||||||
|
@ -83,7 +83,7 @@ class AddFiltersButton extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
void confirmAddList({required String name, required String url, required String type}) async {
|
void confirmAddList({required String name, required String url, required String type}) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.addingList);
|
processModal.open(AppLocalizations.of(context)!.addingList);
|
||||||
|
|
||||||
final result = await filteringProvider.addList(name: name, url: url, type: type);
|
final result = await filteringProvider.addList(name: name, url: url, type: type);
|
||||||
|
|
|
@ -81,7 +81,7 @@ class _ListDetailsScreenState extends State<ListDetailsScreen> {
|
||||||
required FilteringListActions action,
|
required FilteringListActions action,
|
||||||
required Filter filterList,
|
required Filter filterList,
|
||||||
}) async {
|
}) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(
|
processModal.open(
|
||||||
action == FilteringListActions.edit
|
action == FilteringListActions.edit
|
||||||
? AppLocalizations.of(context)!.savingList
|
? AppLocalizations.of(context)!.savingList
|
||||||
|
@ -249,7 +249,7 @@ class _ListDetailsScreenState extends State<ListDetailsScreen> {
|
||||||
context: context,
|
context: context,
|
||||||
builder: (c) => DeleteListModal(
|
builder: (c) => DeleteListModal(
|
||||||
onConfirm: () async {
|
onConfirm: () async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.deletingList);
|
processModal.open(AppLocalizations.of(context)!.deletingList);
|
||||||
final result = await filteringProvider.deleteList(
|
final result = await filteringProvider.deleteList(
|
||||||
listUrl: list!.url,
|
listUrl: list!.url,
|
||||||
|
|
|
@ -51,7 +51,7 @@ class _FiltersState extends State<Filters> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void updateLists() async {
|
void updateLists() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.updatingLists);
|
processModal.open(AppLocalizations.of(context)!.updatingLists);
|
||||||
final result = await filteringProvider.updateLists();
|
final result = await filteringProvider.updateLists();
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
|
@ -97,7 +97,7 @@ class _FiltersState extends State<Filters> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void enableDisableFiltering() async {
|
void enableDisableFiltering() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(
|
processModal.open(
|
||||||
statusProvider.serverStatus!.filteringEnabled == true
|
statusProvider.serverStatus!.filteringEnabled == true
|
||||||
? AppLocalizations.of(context)!.disableFiltering
|
? AppLocalizations.of(context)!.disableFiltering
|
||||||
|
@ -125,7 +125,7 @@ class _FiltersState extends State<Filters> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void setUpdateFrequency(int value) async {
|
void setUpdateFrequency(int value) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.changingUpdateFrequency);
|
processModal.open(AppLocalizations.of(context)!.changingUpdateFrequency);
|
||||||
|
|
||||||
final result = await filteringProvider.changeUpdateFrequency(value);
|
final result = await filteringProvider.changeUpdateFrequency(value);
|
||||||
|
@ -155,7 +155,7 @@ class _FiltersState extends State<Filters> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void removeCustomRule(String rule) async {
|
void removeCustomRule(String rule) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.deletingRule);
|
processModal.open(AppLocalizations.of(context)!.deletingRule);
|
||||||
|
|
||||||
final result = await filteringProvider.removeCustomRule(rule);
|
final result = await filteringProvider.removeCustomRule(rule);
|
||||||
|
|
|
@ -40,7 +40,7 @@ class ListOptionsMenu extends StatelessWidget {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void enableDisable() async {
|
void enableDisable() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(
|
processModal.open(
|
||||||
list.enabled == true
|
list.enabled == true
|
||||||
? AppLocalizations.of(context)!.disablingList
|
? AppLocalizations.of(context)!.disablingList
|
||||||
|
|
|
@ -60,7 +60,7 @@ class _BlockedServicesScreenStateWidget extends State<BlockedServicesScreen> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateBlockedServices() async {
|
void updateBlockedServices() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.updating);
|
processModal.open(AppLocalizations.of(context)!.updating);
|
||||||
|
|
||||||
final result = await filteringProvider.updateBlockedServices(values);
|
final result = await filteringProvider.updateBlockedServices(values);
|
||||||
|
|
|
@ -76,7 +76,7 @@ class _SelectionScreenState extends State<SelectionScreen> with TickerProviderSt
|
||||||
selectedBlacklists: _selectedBlacklists,
|
selectedBlacklists: _selectedBlacklists,
|
||||||
onDelete: () async {
|
onDelete: () async {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
final processModal = ProcessModal(context: context);
|
final processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.processingLists);
|
processModal.open(AppLocalizations.of(context)!.processingLists);
|
||||||
final result = await filteringProvider.enableDisableMultipleLists(
|
final result = await filteringProvider.enableDisableMultipleLists(
|
||||||
blacklists: _selectedBlacklists,
|
blacklists: _selectedBlacklists,
|
||||||
|
@ -107,7 +107,7 @@ class _SelectionScreenState extends State<SelectionScreen> with TickerProviderSt
|
||||||
selectedBlacklists: _selectedBlacklists,
|
selectedBlacklists: _selectedBlacklists,
|
||||||
onDelete: () async {
|
onDelete: () async {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
final processModal = ProcessModal(context: context);
|
final processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.deletingLists);
|
processModal.open(AppLocalizations.of(context)!.deletingLists);
|
||||||
final result = await filteringProvider.deleteMultipleLists(
|
final result = await filteringProvider.deleteMultipleLists(
|
||||||
blacklists: _selectedBlacklists,
|
blacklists: _selectedBlacklists,
|
||||||
|
|
|
@ -59,7 +59,7 @@ class LogDetailsScreen extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
void blockUnblock(String domain, String newStatus) async {
|
void blockUnblock(String domain, String newStatus) async {
|
||||||
final ProcessModal processModal = ProcessModal(context: context);
|
final ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingUserFilters);
|
processModal.open(AppLocalizations.of(context)!.savingUserFilters);
|
||||||
|
|
||||||
final rules = await statusProvider.blockUnblockDomain(
|
final rules = await statusProvider.blockUnblockDomain(
|
||||||
|
|
|
@ -39,7 +39,7 @@ class LogsListAppBar extends StatelessWidget {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void updateConfig(Map<String, dynamic> data) async {
|
void updateConfig(Map<String, dynamic> data) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.updatingSettings);
|
processModal.open(AppLocalizations.of(context)!.updatingSettings);
|
||||||
|
|
||||||
final result = await serversProvider.apiClient2!.updateQueryLogParameters(data: data);
|
final result = await serversProvider.apiClient2!.updateQueryLogParameters(data: data);
|
||||||
|
@ -63,7 +63,7 @@ class LogsListAppBar extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearQueries() async {
|
void clearQueries() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.updatingSettings);
|
processModal.open(AppLocalizations.of(context)!.updatingSettings);
|
||||||
|
|
||||||
final result = await serversProvider.apiClient2!.clearLogs();
|
final result = await serversProvider.apiClient2!.clearLogs();
|
||||||
|
|
|
@ -96,7 +96,7 @@ class _ClientsListState extends State<ClientsList> {
|
||||||
body['blocked_hosts'] = body['blocked_hosts']!.where((c) => c != client).toList();
|
body['blocked_hosts'] = body['blocked_hosts']!.where((c) => c != client).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.removingClient);
|
processModal.open(AppLocalizations.of(context)!.removingClient);
|
||||||
|
|
||||||
final result = await clientsProvider.removeClientList(client, type);
|
final result = await clientsProvider.removeClientList(client, type);
|
||||||
|
@ -129,7 +129,7 @@ class _ClientsListState extends State<ClientsList> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void confirmAddItem(String item, AccessSettingsList type) async {
|
void confirmAddItem(String item, AccessSettingsList type) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.removingClient);
|
processModal.open(AppLocalizations.of(context)!.removingClient);
|
||||||
|
|
||||||
final result = await clientsProvider.addClientList(item, type);
|
final result = await clientsProvider.addClientList(item, type);
|
||||||
|
|
|
@ -192,7 +192,7 @@ class _DhcpScreenState extends State<DhcpScreen> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void saveSettings() async {
|
void saveSettings() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingSettings);
|
processModal.open(AppLocalizations.of(context)!.savingSettings);
|
||||||
final result = await serversProvider.apiClient2!.saveDhcpConfig(
|
final result = await serversProvider.apiClient2!.saveDhcpConfig(
|
||||||
data: {
|
data: {
|
||||||
|
@ -232,7 +232,7 @@ class _DhcpScreenState extends State<DhcpScreen> {
|
||||||
|
|
||||||
void restoreConfig() async {
|
void restoreConfig() async {
|
||||||
Future.delayed(const Duration(seconds: 0), () async {
|
Future.delayed(const Duration(seconds: 0), () async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.restoringConfig);
|
processModal.open(AppLocalizations.of(context)!.restoringConfig);
|
||||||
final result = await serversProvider.apiClient2!.resetDhcpConfig();
|
final result = await serversProvider.apiClient2!.resetDhcpConfig();
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
|
@ -257,7 +257,7 @@ class _DhcpScreenState extends State<DhcpScreen> {
|
||||||
|
|
||||||
void restoreLeases() async {
|
void restoreLeases() async {
|
||||||
Future.delayed(const Duration(seconds: 0), () async {
|
Future.delayed(const Duration(seconds: 0), () async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.restoringLeases);
|
processModal.open(AppLocalizations.of(context)!.restoringLeases);
|
||||||
|
|
||||||
final result = await serversProvider.apiClient2!.restoreAllLeases();
|
final result = await serversProvider.apiClient2!.restoreAllLeases();
|
||||||
|
|
|
@ -35,7 +35,7 @@ class DhcpLeases extends StatelessWidget {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void deleteLease(Lease lease) async {
|
void deleteLease(Lease lease) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.deleting);
|
processModal.open(AppLocalizations.of(context)!.deleting);
|
||||||
|
|
||||||
final result = await dhcpProvider.deleteLease(lease);
|
final result = await dhcpProvider.deleteLease(lease);
|
||||||
|
@ -59,7 +59,7 @@ class DhcpLeases extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
void createLease(Lease lease) async {
|
void createLease(Lease lease) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.creating);
|
processModal.open(AppLocalizations.of(context)!.creating);
|
||||||
|
|
||||||
final result = await dhcpProvider.createLease(lease);
|
final result = await dhcpProvider.createLease(lease);
|
||||||
|
|
|
@ -70,7 +70,7 @@ class _BootstrapDnsScreenState extends State<BootstrapDnsScreen> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void saveData() async {
|
void saveData() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
||||||
|
|
||||||
final result = await dnsProvider.saveBootstrapDnsConfig({
|
final result = await dnsProvider.saveBootstrapDnsConfig({
|
||||||
|
|
|
@ -73,7 +73,7 @@ class _CacheConfigDnsScreenState extends State<CacheConfigDnsScreen> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void saveData() async {
|
void saveData() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
||||||
|
|
||||||
final result = await dnsProvider.saveCacheCacheConfig({
|
final result = await dnsProvider.saveCacheCacheConfig({
|
||||||
|
|
|
@ -103,7 +103,7 @@ class _DnsServerSettingsScreenState extends State<DnsServerSettingsScreen> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void saveData() async {
|
void saveData() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
||||||
|
|
||||||
final result = await dnsProvider.saveDnsServerConfig({
|
final result = await dnsProvider.saveDnsServerConfig({
|
||||||
|
|
|
@ -94,7 +94,7 @@ class _PrivateReverseDnsServersScreenState extends State<PrivateReverseDnsServer
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void saveData() async {
|
void saveData() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
||||||
|
|
||||||
final result = await dnsProvider.savePrivateReverseServersConfig(
|
final result = await dnsProvider.savePrivateReverseServersConfig(
|
||||||
|
|
|
@ -141,7 +141,7 @@ class _UpstreamDnsScreenState extends State<UpstreamDnsScreen> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void saveData() async {
|
void saveData() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
||||||
|
|
||||||
final result = await dnsProvider.saveUpstreamDnsConfig({
|
final result = await dnsProvider.saveUpstreamDnsConfig({
|
||||||
|
|
|
@ -59,7 +59,7 @@ class _DnsRewritesScreenState extends State<DnsRewritesScreen> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void deleteDnsRewrite(RewriteRules rule) async {
|
void deleteDnsRewrite(RewriteRules rule) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.deleting);
|
processModal.open(AppLocalizations.of(context)!.deleting);
|
||||||
|
|
||||||
final result = await rewriteRulesProvider.deleteDnsRewrite(rule);
|
final result = await rewriteRulesProvider.deleteDnsRewrite(rule);
|
||||||
|
@ -83,7 +83,7 @@ class _DnsRewritesScreenState extends State<DnsRewritesScreen> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void addDnsRewrite(RewriteRules rule, _) async {
|
void addDnsRewrite(RewriteRules rule, _) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.addingRewrite);
|
processModal.open(AppLocalizations.of(context)!.addingRewrite);
|
||||||
|
|
||||||
final result = await rewriteRulesProvider.addDnsRewrite(rule);
|
final result = await rewriteRulesProvider.addDnsRewrite(rule);
|
||||||
|
@ -107,7 +107,7 @@ class _DnsRewritesScreenState extends State<DnsRewritesScreen> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateRewriteRule(RewriteRules newRule, RewriteRules? previousRule) async {
|
void updateRewriteRule(RewriteRules newRule, RewriteRules? previousRule) async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.updatingRule);
|
processModal.open(AppLocalizations.of(context)!.updatingRule);
|
||||||
|
|
||||||
final result = await rewriteRulesProvider.editDnsRewrite(newRule, previousRule!);
|
final result = await rewriteRulesProvider.editDnsRewrite(newRule, previousRule!);
|
||||||
|
|
|
@ -201,7 +201,7 @@ class _EncryptionSettingsState extends State<EncryptionSettings> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void saveData() async {
|
void saveData() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
||||||
|
|
||||||
final result = await serversProvider.apiClient2!.saveEncryptionSettings(
|
final result = await serversProvider.apiClient2!.saveEncryptionSettings(
|
||||||
|
|
|
@ -74,7 +74,7 @@ class _SafeSearchSettingsScreenState extends State<SafeSearchSettingsScreen> {
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
void saveConfig() async {
|
void saveConfig() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingSettings);
|
processModal.open(AppLocalizations.of(context)!.savingSettings);
|
||||||
|
|
||||||
final result = await statusProvider.updateSafeSearchConfig({
|
final result = await statusProvider.updateSafeSearchConfig({
|
||||||
|
|
|
@ -32,7 +32,7 @@ class UpdateScreen extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
void update() async {
|
void update() async {
|
||||||
ProcessModal processModal = ProcessModal(context: context);
|
ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.requestingUpdate);
|
processModal.open(AppLocalizations.of(context)!.requestingUpdate);
|
||||||
|
|
||||||
final result = await serversProvider.apiClient2!.requestUpdateServer();
|
final result = await serversProvider.apiClient2!.requestUpdateServer();
|
||||||
|
|
|
@ -39,7 +39,7 @@ class DomainOptions extends StatelessWidget {
|
||||||
final appConfigProvider = Provider.of<AppConfigProvider>(context);
|
final appConfigProvider = Provider.of<AppConfigProvider>(context);
|
||||||
|
|
||||||
void blockUnblock(String domain, String newStatus) async {
|
void blockUnblock(String domain, String newStatus) async {
|
||||||
final ProcessModal processModal = ProcessModal(context: context);
|
final ProcessModal processModal = ProcessModal();
|
||||||
processModal.open(AppLocalizations.of(context)!.savingUserFilters);
|
processModal.open(AppLocalizations.of(context)!.savingUserFilters);
|
||||||
|
|
||||||
final rules = await statusProvider.blockUnblockDomain(
|
final rules = await statusProvider.blockUnblockDomain(
|
||||||
|
|
|
@ -2,9 +2,13 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
|
|
||||||
|
import 'package:adguard_home_manager/widgets/add_server/unsupported_version_modal.dart';
|
||||||
import 'package:adguard_home_manager/widgets/servers_list/delete_modal.dart';
|
import 'package:adguard_home_manager/widgets/servers_list/delete_modal.dart';
|
||||||
import 'package:adguard_home_manager/widgets/add_server/add_server_functions.dart';
|
import 'package:adguard_home_manager/widgets/add_server/add_server_functions.dart';
|
||||||
|
|
||||||
|
import 'package:adguard_home_manager/config/globals.dart';
|
||||||
|
import 'package:adguard_home_manager/config/minimum_server_version.dart';
|
||||||
|
import 'package:adguard_home_manager/functions/compare_versions.dart';
|
||||||
import 'package:adguard_home_manager/constants/enums.dart';
|
import 'package:adguard_home_manager/constants/enums.dart';
|
||||||
import 'package:adguard_home_manager/functions/snackbar.dart';
|
import 'package:adguard_home_manager/functions/snackbar.dart';
|
||||||
import 'package:adguard_home_manager/models/server_status.dart';
|
import 'package:adguard_home_manager/models/server_status.dart';
|
||||||
|
@ -71,7 +75,7 @@ void connectToServer({
|
||||||
required BuildContext context,
|
required BuildContext context,
|
||||||
required Server server
|
required Server server
|
||||||
}) async {
|
}) async {
|
||||||
final ProcessModal process = ProcessModal(context: context);
|
final ProcessModal process = ProcessModal();
|
||||||
process.open(AppLocalizations.of(context)!.connecting);
|
process.open(AppLocalizations.of(context)!.connecting);
|
||||||
|
|
||||||
final result = server.runningOnHa == true
|
final result = server.runningOnHa == true
|
||||||
|
@ -84,13 +88,35 @@ void connectToServer({
|
||||||
|
|
||||||
final ApiClientV2 apiClient2 = ApiClientV2(server: server);
|
final ApiClientV2 apiClient2 = ApiClientV2(server: server);
|
||||||
serversProvider.setApiClient2(apiClient2);
|
serversProvider.setApiClient2(apiClient2);
|
||||||
serversProvider.setSelectedServer(server);
|
|
||||||
|
|
||||||
statusProvider.setServerStatusLoad(LoadStatus.loading);
|
statusProvider.setServerStatusLoad(LoadStatus.loading);
|
||||||
final serverStatus = await apiClient2.getServerStatus();
|
final serverStatus = await apiClient2.getServerStatus();
|
||||||
if (serverStatus.successful == true) {
|
if (serverStatus.successful == true) {
|
||||||
|
final status = serverStatus.content as ServerStatus;
|
||||||
|
|
||||||
|
// Check if server version is supported
|
||||||
|
final validVersion = serverVersionIsAhead(
|
||||||
|
currentVersion: status.serverVersion,
|
||||||
|
referenceVersion: MinimumServerVersion.stable,
|
||||||
|
referenceVersionBeta: MinimumServerVersion.beta
|
||||||
|
);
|
||||||
|
if (validVersion == false) {
|
||||||
|
process.close();
|
||||||
|
showDialog(
|
||||||
|
context: globalNavigatorKey.currentContext!,
|
||||||
|
builder: (ctx) => UnsupportedVersionModal(
|
||||||
|
serverVersion: status.serverVersion,
|
||||||
|
onClose: () {
|
||||||
|
serversProvider.setSelectedServer(null);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
serversProvider.setSelectedServer(server);
|
||||||
statusProvider.setServerStatusData(
|
statusProvider.setServerStatusData(
|
||||||
data: serverStatus.content as ServerStatus
|
data: status
|
||||||
);
|
);
|
||||||
serversProvider.checkServerUpdatesAvailable(
|
serversProvider.checkServerUpdatesAvailable(
|
||||||
server: server,
|
server: server,
|
||||||
|
|
|
@ -96,7 +96,7 @@ class _ServersListItemState extends State<ServersListItem> with SingleTickerProv
|
||||||
}
|
}
|
||||||
|
|
||||||
void connectToServer(Server server) async {
|
void connectToServer(Server server) async {
|
||||||
final ProcessModal process = ProcessModal(context: context);
|
final ProcessModal process = ProcessModal();
|
||||||
process.open(AppLocalizations.of(context)!.connecting);
|
process.open(AppLocalizations.of(context)!.connecting);
|
||||||
|
|
||||||
final result = server.runningOnHa == true
|
final result = server.runningOnHa == true
|
||||||
|
|
Loading…
Add table
Reference in a new issue