mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-05-14 05:52:51 +00:00
Changed api requests
This commit is contained in:
parent
f14828ae19
commit
e161cfb594
32 changed files with 1376 additions and 740 deletions
|
@ -58,11 +58,11 @@ class _CheckHostModalState extends State<CheckHostModal> {
|
|||
void checkHost() async {
|
||||
setState(() => resultWidget = checking());
|
||||
|
||||
final result = await serversProvider.apiClient!.checkHostFiltered(host: domainController.text);
|
||||
final result = await serversProvider.apiClient2!.checkHostFiltered(host: domainController.text);
|
||||
|
||||
if (mounted) {
|
||||
if (result['result'] == 'success') {
|
||||
final status = getFilteredStatus(context, appConfigProvider, result['data']['reason'], true);
|
||||
if (result.successful == true) {
|
||||
final status = getFilteredStatus(context, appConfigProvider, result.content['reason'], true);
|
||||
if (mounted) {
|
||||
setState(() => resultWidget = Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
|
|
|
@ -53,11 +53,9 @@ class _FiltersState extends State<Filters> {
|
|||
void updateLists() async {
|
||||
ProcessModal processModal = ProcessModal(context: context);
|
||||
processModal.open(AppLocalizations.of(context)!.updatingLists);
|
||||
|
||||
final result = await filteringProvider.updateLists();
|
||||
|
||||
if (!mounted) return;
|
||||
processModal.close();
|
||||
|
||||
if (result['success'] == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
|
|
|
@ -81,10 +81,7 @@ class _ManagementModalState extends State<ManagementModal> with SingleTickerProv
|
|||
newStatus: value,
|
||||
time: time
|
||||
);
|
||||
if (mounted && result != null) {
|
||||
if (result != false) {
|
||||
appConfigProvider.addLog(result);
|
||||
}
|
||||
if (mounted && result == false) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.invalidUsernamePassword,
|
||||
|
|
|
@ -7,8 +7,6 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
|||
import 'package:adguard_home_manager/screens/logs/configuration/config_widgets.dart';
|
||||
|
||||
import 'package:adguard_home_manager/constants/enums.dart';
|
||||
import 'package:adguard_home_manager/functions/compare_versions.dart';
|
||||
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
||||
import 'package:adguard_home_manager/providers/servers_provider.dart';
|
||||
|
||||
class RetentionItem {
|
||||
|
@ -21,62 +19,27 @@ class RetentionItem {
|
|||
});
|
||||
}
|
||||
|
||||
class LogsConfigModal extends StatelessWidget {
|
||||
final void Function(Map<String, dynamic>) onConfirm;
|
||||
final void Function() onClear;
|
||||
final bool dialog;
|
||||
final String serverVersion;
|
||||
|
||||
const LogsConfigModal({
|
||||
Key? key,
|
||||
required this.onConfirm,
|
||||
required this.onClear,
|
||||
required this.dialog,
|
||||
required this.serverVersion
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final serversProvider = Provider.of<ServersProvider>(context);
|
||||
final appConfigProvider = Provider.of<AppConfigProvider>(context);
|
||||
|
||||
return LogsConfigModalWidget(
|
||||
serversProvider: serversProvider,
|
||||
appConfigProvider: appConfigProvider,
|
||||
context: context,
|
||||
onConfirm: onConfirm,
|
||||
onClear: onClear,
|
||||
dialog: dialog,
|
||||
serverVersion: serverVersion,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class LogsConfigModalWidget extends StatefulWidget {
|
||||
final ServersProvider serversProvider;
|
||||
final AppConfigProvider appConfigProvider;
|
||||
class LogsConfigModal extends StatefulWidget {
|
||||
final BuildContext context;
|
||||
final void Function(Map<String, dynamic>) onConfirm;
|
||||
final void Function() onClear;
|
||||
final bool dialog;
|
||||
final String serverVersion;
|
||||
|
||||
const LogsConfigModalWidget({
|
||||
Key? key,
|
||||
required this.serversProvider,
|
||||
required this.appConfigProvider,
|
||||
const LogsConfigModal({
|
||||
super.key,
|
||||
required this.context,
|
||||
required this.onConfirm,
|
||||
required this.onClear,
|
||||
required this.dialog,
|
||||
required this.serverVersion
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<LogsConfigModalWidget> createState() => _LogsConfigModalWidgetState();
|
||||
State<LogsConfigModal> createState() => _LogsConfigModalState();
|
||||
}
|
||||
|
||||
class _LogsConfigModalWidgetState extends State<LogsConfigModalWidget> {
|
||||
class _LogsConfigModalState extends State<LogsConfigModal> {
|
||||
bool generalSwitch = false;
|
||||
bool anonymizeClientIp = false;
|
||||
double? retentionTime;
|
||||
|
@ -88,21 +51,15 @@ class _LogsConfigModalWidgetState extends State<LogsConfigModalWidget> {
|
|||
void loadData() async {
|
||||
final serversProvider = Provider.of<ServersProvider>(context, listen: false);
|
||||
|
||||
final result = serverVersionIsAhead(
|
||||
currentVersion: widget.serverVersion,
|
||||
referenceVersion: 'v0.107.28',
|
||||
referenceVersionBeta: 'v0.108.0-b.33'
|
||||
) == true
|
||||
? await serversProvider.apiClient!.getQueryLogInfo()
|
||||
: await serversProvider.apiClient!.getQueryLogInfoLegacy();
|
||||
final result = await serversProvider.apiClient2!.getQueryLogInfo();
|
||||
|
||||
if (mounted) {
|
||||
if (result['result'] == 'success') {
|
||||
if (result.successful == true) {
|
||||
setState(() {
|
||||
generalSwitch = result['data']['enabled'];
|
||||
anonymizeClientIp = result['data']['anonymize_client_ip'];
|
||||
retentionTime = result['data']['interval'] != null
|
||||
? double.parse(result['data']['interval'].toString())
|
||||
generalSwitch = result.content['enabled'];
|
||||
anonymizeClientIp = result.content['anonymize_client_ip'];
|
||||
retentionTime = result.content['interval'] != null
|
||||
? double.parse(result.content['interval'].toString())
|
||||
: null;
|
||||
loadStatus = LoadStatus.loaded;
|
||||
});
|
||||
|
@ -115,11 +72,7 @@ class _LogsConfigModalWidgetState extends State<LogsConfigModalWidget> {
|
|||
|
||||
@override
|
||||
void initState() {
|
||||
retentionItems = serverVersionIsAhead(
|
||||
currentVersion: widget.serverVersion,
|
||||
referenceVersion: 'v0.107.28',
|
||||
referenceVersionBeta: 'v0.108.0-b.33'
|
||||
) == true ? [
|
||||
retentionItems = [
|
||||
RetentionItem(
|
||||
label: AppLocalizations.of(widget.context)!.hours6,
|
||||
value: 21600000
|
||||
|
@ -140,27 +93,6 @@ class _LogsConfigModalWidgetState extends State<LogsConfigModalWidget> {
|
|||
label: AppLocalizations.of(widget.context)!.days90,
|
||||
value: 7776000000
|
||||
),
|
||||
] : [
|
||||
RetentionItem(
|
||||
label: AppLocalizations.of(widget.context)!.hours6,
|
||||
value: 0.25
|
||||
),
|
||||
RetentionItem(
|
||||
label: AppLocalizations.of(widget.context)!.hours24,
|
||||
value: 1
|
||||
),
|
||||
RetentionItem(
|
||||
label: AppLocalizations.of(widget.context)!.days7,
|
||||
value: 7
|
||||
),
|
||||
RetentionItem(
|
||||
label: AppLocalizations.of(widget.context)!.days30,
|
||||
value: 30
|
||||
),
|
||||
RetentionItem(
|
||||
label: AppLocalizations.of(widget.context)!.days90,
|
||||
value: 90
|
||||
),
|
||||
];
|
||||
|
||||
loadData();
|
||||
|
|
|
@ -25,10 +25,10 @@ class LogsListAppBar extends StatelessWidget {
|
|||
final bool showDivider;
|
||||
|
||||
const LogsListAppBar({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.innerBoxIsScrolled,
|
||||
required this.showDivider,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -43,17 +43,11 @@ class LogsListAppBar extends StatelessWidget {
|
|||
ProcessModal processModal = ProcessModal(context: context);
|
||||
processModal.open(AppLocalizations.of(context)!.updatingSettings);
|
||||
|
||||
final result = serverVersionIsAhead(
|
||||
currentVersion: statusProvider.serverStatus!.serverVersion,
|
||||
referenceVersion: 'v0.107.28',
|
||||
referenceVersionBeta: 'v0.108.0-b.33'
|
||||
) == true
|
||||
? await serversProvider.apiClient!.updateQueryLogParameters(data: data)
|
||||
: await serversProvider.apiClient!.updateQueryLogParametersLegacy(data: data);
|
||||
|
||||
final result = await serversProvider.apiClient2!.updateQueryLogParameters(data: data);
|
||||
|
||||
processModal.close();
|
||||
|
||||
if (result['result'] == 'success') {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.logsConfigUpdated,
|
||||
|
@ -61,8 +55,6 @@ class LogsListAppBar extends StatelessWidget {
|
|||
);
|
||||
}
|
||||
else {
|
||||
appConfigProvider.addLog(result['log']);
|
||||
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.logsConfigNotUpdated,
|
||||
|
@ -75,11 +67,11 @@ class LogsListAppBar extends StatelessWidget {
|
|||
ProcessModal processModal = ProcessModal(context: context);
|
||||
processModal.open(AppLocalizations.of(context)!.updatingSettings);
|
||||
|
||||
final result = await serversProvider.apiClient!.clearLogs();
|
||||
final result = await serversProvider.apiClient2!.clearLogs();
|
||||
|
||||
processModal.close();
|
||||
|
||||
if (result['result'] == 'success') {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.logsCleared,
|
||||
|
@ -159,6 +151,7 @@ class LogsListAppBar extends StatelessWidget {
|
|||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => LogsConfigModal(
|
||||
context: context,
|
||||
onConfirm: updateConfig,
|
||||
onClear: clearQueries,
|
||||
dialog: true,
|
||||
|
@ -172,6 +165,7 @@ class LogsListAppBar extends StatelessWidget {
|
|||
context: context,
|
||||
useRootNavigator: true,
|
||||
builder: (context) => LogsConfigModal(
|
||||
context: context,
|
||||
onConfirm: updateConfig,
|
||||
onClear: clearQueries,
|
||||
dialog: false,
|
||||
|
|
|
@ -103,14 +103,14 @@ class _ClientsListState extends State<ClientsList> {
|
|||
|
||||
processModal.close();
|
||||
|
||||
if (result['success'] == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.clientRemovedSuccessfully,
|
||||
color: Colors.green
|
||||
);
|
||||
}
|
||||
else if (result['success'] == false && result['error'] == 'client_another_list') {
|
||||
else if (result.successful == false && result.content == 'client_another_list') {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.clientAnotherList,
|
||||
|
@ -120,7 +120,7 @@ class _ClientsListState extends State<ClientsList> {
|
|||
else {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: type == 'allowed' || type == 'blocked'
|
||||
label: type == AccessSettingsList.allowed || type == AccessSettingsList.disallowed
|
||||
? AppLocalizations.of(context)!.clientNotRemoved
|
||||
: AppLocalizations.of(context)!.domainNotAdded,
|
||||
color: Colors.red
|
||||
|
@ -136,14 +136,14 @@ class _ClientsListState extends State<ClientsList> {
|
|||
|
||||
processModal.close();
|
||||
|
||||
if (result['success'] == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.clientAddedSuccessfully,
|
||||
color: Colors.green
|
||||
);
|
||||
}
|
||||
else if (result['success'] == false && result['error'] == 'client_another_list') {
|
||||
else if (result.successful == false && result.content == 'client_another_list') {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.clientAnotherList,
|
||||
|
@ -153,7 +153,7 @@ class _ClientsListState extends State<ClientsList> {
|
|||
else {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: type == 'allowed' || type == 'blocked'
|
||||
label: type == AccessSettingsList.allowed || type == AccessSettingsList.disallowed
|
||||
? AppLocalizations.of(context)!.clientNotRemoved
|
||||
: AppLocalizations.of(context)!.domainNotAdded,
|
||||
color: Colors.red
|
||||
|
|
|
@ -194,8 +194,7 @@ class _DhcpScreenState extends State<DhcpScreen> {
|
|||
void saveSettings() async {
|
||||
ProcessModal processModal = ProcessModal(context: context);
|
||||
processModal.open(AppLocalizations.of(context)!.savingSettings);
|
||||
|
||||
final result = await serversProvider.apiClient!.saveDhcpConfig(
|
||||
final result = await serversProvider.apiClient2!.saveDhcpConfig(
|
||||
data: {
|
||||
"enabled": enabled,
|
||||
"interface_name": selectedInterface!.name,
|
||||
|
@ -213,10 +212,9 @@ class _DhcpScreenState extends State<DhcpScreen> {
|
|||
}
|
||||
}
|
||||
);
|
||||
|
||||
if (!mounted) return;
|
||||
processModal.close();
|
||||
|
||||
if (result['result'] == 'success') {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.settingsSaved,
|
||||
|
@ -236,14 +234,11 @@ class _DhcpScreenState extends State<DhcpScreen> {
|
|||
Future.delayed(const Duration(seconds: 0), () async {
|
||||
ProcessModal processModal = ProcessModal(context: context);
|
||||
processModal.open(AppLocalizations.of(context)!.restoringConfig);
|
||||
|
||||
final result = await serversProvider.apiClient!.resetDhcpConfig();
|
||||
|
||||
final result = await serversProvider.apiClient2!.resetDhcpConfig();
|
||||
if (!mounted) return;
|
||||
processModal.close();
|
||||
|
||||
if (result['result'] == 'success') {
|
||||
if (result.successful == true) {
|
||||
clearAll();
|
||||
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.configRestored,
|
||||
|
|
|
@ -66,21 +66,21 @@ class DhcpLeases extends StatelessWidget {
|
|||
|
||||
processModal.close();
|
||||
|
||||
if (result['success'] == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.staticLeaseCreated,
|
||||
color: Colors.green
|
||||
);
|
||||
}
|
||||
else if (result['success'] == false && result['error'] == 'already_exists' ) {
|
||||
else if (result.successful == false && result.content == "already_exists") {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.staticLeaseExists,
|
||||
color: Colors.red
|
||||
);
|
||||
}
|
||||
else if (result['success'] == false && result['error'] == 'server_not_configured' ) {
|
||||
else if (result.successful == false && result.content == "server_not_configured") {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.serverNotConfigured,
|
||||
|
|
|
@ -11,7 +11,7 @@ import 'package:adguard_home_manager/functions/snackbar.dart';
|
|||
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
||||
|
||||
class BootstrapDnsScreen extends StatefulWidget {
|
||||
const BootstrapDnsScreen({Key? key}) : super(key: key);
|
||||
const BootstrapDnsScreen({super.key});
|
||||
|
||||
@override
|
||||
State<BootstrapDnsScreen> createState() => _BootstrapDnsScreenState();
|
||||
|
@ -79,14 +79,14 @@ class _BootstrapDnsScreenState extends State<BootstrapDnsScreen> {
|
|||
|
||||
processModal.close();
|
||||
|
||||
if (result['success'] == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.dnsConfigSaved,
|
||||
color: Colors.green
|
||||
);
|
||||
}
|
||||
else if (result['success'] == false && result['error'] == 400) {
|
||||
else if (result.successful == false && result.statusCode == 400) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.someValueNotValid,
|
||||
|
|
|
@ -16,7 +16,7 @@ import 'package:adguard_home_manager/functions/snackbar.dart';
|
|||
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
||||
|
||||
class CacheConfigDnsScreen extends StatefulWidget {
|
||||
const CacheConfigDnsScreen({Key? key}) : super(key: key);
|
||||
const CacheConfigDnsScreen({super.key});
|
||||
|
||||
@override
|
||||
State<CacheConfigDnsScreen> createState() => _CacheConfigDnsScreenState();
|
||||
|
@ -85,14 +85,14 @@ class _CacheConfigDnsScreenState extends State<CacheConfigDnsScreen> {
|
|||
|
||||
processModal.close();
|
||||
|
||||
if (result['success'] == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.dnsConfigSaved,
|
||||
color: Colors.green
|
||||
);
|
||||
}
|
||||
else if (result['success'] == false && result['error'] == 400) {
|
||||
else if (result.successful== false && result.statusCode == 400) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.someValueNotValid,
|
||||
|
@ -138,7 +138,7 @@ class _CacheConfigDnsScreenState extends State<CacheConfigDnsScreen> {
|
|||
|
||||
void clearCache() async {
|
||||
final result = await clearDnsCache(context, serversProvider.selectedServer!);
|
||||
if (result == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.dnsCacheCleared,
|
||||
|
|
|
@ -63,7 +63,7 @@ class _DnsSettingsState extends State<DnsSettings> {
|
|||
|
||||
void clearCache() async {
|
||||
final result = await clearDnsCache(context, serversProvider.selectedServer!);
|
||||
if (result == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.dnsCacheCleared,
|
||||
|
|
|
@ -15,7 +15,7 @@ import 'package:adguard_home_manager/functions/snackbar.dart';
|
|||
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
||||
|
||||
class DnsServerSettingsScreen extends StatefulWidget {
|
||||
const DnsServerSettingsScreen({Key? key}) : super(key: key);
|
||||
const DnsServerSettingsScreen({super.key});
|
||||
|
||||
@override
|
||||
State<DnsServerSettingsScreen> createState() => _DnsServerSettingsScreenState();
|
||||
|
@ -118,14 +118,14 @@ class _DnsServerSettingsScreenState extends State<DnsServerSettingsScreen> {
|
|||
|
||||
processModal.close();
|
||||
|
||||
if (result['success'] == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.dnsConfigSaved,
|
||||
color: Colors.green
|
||||
);
|
||||
}
|
||||
else if (result['success'] == false && result['error'] == 400) {
|
||||
else if (result.successful == false && result.statusCode == 400) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.someValueNotValid,
|
||||
|
|
|
@ -111,14 +111,14 @@ class _PrivateReverseDnsServersScreenState extends State<PrivateReverseDnsServer
|
|||
|
||||
processModal.close();
|
||||
|
||||
if (result['success'] == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.dnsConfigSaved,
|
||||
color: Colors.green
|
||||
);
|
||||
}
|
||||
else if (result['success'] == false && result['error'] == 400) {
|
||||
else if (result.successful == false && result.statusCode == 400) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.someValueNotValid,
|
||||
|
|
|
@ -17,7 +17,7 @@ import 'package:adguard_home_manager/functions/snackbar.dart';
|
|||
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
||||
|
||||
class UpstreamDnsScreen extends StatefulWidget {
|
||||
const UpstreamDnsScreen({Key? key}) : super(key: key);
|
||||
const UpstreamDnsScreen({super.key});
|
||||
|
||||
@override
|
||||
State<UpstreamDnsScreen> createState() => _UpstreamDnsScreenState();
|
||||
|
@ -151,14 +151,14 @@ class _UpstreamDnsScreenState extends State<UpstreamDnsScreen> {
|
|||
|
||||
processModal.close();
|
||||
|
||||
if (result['success'] == true) {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.dnsConfigSaved,
|
||||
color: Colors.green
|
||||
);
|
||||
}
|
||||
else if (result['success'] == false && result['error'] == 400) {
|
||||
else if (result.successful == false && result.statusCode == 400) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.someValueNotValid,
|
||||
|
|
|
@ -13,6 +13,8 @@ import 'package:adguard_home_manager/screens/settings/encryption/master_switch.d
|
|||
import 'package:adguard_home_manager/screens/settings/encryption/encryption_functions.dart';
|
||||
import 'package:adguard_home_manager/screens/settings/encryption/error_message.dart';
|
||||
|
||||
import 'package:adguard_home_manager/constants/enums.dart';
|
||||
import 'package:adguard_home_manager/models/encryption.dart';
|
||||
import 'package:adguard_home_manager/classes/process_modal.dart';
|
||||
import 'package:adguard_home_manager/functions/desktop_mode.dart';
|
||||
import 'package:adguard_home_manager/functions/base64.dart';
|
||||
|
@ -20,37 +22,16 @@ import 'package:adguard_home_manager/functions/snackbar.dart';
|
|||
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
||||
import 'package:adguard_home_manager/providers/servers_provider.dart';
|
||||
|
||||
class EncryptionSettings extends StatelessWidget {
|
||||
const EncryptionSettings({Key? key}) : super(key: key);
|
||||
class EncryptionSettings extends StatefulWidget {
|
||||
const EncryptionSettings({super.key});
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final serversProvider = Provider.of<ServersProvider>(context);
|
||||
final appConfigProvider = Provider.of<AppConfigProvider>(context);
|
||||
|
||||
return EncryptionSettingsWidget(
|
||||
serversProvider: serversProvider,
|
||||
appConfigProvider: appConfigProvider,
|
||||
);
|
||||
}
|
||||
State<EncryptionSettings> createState() => _EncryptionSettingsState();
|
||||
}
|
||||
|
||||
class EncryptionSettingsWidget extends StatefulWidget {
|
||||
final ServersProvider serversProvider;
|
||||
final AppConfigProvider appConfigProvider;
|
||||
|
||||
const EncryptionSettingsWidget({
|
||||
Key? key,
|
||||
required this.serversProvider,
|
||||
required this.appConfigProvider,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<EncryptionSettingsWidget> createState() => _EncryptionSettingsWidgetState();
|
||||
}
|
||||
|
||||
class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
|
||||
int loadStatus = 0;
|
||||
class _EncryptionSettingsState extends State<EncryptionSettings> {
|
||||
LoadStatus loadStatus = LoadStatus.loading;
|
||||
|
||||
bool enabled = false;
|
||||
|
||||
|
@ -96,54 +77,52 @@ class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
|
|||
bool formEdited = false;
|
||||
|
||||
void fetchData({bool? showRefreshIndicator}) async {
|
||||
setState(() => loadStatus = 0);
|
||||
setState(() => loadStatus = LoadStatus.loading);
|
||||
|
||||
final result = await Provider.of<ServersProvider>(context, listen: false).apiClient!.getEncryptionSettings();
|
||||
final result = await Provider.of<ServersProvider>(context, listen: false).apiClient2!.getEncryptionSettings();
|
||||
if (!mounted) return;
|
||||
|
||||
if (mounted) {
|
||||
if (result['result'] == 'success') {
|
||||
await checkValidDataApi(data: result['data'].toJson());
|
||||
final data = result.content as EncryptionData;
|
||||
|
||||
if (result.successful == true) {
|
||||
await checkValidDataApi(data: data.toJson());
|
||||
if (!mounted) return;
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
enabled = result['data'].enabled;
|
||||
domainNameController.text = result['data'].serverName ?? '';
|
||||
redirectHttps = result['data'].forceHttps;
|
||||
httpsPortController.text = result['data'].portHttps != null ? result['data'].portHttps.toString() : '';
|
||||
tlsPortController.text = result['data'].portDnsOverTls != null ? result['data'].portDnsOverTls.toString() : '';
|
||||
dnsOverQuicPortController.text = result['data'].portDnsOverQuic != null ? result['data'].portDnsOverQuic.toString() : '';
|
||||
if (result['data'].certificateChain != '') {
|
||||
certificateOption = 1;
|
||||
certificateContentController.text = decodeBase64(result['data'].certificateChain);
|
||||
}
|
||||
else {
|
||||
certificateOption = 0;
|
||||
certificatePathController.text = result['data'].certificatePath;
|
||||
}
|
||||
if (result['data'].privateKey != '' || result['data'].privateKeySaved == true) {
|
||||
privateKeyOption = 1;
|
||||
}
|
||||
else {
|
||||
privateKeyOption = 0;
|
||||
privateKeyPathController.text = result['data'].privateKeyPath;
|
||||
}
|
||||
usePreviouslySavedKey = result['data'].privateKeySaved;
|
||||
|
||||
loadStatus = 1;
|
||||
});
|
||||
setState(() {
|
||||
enabled = data.enabled;
|
||||
domainNameController.text = data.serverName ?? '';
|
||||
redirectHttps = data.forceHttps ?? false;
|
||||
httpsPortController.text = data.portHttps != null ? data.portHttps.toString() : '';
|
||||
tlsPortController.text = data.portDnsOverTls != null ? data.portDnsOverTls.toString() : '';
|
||||
dnsOverQuicPortController.text = data.portDnsOverQuic != null ? data.portDnsOverQuic.toString() : '';
|
||||
if (data.certificateChain != '') {
|
||||
certificateOption = 1;
|
||||
certificateContentController.text = decodeBase64(data.certificateChain);
|
||||
}
|
||||
}
|
||||
else {
|
||||
widget.appConfigProvider.addLog(result['log']);
|
||||
setState(() => loadStatus = 2);
|
||||
}
|
||||
else {
|
||||
certificateOption = 0;
|
||||
certificatePathController.text = data.certificatePath;
|
||||
}
|
||||
if (data.privateKey != '' || data.privateKeySaved == true) {
|
||||
privateKeyOption = 1;
|
||||
}
|
||||
else {
|
||||
privateKeyOption = 0;
|
||||
privateKeyPathController.text = data.privateKeyPath;
|
||||
}
|
||||
usePreviouslySavedKey = data.privateKeySaved;
|
||||
loadStatus = LoadStatus.loaded;
|
||||
});
|
||||
}
|
||||
else {
|
||||
setState(() => loadStatus = LoadStatus.error);
|
||||
}
|
||||
}
|
||||
|
||||
Future checkValidDataApi({Map<String, dynamic>? data}) async {
|
||||
setState(() => certKeyValidApi = 0);
|
||||
|
||||
final result = await Provider.of<ServersProvider>(context, listen: false).apiClient!.checkEncryptionSettings(
|
||||
final result = await Provider.of<ServersProvider>(context, listen: false).apiClient2!.checkEncryptionSettings(
|
||||
data: data ?? {
|
||||
"enabled": enabled,
|
||||
"server_name": domainNameController.text,
|
||||
|
@ -160,23 +139,20 @@ class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
|
|||
);
|
||||
|
||||
if (mounted) {
|
||||
if (result['result'] == 'success') {
|
||||
if (result.successful == true) {
|
||||
setState(() {
|
||||
if (result['data']['warning_validation'] != null && result['data']['warning_validation'] != '') {
|
||||
if (result.content['warning_validation'] != null && result.content['warning_validation'] != '') {
|
||||
certKeyValidApi = 2;
|
||||
validDataError = result['data']['warning_validation'];
|
||||
validDataError = result.content['warning_validation'];
|
||||
}
|
||||
else {
|
||||
certKeyValidApi = 1;
|
||||
validDataError = null;
|
||||
}
|
||||
certKeyValid = result['data'];
|
||||
certKeyValid = result.content;
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (result['log'].resBody != null) {
|
||||
setState(() => validDataError = result['log'].resBody);
|
||||
}
|
||||
setState(() => certKeyValidApi = 2);
|
||||
}
|
||||
}
|
||||
|
@ -228,7 +204,7 @@ class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
|
|||
ProcessModal processModal = ProcessModal(context: context);
|
||||
processModal.open(AppLocalizations.of(context)!.savingConfig);
|
||||
|
||||
final result = await serversProvider.apiClient!.saveEncryptionSettings(
|
||||
final result = await serversProvider.apiClient2!.saveEncryptionSettings(
|
||||
data: {
|
||||
"enabled": enabled,
|
||||
"server_name": domainNameController.text,
|
||||
|
@ -246,7 +222,7 @@ class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
|
|||
|
||||
processModal.close();
|
||||
|
||||
if (result['result'] == 'success') {
|
||||
if (result.successful == true) {
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.encryptionConfigSaved,
|
||||
|
@ -254,19 +230,17 @@ class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
|
|||
);
|
||||
}
|
||||
else {
|
||||
appConfigProvider.addLog(result['log']);
|
||||
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
label: AppLocalizations.of(context)!.encryptionConfigNotSaved,
|
||||
color: Colors.red
|
||||
);
|
||||
|
||||
if (result['log'].resBody != null) {
|
||||
if (result.content != null) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => ErrorMessageEncryption(
|
||||
errorMessage: result['log'].resBody
|
||||
errorMessage: result.content
|
||||
)
|
||||
);
|
||||
}
|
||||
|
@ -303,7 +277,7 @@ class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
|
|||
body: Builder(
|
||||
builder: (context) {
|
||||
switch (loadStatus) {
|
||||
case 0:
|
||||
case LoadStatus.loading:
|
||||
return SizedBox(
|
||||
width: double.maxFinite,
|
||||
child: Column(
|
||||
|
@ -324,7 +298,7 @@ class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
|
|||
)
|
||||
);
|
||||
|
||||
case 1:
|
||||
case LoadStatus.loaded:
|
||||
return ListView(
|
||||
children: [
|
||||
EncryptionMasterSwitch(
|
||||
|
@ -641,7 +615,7 @@ class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
|
|||
],
|
||||
);
|
||||
|
||||
case 2:
|
||||
case LoadStatus.error:
|
||||
return SizedBox(
|
||||
width: double.maxFinite,
|
||||
child: Column(
|
||||
|
|
|
@ -35,11 +35,11 @@ class UpdateScreen extends StatelessWidget {
|
|||
ProcessModal processModal = ProcessModal(context: context);
|
||||
processModal.open(AppLocalizations.of(context)!.requestingUpdate);
|
||||
|
||||
final result = await serversProvider.apiClient!.requestUpdateServer();
|
||||
final result = await serversProvider.apiClient2!.requestUpdateServer();
|
||||
|
||||
processModal.close();
|
||||
|
||||
if (result['result'] == 'success') {
|
||||
if (result.successful == true) {
|
||||
serversProvider.recheckPeriodServerUpdated();
|
||||
showSnacbkar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue