diff --git a/ui/flutter/assets/tray_icon/icon_mac.png b/ui/flutter/assets/tray_icon/icon_mac.png new file mode 100644 index 00000000..83980e19 Binary files /dev/null and b/ui/flutter/assets/tray_icon/icon_mac.png differ diff --git a/ui/flutter/lib/app/modules/app/controllers/app_controller.dart b/ui/flutter/lib/app/modules/app/controllers/app_controller.dart index aef9cdfe..fded8bfd 100644 --- a/ui/flutter/lib/app/modules/app/controllers/app_controller.dart +++ b/ui/flutter/lib/app/modules/app/controllers/app_controller.dart @@ -9,6 +9,7 @@ import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tray_manager/tray_manager.dart'; import 'package:uri_to_file/uri_to_file.dart'; +import 'package:url_launcher/url_launcher.dart'; import 'package:window_manager/window_manager.dart'; import '../../../../api/api.dart'; @@ -81,9 +82,9 @@ class AppController extends GetxController with WindowListener, TrayListener { logger.w("initDeepLinks error", e); } try { - _initWinodws(); + _initWindows(); } catch (e) { - logger.w("_initWinodws error", e); + logger.w("initWindows error", e); } try { _initTray(); @@ -131,7 +132,7 @@ class AppController extends GetxController with WindowListener, TrayListener { } } - Future _initWinodws() async { + Future _initWindows() async { if (!Util.isDesktop()) { return; } @@ -142,11 +143,14 @@ class AppController extends GetxController with WindowListener, TrayListener { if (!Util.isDesktop()) { return; } - await trayManager.setIcon( - Util.isWindows() - ? 'assets/tray_icon/icon.ico' - : 'assets/tray_icon/icon.png', - ); + if (Util.isWindows()) { + await trayManager.setIcon('assets/tray_icon/icon.ico'); + } else if (Util.isMacos()) { + await trayManager.setIcon('assets/tray_icon/icon_mac.png', + isTemplate: true); + } else { + await trayManager.setIcon('assets/tray_icon/icon.png'); + } final menu = Menu(items: [ MenuItem( label: "create".tr, @@ -165,11 +169,15 @@ class AppController extends GetxController with WindowListener, TrayListener { MenuItem.separator(), MenuItem( label: 'donate'.tr, - onClick: (menuItem) => {windowManager.destroy()}, + onClick: (menuItem) => { + launchUrl( + Uri.parse( + "https://github.com/GopeedLab/gopeed/blob/main/.donate/index.md#donate"), + mode: LaunchMode.externalApplication) + }, ), MenuItem( label: '${"version".tr}(${packageInfo.version})', - onClick: (menuItem) => {windowManager.destroy()}, ), MenuItem.separator(), MenuItem( diff --git a/ui/flutter/lib/main.dart b/ui/flutter/lib/main.dart index 0499b9c4..35ae7b5b 100644 --- a/ui/flutter/lib/main.dart +++ b/ui/flutter/lib/main.dart @@ -28,13 +28,9 @@ Future init() async { const windowOptions = WindowOptions( size: Size(1024, 768), center: true, - backgroundColor: Colors.transparent, skipTaskbar: false, ); windowManager.waitUntilReadyToShow(windowOptions, () async { - await windowManager.setBrightness( - Brightness.light, - ); await windowManager.show(); await windowManager.focus(); await windowManager.setPreventClose(true);