From 3925f743951e51f138cc3ca865fa167c34e776ef Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Thu, 8 Dec 2022 10:07:54 +0600 Subject: [PATCH] fix: update download dialog blocking the UI --- lib/hooks/useUpdateChecker.dart | 69 ++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/lib/hooks/useUpdateChecker.dart b/lib/hooks/useUpdateChecker.dart index 448c9fb72..1c1c8c2ac 100644 --- a/lib/hooks/useUpdateChecker.dart +++ b/lib/hooks/useUpdateChecker.dart @@ -53,40 +53,45 @@ void useUpdateChecker(WidgetRef ref) { final latestVersion = value.last; if (currentVersion == null || latestVersion == null) return; if (latestVersion <= currentVersion) return; - showPlatformAlertDialog(context, builder: (context) { - const url = - "https://spotube.netlify.app/other-downloads/stable-downloads"; - return PlatformAlertDialog( - macosAppIcon: Sidebar.brandLogo(), - title: const PlatformText("Spotube has an update"), - primaryActions: [ - PlatformFilledButton( - child: const Text("Download Now"), - onPressed: () => download(url), - ), - ], - content: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Text("Spotube v${value.last} has been released"), - Row( - children: [ - const PlatformText("Read the latest "), - AnchorButton( - "release notes", - style: const TextStyle(color: Colors.blue), - onTap: () => launchUrlString( - url, - mode: LaunchMode.externalApplication, - ), - ), - ], + showPlatformAlertDialog( + context, + barrierDismissible: true, + barrierColor: Colors.black26, + builder: (context) { + const url = + "https://spotube.netlify.app/other-downloads/stable-downloads"; + return PlatformAlertDialog( + macosAppIcon: Sidebar.brandLogo(), + title: const PlatformText("Spotube has an update"), + primaryActions: [ + PlatformFilledButton( + child: const Text("Download Now"), + onPressed: () => download(url), ), ], - ), - ); - }); + content: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text("Spotube v${value.last} has been released"), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const PlatformText("Read the latest "), + AnchorButton( + "release notes", + style: const TextStyle(color: Colors.blue), + onTap: () => launchUrlString( + url, + mode: LaunchMode.externalApplication, + ), + ), + ], + ), + ], + ), + ); + }, + ); }); return null; }, [packageInfo, isCheckUpdateEnabled]);