Fixed updater

This commit is contained in:
Juan Gilsanz Polo 2023-05-21 23:21:03 +02:00
parent d23e26c8d7
commit 645ec6eb0b
3 changed files with 70 additions and 84 deletions

View file

@ -49,7 +49,8 @@ class _BaseState extends State<Base> with WidgetsBindingObserver {
widget.appConfigProvider.setAppUpdatesAvailable(result['body']); widget.appConfigProvider.setAppUpdatesAvailable(result['body']);
if (Platform.isAndroid) { if (Platform.isAndroid) {
if ( 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 widget.appConfigProvider.installationSource == Source.UNKNOWN
) { ) {
return result['body']; return result['body'];

View file

@ -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/widgets/custom_list_tile.dart';
import 'package:adguard_home_manager/screens/settings/app_logs/app_logs.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'; import 'package:adguard_home_manager/providers/app_config_provider.dart';
class AdvancedSettings extends StatelessWidget { class AdvancedSettings extends StatelessWidget {
@ -20,97 +21,80 @@ class AdvancedSettings extends StatelessWidget {
final appConfigProvider = Provider.of<AppConfigProvider>(context); final appConfigProvider = Provider.of<AppConfigProvider>(context);
final width = MediaQuery.of(context).size.width; final width = MediaQuery.of(context).size.width;
Future updateSslCheck(bool newStatus) async { Future updateSettings({
final result = await appConfigProvider.setOverrideSslCheck(newStatus); required bool newStatus,
required Future Function(bool) function
}) async {
final result = await function(newStatus);
if (result == true) { if (result == true) {
ScaffoldMessenger.of(context).showSnackBar( showSnacbkar(
SnackBar( appConfigProvider: appConfigProvider,
content: Text(AppLocalizations.of(context)!.restartAppTakeEffect), label: AppLocalizations.of(context)!.settingsUpdatedSuccessfully,
backgroundColor: Colors.green, color: Colors.green
)
); );
} }
else { else {
ScaffoldMessenger.of(context).showSnackBar( showSnacbkar(
SnackBar( appConfigProvider: appConfigProvider,
content: Text(AppLocalizations.of(context)!.cannotUpdateSettings), label: AppLocalizations.of(context)!.cannotUpdateSettings,
backgroundColor: Colors.red, color: Colors.red
)
); );
} }
} }
return Scaffold( return Scaffold(
body: NestedScrollView( appBar: AppBar(
headerSliverBuilder: (context, innerBoxIsScrolled) => [ title: Text(AppLocalizations.of(context)!.advancedSettings),
SliverOverlapAbsorber( ),
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), body: ListView(
sliver: SliverAppBar( children: [
pinned: true, CustomListTile(
floating: true, icon: Icons.lock,
centerTitle: false, title: AppLocalizations.of(context)!.dontCheckCertificate,
forceElevated: innerBoxIsScrolled, subtitle: AppLocalizations.of(context)!.dontCheckCertificateDescription,
title: Text(AppLocalizations.of(context)!.generalSettings), trailing: Switch(
) value: appConfigProvider.overrideSslCheck,
) onChanged: (value) => updateSettings(
], newStatus: value,
body: SafeArea( function: appConfigProvider.setOverrideSslCheck
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
)
),
],
)
],
), ),
) 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
)
),
],
) )
); );
} }

View file

@ -207,9 +207,10 @@ class _GeneralSettingsState extends State<GeneralSettings> {
if ( if (
!(Platform.isAndroid || Platform.isIOS) || !(Platform.isAndroid || Platform.isIOS) ||
(Platform.isAndroid && ( (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 appConfigProvider.installationSource == Source.UNKNOWN
) ))
) ...[ ) ...[
SectionLabel(label: AppLocalizations.of(context)!.application), SectionLabel(label: AppLocalizations.of(context)!.application),
CustomListTile( CustomListTile(