Fixed update notification

This commit is contained in:
Juan Gilsanz Polo 2023-11-12 18:51:41 +01:00
parent e5a971f3a3
commit c1950fdc2b
2 changed files with 31 additions and 26 deletions

View file

@ -3,8 +3,11 @@ import 'package:animations/animations.dart';
import 'package:provider/provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/widgets/update_modal.dart';
import 'package:adguard_home_manager/widgets/system_ui_overlay_style.dart';
import 'package:adguard_home_manager/functions/check_app_updates.dart';
import 'package:adguard_home_manager/functions/open_url.dart';
import 'package:adguard_home_manager/providers/app_config_provider.dart';
import 'package:adguard_home_manager/config/app_screens.dart';
import 'package:adguard_home_manager/config/sizes.dart';
@ -19,13 +22,39 @@ class Layout extends StatefulWidget {
State<Layout> createState() => _LayoutState();
}
class _LayoutState extends State<Layout> {
class _LayoutState extends State<Layout> with WidgetsBindingObserver {
bool _drawerExpanded = true;
void _goBranch(int index) {
Provider.of<AppConfigProvider>(context, listen: false).setSelectedScreen(index);
}
@override
void initState() {
WidgetsBinding.instance.addObserver(this);
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async {
final appConfigProvider = Provider.of<AppConfigProvider>(context, listen: false);
final result = await checkAppUpdates(
currentBuildNumber: appConfigProvider.getAppInfo!.buildNumber,
installationSource: appConfigProvider.installationSource,
setUpdateAvailable: appConfigProvider.setAppUpdatesAvailable,
isBeta: appConfigProvider.getAppInfo!.version.contains('beta'),
);
if (result != null && appConfigProvider.doNotRememberVersion != result.tagName && mounted) {
await showDialog(
context: context,
builder: (context) => UpdateModal(
gitHubRelease: result,
onDownload: (link, version) => openUrl(link),
),
);
}
});
}
@override
Widget build(BuildContext context) {
final width = MediaQuery.of(context).size.width;