diff --git a/lib/core/update.dart b/lib/core/update.dart index 3e9d2606..59ab6c80 100644 --- a/lib/core/update.dart +++ b/lib/core/update.dart @@ -3,7 +3,6 @@ import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:r_upgrade/r_upgrade.dart'; -import 'package:toolbox/core/extension/context/common.dart'; import 'package:toolbox/core/extension/context/dialog.dart'; import 'package:toolbox/core/extension/context/locale.dart'; import 'package:toolbox/core/extension/context/snackbar.dart'; @@ -78,25 +77,18 @@ Future doUpdate(BuildContext context, {bool force = false}) async { Future _doUpdate(AppUpdate update, BuildContext context) async { final url = update.url.current; - if (url == null) return; + if (url == null) { + Loggers.app.warning('Update url not is null'); + return; + } if (isAndroid) { final fileName = url.split('/').last; await RUpgrade.upgrade(url, fileName: fileName); } else if (isIOS) { await RUpgrade.upgradeFromAppStore('1586449703'); - } else if (isMacOS) { - await openUrl(url); } else { - context.showRoundDialog( - child: Text(l10n.platformNotSupportUpdate), - actions: [ - TextButton( - onPressed: () => context.pop(), - child: Text(l10n.ok), - ) - ], - ); + await openUrl(url); } } diff --git a/lib/data/model/app/update.dart b/lib/data/model/app/update.dart index ffd1c256..d6f61469 100644 --- a/lib/data/model/app/update.dart +++ b/lib/data/model/app/update.dart @@ -87,11 +87,15 @@ class AppUpdatePlatformSpecific { required this.mac, required this.ios, required this.android, + required this.windows, + required this.linux, }); final T mac; final T ios; final T android; + final T windows; + final T linux; factory AppUpdatePlatformSpecific.fromRawJson(String str) => AppUpdatePlatformSpecific.fromJson(json.decode(str)); @@ -103,12 +107,16 @@ class AppUpdatePlatformSpecific { mac: json["mac"], ios: json["ios"], android: json["android"], + windows: json["windows"], + linux: json["linux"], ); Map toJson() => { "mac": mac, "ios": ios, "android": android, + "windows": windows, + "linux": linux, }; T? get current { @@ -119,7 +127,15 @@ class AppUpdatePlatformSpecific { return ios; case OS.android: return android; - default: + case OS.windows: + return windows; + case OS.linux: + return linux; + + /// Not implemented yet. + case OS.web: + case OS.fuchsia: + case OS.unknown: return null; } }