diff --git a/assets/images/tray_icon.png b/assets/images/tray_icon.png new file mode 100644 index 00000000..3b317c99 Binary files /dev/null and b/assets/images/tray_icon.png differ diff --git a/lib/features/system_tray/controller/system_tray_controller.dart b/lib/features/system_tray/controller/system_tray_controller.dart index 284d2e66..da194952 100644 --- a/lib/features/system_tray/controller/system_tray_controller.dart +++ b/lib/features/system_tray/controller/system_tray_controller.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:hiddify/core/core_providers.dart'; import 'package:hiddify/domain/connectivity/connectivity.dart'; import 'package:hiddify/features/common/connectivity/connectivity_controller.dart'; @@ -16,7 +18,10 @@ class SystemTrayController extends _$SystemTrayController Future build() async { if (!_initialized) { loggy.debug('initializing'); - await trayManager.setIcon(Assets.images.trayIcon); + await trayManager.setIcon( + _trayIconPath, + isTemplate: Platform.isMacOS, + ); trayManager.addListener(this); _initialized = true; } @@ -29,6 +34,11 @@ class SystemTrayController extends _$SystemTrayController bool _initialized = false; + String get _trayIconPath { + if (Platform.isWindows) return Assets.images.trayIconIco; + return Assets.images.trayIconPng.path; + } + Future _updateTray(ConnectionStatus connection) async { final t = ref.watch(translationsProvider); final trayMenu = Menu( diff --git a/pubspec.yaml b/pubspec.yaml index 013433f2..829e9b6b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -105,6 +105,8 @@ flutter: - assets/core/geosite.db - assets/images/logo.svg - assets/images/tray_icon.ico + - assets/images/tray_icon.png + - assets/images/tray_icon_black.png - assets/images/tray_icon_connected.ico - assets/images/tray_icon_disconnected.ico