From 645ec6eb0b341a56fdab5371b37a1c1617c24b8b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 21 May 2023 23:21:03 +0200 Subject: [PATCH] Fixed updater --- lib/base.dart | 3 +- lib/screens/settings/advanced_setings.dart | 146 +++++++++------------ lib/screens/settings/general_settings.dart | 5 +- 3 files changed, 70 insertions(+), 84 deletions(-) diff --git a/lib/base.dart b/lib/base.dart index 932d635..5c6289b 100644 --- a/lib/base.dart +++ b/lib/base.dart @@ -49,7 +49,8 @@ class _BaseState extends State with WidgetsBindingObserver { widget.appConfigProvider.setAppUpdatesAvailable(result['body']); if (Platform.isAndroid) { if ( - widget.appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_LOCAL_SOURCE || + widget.appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_LOCAL_SOURCE || + widget.appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_PLAY_PACKAGE_INSTALLER || widget.appConfigProvider.installationSource == Source.UNKNOWN ) { return result['body']; diff --git a/lib/screens/settings/advanced_setings.dart b/lib/screens/settings/advanced_setings.dart index ca57de4..2ed0ee4 100644 --- a/lib/screens/settings/advanced_setings.dart +++ b/lib/screens/settings/advanced_setings.dart @@ -10,6 +10,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/screens/settings/app_logs/app_logs.dart'; +import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; class AdvancedSettings extends StatelessWidget { @@ -20,97 +21,80 @@ class AdvancedSettings extends StatelessWidget { final appConfigProvider = Provider.of(context); final width = MediaQuery.of(context).size.width; - - Future updateSslCheck(bool newStatus) async { - final result = await appConfigProvider.setOverrideSslCheck(newStatus); + + Future updateSettings({ + required bool newStatus, + required Future Function(bool) function + }) async { + final result = await function(newStatus); if (result == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(AppLocalizations.of(context)!.restartAppTakeEffect), - backgroundColor: Colors.green, - ) + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.settingsUpdatedSuccessfully, + color: Colors.green ); } else { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(AppLocalizations.of(context)!.cannotUpdateSettings), - backgroundColor: Colors.red, - ) + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.cannotUpdateSettings, + color: Colors.red ); } } return Scaffold( - body: NestedScrollView( - headerSliverBuilder: (context, innerBoxIsScrolled) => [ - SliverOverlapAbsorber( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - sliver: SliverAppBar( - pinned: true, - floating: true, - centerTitle: false, - forceElevated: innerBoxIsScrolled, - title: Text(AppLocalizations.of(context)!.generalSettings), - ) - ) - ], - body: SafeArea( - top: false, - bottom: false, - child: Builder( - builder: (context) => CustomScrollView( - slivers: [ - SliverOverlapInjector( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - ), - SliverList.list( - children: [ - CustomListTile( - icon: Icons.lock, - title: AppLocalizations.of(context)!.dontCheckCertificate, - subtitle: AppLocalizations.of(context)!.dontCheckCertificateDescription, - trailing: Switch( - value: appConfigProvider.overrideSslCheck, - onChanged: updateSslCheck, - ), - onTap: () => updateSslCheck(!appConfigProvider.overrideSslCheck), - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 20, - right: 10 - ) - ), - CustomListTile( - icon: Icons.list_rounded, - title: AppLocalizations.of(context)!.logs, - subtitle: AppLocalizations.of(context)!.checkAppLogs, - onTap: () => { - if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { - SplitView.of(context).push(const AppLogs()) - } - else { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => const AppLogs() - ) - ) - } - }, - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 20, - right: 10 - ) - ), - ], - ) - ], + appBar: AppBar( + title: Text(AppLocalizations.of(context)!.advancedSettings), + ), + body: ListView( + children: [ + CustomListTile( + icon: Icons.lock, + title: AppLocalizations.of(context)!.dontCheckCertificate, + subtitle: AppLocalizations.of(context)!.dontCheckCertificateDescription, + trailing: Switch( + value: appConfigProvider.overrideSslCheck, + onChanged: (value) => updateSettings( + newStatus: value, + function: appConfigProvider.setOverrideSslCheck + ), ), - ) - ) + onTap: () => updateSettings( + newStatus: !appConfigProvider.overrideSslCheck, + function: appConfigProvider.setOverrideSslCheck + ), + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + left: 20, + right: 10 + ) + ), + CustomListTile( + icon: Icons.list_rounded, + title: AppLocalizations.of(context)!.logs, + subtitle: AppLocalizations.of(context)!.checkAppLogs, + onTap: () => { + if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { + SplitView.of(context).push(const AppLogs()) + } + else { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => const AppLogs() + ) + ) + } + }, + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + left: 20, + right: 10 + ) + ), + ], ) ); } diff --git a/lib/screens/settings/general_settings.dart b/lib/screens/settings/general_settings.dart index 178eb40..d237d3c 100644 --- a/lib/screens/settings/general_settings.dart +++ b/lib/screens/settings/general_settings.dart @@ -207,9 +207,10 @@ class _GeneralSettingsState extends State { if ( !(Platform.isAndroid || Platform.isIOS) || (Platform.isAndroid && ( - appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_LOCAL_SOURCE) || + appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_LOCAL_SOURCE || + appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_PLAY_PACKAGE_INSTALLER || appConfigProvider.installationSource == Source.UNKNOWN - ) + )) ) ...[ SectionLabel(label: AppLocalizations.of(context)!.application), CustomListTile(