diff --git a/assets/images/tray_icon_dark.ico b/assets/images/tray_icon_dark.ico new file mode 100644 index 00000000..a3484c58 Binary files /dev/null and b/assets/images/tray_icon_dark.ico differ diff --git a/assets/images/tray_icon_dark.png b/assets/images/tray_icon_dark.png new file mode 100644 index 00000000..0867f8ce Binary files /dev/null and b/assets/images/tray_icon_dark.png differ diff --git a/lib/features/system_tray/notifier/system_tray_notifier.dart b/lib/features/system_tray/notifier/system_tray_notifier.dart index f49e3e42..f5b6b70b 100644 --- a/lib/features/system_tray/notifier/system_tray_notifier.dart +++ b/lib/features/system_tray/notifier/system_tray_notifier.dart @@ -1,4 +1,6 @@ import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; import 'package:hiddify/core/localization/translations.dart'; import 'package:hiddify/core/model/constants.dart'; @@ -123,7 +125,14 @@ class SystemTrayNotifier extends _$SystemTrayNotifier with AppLogger { } static String get _trayIconPath { - if (Platform.isWindows) return Assets.images.trayIconIco; - return Assets.images.trayIconPng.path; + final Brightness brightness = WidgetsBinding.instance.platformDispatcher.platformBrightness; + bool isDarkMode = brightness == Brightness.dark; + if (isDarkMode) { + if (Platform.isWindows) return Assets.images.trayIconIco; + return Assets.images.trayIconPng.path; + } else { + if (Platform.isWindows) return Assets.images.trayIconDarkIco; + return Assets.images.trayIconDarkPng.path; + } } } diff --git a/pubspec.yaml b/pubspec.yaml index a085ce28..d8ea9689 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -113,6 +113,8 @@ flutter: - assets/images/logo.svg - assets/images/tray_icon.ico - assets/images/tray_icon.png + - assets/images/tray_icon_dark.ico + - assets/images/tray_icon_dark.png - assets/images/tray_icon_connected.ico - assets/images/tray_icon_disconnected.ico - assets/images/connect_norouz.PNG