From 7820486e1a419def11057b6fa9a64a25aa06fe28 Mon Sep 17 00:00:00 2001 From: problematicconsumer Date: Wed, 15 Nov 2023 18:48:48 +0330 Subject: [PATCH] Add navigation to system tray --- assets/translations/strings_en.i18n.json | 1 + assets/translations/strings_fa.i18n.json | 3 ++- assets/translations/strings_ru.i18n.json | 3 ++- assets/translations/strings_zh.i18n.json | 3 ++- .../system_tray/system_tray_controller.dart | 24 +++++++++++++++++++ 5 files changed, 31 insertions(+), 3 deletions(-) diff --git a/assets/translations/strings_en.i18n.json b/assets/translations/strings_en.i18n.json index 403d6d36..cae1904b 100644 --- a/assets/translations/strings_en.i18n.json +++ b/assets/translations/strings_en.i18n.json @@ -241,6 +241,7 @@ "tray": { "dashboard": "Dashboard", "quit": "Quit", + "open": "Open", "status": { "connect": "Connect", "connecting": "Connecting", diff --git a/assets/translations/strings_fa.i18n.json b/assets/translations/strings_fa.i18n.json index ffafbc34..c9bc0356 100644 --- a/assets/translations/strings_fa.i18n.json +++ b/assets/translations/strings_fa.i18n.json @@ -246,7 +246,8 @@ "connecting": "در حال اتصال", "disconnect": "قطع اتصال", "disconnecting": "در حال قطع اتصال" - } + }, + "open": "باز کن" }, "failure": { "unexpected": "خطای غیرمنتظره", diff --git a/assets/translations/strings_ru.i18n.json b/assets/translations/strings_ru.i18n.json index cca67955..a41ea710 100644 --- a/assets/translations/strings_ru.i18n.json +++ b/assets/translations/strings_ru.i18n.json @@ -246,7 +246,8 @@ "connecting": "Подключение", "disconnect": "Отключено", "disconnecting": "Отключение" - } + }, + "open": "Открыть" }, "failure": { "unexpected": "Непредвиденная ошибка", diff --git a/assets/translations/strings_zh.i18n.json b/assets/translations/strings_zh.i18n.json index daa6e0d5..f3117624 100644 --- a/assets/translations/strings_zh.i18n.json +++ b/assets/translations/strings_zh.i18n.json @@ -246,7 +246,8 @@ "connecting": "正在连接", "disconnect": "已断开连接", "disconnecting": "正在断开连接" - } + }, + "open": "打开" }, "failure": { "unexpected": "意外错误", diff --git a/lib/features/system_tray/system_tray_controller.dart b/lib/features/system_tray/system_tray_controller.dart index f93c8602..c230fb9f 100644 --- a/lib/features/system_tray/system_tray_controller.dart +++ b/lib/features/system_tray/system_tray_controller.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:hiddify/core/core_providers.dart'; +import 'package:hiddify/core/router/router.dart'; import 'package:hiddify/data/repository/config_options_store.dart'; import 'package:hiddify/domain/connectivity/connectivity.dart'; import 'package:hiddify/domain/constants.dart'; @@ -37,6 +38,13 @@ class SystemTrayController extends _$SystemTrayController final serviceMode = ref.watch(serviceModeStoreProvider); final t = ref.watch(translationsProvider); + final destinations = <(String label, String location)>[ + (t.home.pageTitle, const HomeRoute().location), + (t.proxies.pageTitle, const ProxiesRoute().location), + (t.logs.pageTitle, const LogsRoute().location), + (t.settings.pageTitle, const SettingsRoute().location), + (t.about.pageTitle, const AboutRoute().location), + ]; loggy.debug('updating system tray'); @@ -79,6 +87,22 @@ class SystemTrayController extends _$SystemTrayController ], ), ), + MenuItem.submenu( + label: t.tray.open, + submenu: Menu( + items: [ + ...destinations.map( + (e) => MenuItem( + label: e.$1, + onClick: (_) async { + await ref.read(windowControllerProvider.notifier).show(); + ref.read(routerProvider).go(e.$2); + }, + ), + ), + ], + ), + ), MenuItem.separator(), MenuItem( label: t.tray.quit,