diff --git a/lib/apps_list/widgets/custom_app_bar.dart b/lib/apps_list/widgets/custom_app_bar.dart index 8cbcd219..51223bb0 100644 --- a/lib/apps_list/widgets/custom_app_bar.dart +++ b/lib/apps_list/widgets/custom_app_bar.dart @@ -1,7 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:flutter_markdown/flutter_markdown.dart'; +import 'package:flutter_markdown_plus/flutter_markdown_plus.dart'; import 'package:flutter_typeahead/flutter_typeahead.dart'; import '../../../settings/cubit/settings_cubit.dart'; diff --git a/lib/apps_list/widgets/first_run_dialog.dart b/lib/apps_list/widgets/first_run_dialog.dart index 47e0c041..42273ed8 100644 --- a/lib/apps_list/widgets/first_run_dialog.dart +++ b/lib/apps_list/widgets/first_run_dialog.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:flutter_markdown/flutter_markdown.dart'; +import 'package:flutter_markdown_plus/flutter_markdown_plus.dart'; import '../../app/app.dart'; diff --git a/lib/hotkey/global/hotkey_service.dart b/lib/hotkey/global/hotkey_service.dart index 5ee1689b..711fd8fb 100644 --- a/lib/hotkey/global/hotkey_service.dart +++ b/lib/hotkey/global/hotkey_service.dart @@ -1,11 +1,12 @@ import 'dart:async'; +import 'package:flutter/services.dart'; import 'package:hotkey_manager/hotkey_manager.dart'; import '../../logs/logs.dart'; /// The default hotkey to use if none is set. -final HotKey defaultHotkey = HotKey(KeyCode.pause); +final HotKey defaultHotkey = HotKey(key: PhysicalKeyboardKey.pause); /// Handles global (system-wide) hotkeys. class HotkeyService { @@ -19,34 +20,22 @@ class HotkeyService { Future addHotkey(HotKey hotKey) async { if (hotKeyManager.registeredHotKeyList.contains(hotKey)) { - log.w('Hotkey already registered: ${hotKey.toStringHelper()}'); + log.w('Hotkey already registered: ${hotKey.debugName}'); return; } await hotKeyManager.register( hotKey, keyDownHandler: (hotKey) { - log.i('Hotkey triggered: ${hotKey.toStringHelper()}'); + log.i('Hotkey triggered: ${hotKey.debugName}'); _hotkeyTriggeredStreamController.add(hotKey); }, ); - log.i('Registered hotkey: ${hotKey.toStringHelper()}'); + log.i('Registered hotkey: ${hotKey.debugName}'); } Future removeHotkey(HotKey hotkey) async { await hotKeyManager.unregister(hotkey); } } - -extension HotKeyHelper on HotKey { - String toStringHelper() { - String hotkeyString = ''; - for (var modifier in modifiers ?? []) { - hotkeyString += '${modifier.keyLabel} + '; - } - - hotkeyString += keyCode.keyLabel; - return hotkeyString; - } -} diff --git a/lib/loading/loading_page.dart b/lib/loading/loading_page.dart index df546fe5..fe67f416 100644 --- a/lib/loading/loading_page.dart +++ b/lib/loading/loading_page.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:flutter_markdown/flutter_markdown.dart'; +import 'package:flutter_markdown_plus/flutter_markdown_plus.dart'; import '../../apps_list/apps_list.dart'; import '../app/app.dart'; diff --git a/lib/localization/app_localizations.dart b/lib/localization/app_localizations.dart index 404da3b0..a6117f6b 100644 --- a/lib/localization/app_localizations.dart +++ b/lib/localization/app_localizations.dart @@ -419,30 +419,6 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Select app'** String get selectApp; - - /// Label for the show window menu item in system tray - /// - /// In en, this message translates to: - /// **'Show'** - String get show; - - /// Label for the hide window menu item in system tray - /// - /// In en, this message translates to: - /// **'Hide'** - String get hide; - - /// Label for the reset window menu item in system tray - /// - /// In en, this message translates to: - /// **'Reset Window'** - String get resetWindow; - - /// Label for the exit menu item in system tray - /// - /// In en, this message translates to: - /// **'Exit'** - String get exit; } class _AppLocalizationsDelegate extends LocalizationsDelegate { diff --git a/lib/localization/app_localizations_de.dart b/lib/localization/app_localizations_de.dart index 12317e11..d601af86 100644 --- a/lib/localization/app_localizations_de.dart +++ b/lib/localization/app_localizations_de.dart @@ -23,6 +23,15 @@ class AppLocalizationsDe extends AppLocalizations { @override String get favoriteButtonTooltipRemove => 'Remove from favorites'; + @override + String get suspendAllInstances => 'Suspend all instances'; + + @override + String get resumeAllInstances => 'Resume all instances'; + + @override + String get close => 'Close'; + @override String get detailsDialogTitle => 'Details'; @@ -38,6 +47,15 @@ class AppLocalizationsDe extends AppLocalizations { @override String get detailsDialogCurrentStatus => 'Aktueller Status'; + @override + String get statusNormal => 'Normal'; + + @override + String get statusSuspended => 'Suspended'; + + @override + String get statusUnknown => 'Unknown'; + @override String get copyLogs => 'Protokolle kopieren'; @@ -121,6 +139,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get logs => 'Protokolle'; + @override + String get verboseLogging => 'Verbose logging'; + @override String get aboutTitle => 'Über'; @@ -132,4 +153,23 @@ class AppLocalizationsDe extends AppLocalizations { @override String get repository => 'GitHub Repository'; + + @override + String get hotkey => 'Hotkey'; + + @override + String get recordNewHotkey => 'Record a new hotkey'; + + @override + String get appSpecificHotkeys => 'App specific hotkeys'; + + @override + String get appSpecificHotkeysTooltip => + 'Hotkeys to directly toggle suspend/resume for specific apps, even when they are not focused.'; + + @override + String get addAppSpecificHotkey => 'Add app specific hotkey'; + + @override + String get selectApp => 'Select app'; } diff --git a/lib/localization/app_localizations_en.dart b/lib/localization/app_localizations_en.dart index fd4f213d..6717138a 100644 --- a/lib/localization/app_localizations_en.dart +++ b/lib/localization/app_localizations_en.dart @@ -172,16 +172,4 @@ class AppLocalizationsEn extends AppLocalizations { @override String get selectApp => 'Select app'; - - @override - String get show => 'Show'; - - @override - String get hide => 'Hide'; - - @override - String get resetWindow => 'Reset Window'; - - @override - String get exit => 'Exit'; } diff --git a/lib/localization/app_localizations_it.dart b/lib/localization/app_localizations_it.dart index bb69850e..15e311db 100644 --- a/lib/localization/app_localizations_it.dart +++ b/lib/localization/app_localizations_it.dart @@ -23,6 +23,15 @@ class AppLocalizationsIt extends AppLocalizations { @override String get favoriteButtonTooltipRemove => 'Remove from favorites'; + @override + String get suspendAllInstances => 'Suspend all instances'; + + @override + String get resumeAllInstances => 'Resume all instances'; + + @override + String get close => 'Close'; + @override String get detailsDialogTitle => 'Dettagli'; @@ -38,6 +47,15 @@ class AppLocalizationsIt extends AppLocalizations { @override String get detailsDialogCurrentStatus => 'Stato attuale'; + @override + String get statusNormal => 'Normal'; + + @override + String get statusSuspended => 'Suspended'; + + @override + String get statusUnknown => 'Unknown'; + @override String get copyLogs => 'Copia log'; @@ -122,6 +140,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get logs => 'Log'; + @override + String get verboseLogging => 'Verbose logging'; + @override String get aboutTitle => 'Informazioni'; @@ -133,4 +154,23 @@ class AppLocalizationsIt extends AppLocalizations { @override String get repository => 'Repository GitHub'; + + @override + String get hotkey => 'Hotkey'; + + @override + String get recordNewHotkey => 'Record a new hotkey'; + + @override + String get appSpecificHotkeys => 'App specific hotkeys'; + + @override + String get appSpecificHotkeysTooltip => + 'Hotkeys to directly toggle suspend/resume for specific apps, even when they are not focused.'; + + @override + String get addAppSpecificHotkey => 'Add app specific hotkey'; + + @override + String get selectApp => 'Select app'; } diff --git a/lib/localization/app_localizations_zh.dart b/lib/localization/app_localizations_zh.dart index 7b98dd0b..754f50ad 100644 --- a/lib/localization/app_localizations_zh.dart +++ b/lib/localization/app_localizations_zh.dart @@ -168,16 +168,4 @@ class AppLocalizationsZh extends AppLocalizations { @override String get selectApp => '选择应用'; - - @override - String get show => '显示'; - - @override - String get hide => '隐藏'; - - @override - String get resetWindow => '重置窗口'; - - @override - String get exit => '退出'; } diff --git a/lib/settings/widgets/integration_section.dart b/lib/settings/widgets/integration_section.dart index 36c6ef44..0350be9e 100644 --- a/lib/settings/widgets/integration_section.dart +++ b/lib/settings/widgets/integration_section.dart @@ -4,7 +4,6 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:hotkey_manager/hotkey_manager.dart'; import '../../apps_list/apps_list.dart'; -import '../../hotkey/global/hotkey_service.dart'; import '../../localization/app_localizations.dart'; import '../../theme/styles.dart'; import '../settings.dart'; @@ -134,7 +133,7 @@ class _HotkeyConfigWidget extends StatelessWidget { ), child: BlocBuilder( builder: (context, state) { - return Text(state.hotKey.toStringHelper()); + return Text(state.hotKey.debugName); }, ), ), @@ -262,7 +261,7 @@ class _AppSpecificHotkeys extends StatelessWidget { child: Card( elevation: 2, child: ListTile( - leading: Text(hotkey.hotkey.toStringHelper()), + leading: Text(hotkey.hotkey.debugName), title: Text(hotkey.executable), trailing: ElevatedButton( onPressed: () => settingsCubit.removeAppSpecificHotkey( diff --git a/lib/settings/widgets/theme_section.dart b/lib/settings/widgets/theme_section.dart index bed118fd..7b2431ab 100644 --- a/lib/settings/widgets/theme_section.dart +++ b/lib/settings/widgets/theme_section.dart @@ -24,37 +24,39 @@ class _ThemeChooser extends StatelessWidget { Widget build(BuildContext context) { return BlocBuilder( builder: (context, state) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - AppLocalizations.of(context)!.themeTitle, - ), - RadioListTile( - title: Text( - AppLocalizations.of(context)!.dark, + return RadioGroup( + groupValue: state.appTheme, + onChanged: (value) { + if (value != null) { + themeCubit.changeTheme(value); + } + }, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + AppLocalizations.of(context)!.themeTitle, ), - groupValue: state.appTheme, - value: AppTheme.dark, - onChanged: (value) => themeCubit.changeTheme(value!), - ), - RadioListTile( - title: Text( - AppLocalizations.of(context)!.pitchBlack, + RadioListTile( + title: Text( + AppLocalizations.of(context)!.dark, + ), + value: AppTheme.dark, ), - groupValue: state.appTheme, - value: AppTheme.pitchBlack, - onChanged: (value) => themeCubit.changeTheme(value!), - ), - RadioListTile( - title: Text( - AppLocalizations.of(context)!.light, + RadioListTile( + title: Text( + AppLocalizations.of(context)!.pitchBlack, + ), + value: AppTheme.pitchBlack, ), - groupValue: state.appTheme, - value: AppTheme.light, - onChanged: (value) => themeCubit.changeTheme(value!), - ), - ], + RadioListTile( + title: Text( + AppLocalizations.of(context)!.light, + ), + value: AppTheme.light, + ), + ], + ), ); }, ); diff --git a/pubspec.lock b/pubspec.lock index d37896eb..1bcbfe5a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f + sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d url: "https://pub.dev" source: hosted - version: "85.0.0" + version: "91.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d" + sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08 url: "https://pub.dev" source: hosted - version: "7.7.1" + version: "8.4.1" archive: dependency: transitive description: @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: bloc - sha256: e18b8e7825e9921d67a6d256dba0b6015ece8a577eb0a411845c46a352994d78 + sha256: a48653a82055a900b88cd35f92429f068c5a8057ae9b136d197b3d56c57efb81 url: "https://pub.dev" source: hosted - version: "9.0.1" + version: "9.2.0" boolean_selector: dependency: transitive description: @@ -61,10 +61,10 @@ packages: dependency: transitive description: name: build - sha256: ce76b1d48875e3233fde17717c23d1f60a91cc631597e49a400c89b475395b1d + sha256: "275bf6bb2a00a9852c28d4e0b410da1d833a734d57d39d44f94bfc895a484ec3" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.0.4" build_config: dependency: transitive description: @@ -77,34 +77,18 @@ packages: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" - url: "https://pub.dev" - source: hosted - version: "4.0.4" - build_resolvers: - dependency: transitive - description: - name: build_resolvers - sha256: d1d57f7807debd7349b4726a19fd32ec8bc177c71ad0febf91a20f84cd2d4b46 + sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "4.1.1" build_runner: dependency: "direct dev" description: name: build_runner - sha256: b24597fceb695969d47025c958f3837f9f0122e237c6a22cb082a5ac66c3ca30 - url: "https://pub.dev" - source: hosted - version: "2.7.1" - build_runner_core: - dependency: transitive - description: - name: build_runner_core - sha256: "066dda7f73d8eb48ba630a55acb50c4a84a2e6b453b1cb4567f581729e794f7b" + sha256: b4d854962a32fd9f8efc0b76f98214790b833af8b2e9b2df6bfc927c0415a072 url: "https://pub.dev" source: hosted - version: "9.3.1" + version: "2.10.5" built_collection: dependency: transitive description: @@ -117,10 +101,10 @@ packages: dependency: transitive description: name: built_value - sha256: a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d + sha256: "7931c90b84bc573fef103548e354258ae4c9d28d140e41961df6843c5d60d4d8" url: "https://pub.dev" source: hosted - version: "8.12.0" + version: "8.12.3" characters: dependency: transitive description: @@ -161,14 +145,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" + code_assets: + dependency: transitive + description: + name: code_assets + sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687" + url: "https://pub.dev" + source: hosted + version: "1.0.0" code_builder: dependency: transitive description: name: code_builder - sha256: "11654819532ba94c34de52ff5feb52bd81cba1de00ef2ed622fd50295f9d4243" + sha256: "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d" url: "https://pub.dev" source: hosted - version: "4.11.0" + version: "4.11.1" collection: dependency: "direct main" description: @@ -205,18 +197,18 @@ packages: dependency: transitive description: name: crypto - sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "3.0.7" dart_style: dependency: transitive description: name: dart_style - sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb" + sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.3" dbus: dependency: transitive description: @@ -237,10 +229,10 @@ packages: dependency: "direct main" description: name: ffi - sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" file: dependency: transitive description: @@ -346,13 +338,21 @@ packages: source: sdk version: "0.0.0" flutter_markdown: - dependency: "direct main" + dependency: transitive description: name: flutter_markdown sha256: "04c4722cc36ec5af38acc38ece70d22d3c2123c61305d555750a091517bbe504" url: "https://pub.dev" source: hosted version: "0.6.23" + flutter_markdown_plus: + dependency: "direct main" + description: + name: flutter_markdown_plus + sha256: "039177906850278e8fb1cd364115ee0a46281135932fa8ecea8455522166d2de" + url: "https://pub.dev" + source: hosted + version: "1.0.7" flutter_test: dependency: "direct dev" description: flutter @@ -404,10 +404,10 @@ packages: dependency: transitive description: name: get_it - sha256: a4292e7cf67193f8e7c1258203104eb2a51ec8b3a04baa14695f4064c144297b + sha256: "1d648d2dd2047d7f7450d5727ca24ee435f240385753d90b49650e3cdff32e56" url: "https://pub.dev" source: hosted - version: "8.2.0" + version: "9.2.0" glob: dependency: transitive description: @@ -449,23 +449,63 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + hooks: + dependency: transitive + description: + name: hooks + sha256: "5d309c86e7ce34cd8e37aa71cb30cb652d3829b900ab145e4d9da564b31d59f7" + url: "https://pub.dev" + source: hosted + version: "1.0.0" hotkey_manager: dependency: "direct main" description: - path: "." - ref: "893e0c7fb880347fa0978787a312629dc874bd2c" - resolved-ref: "893e0c7fb880347fa0978787a312629dc874bd2c" - url: "https://github.com/Merrit/hotkey_manager.git" + name: hotkey_manager + sha256: "06f0655b76c8dd322fb7101dc615afbdbf39c3d3414df9e059c33892104479cd" + url: "https://pub.dev" + source: hosted + version: "0.2.3" + hotkey_manager_linux: + dependency: "direct overridden" + description: + path: "packages/hotkey_manager_linux" + ref: "1b31e3ca4ab017ee72f54a7065b2073a88403d61" + resolved-ref: "1b31e3ca4ab017ee72f54a7065b2073a88403d61" + url: "https://github.com/gepbird/hotkey_manager.git" source: git - version: "0.1.8" + version: "0.2.0" + hotkey_manager_macos: + dependency: transitive + description: + name: hotkey_manager_macos + sha256: "03b5967e64357b9ac05188ea4a5df6fe4ed4205762cb80aaccf8916ee1713c96" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + hotkey_manager_platform_interface: + dependency: transitive + description: + name: hotkey_manager_platform_interface + sha256: "98ffca25b8cc9081552902747b2942e3bc37855389a4218c9d50ca316b653b13" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + hotkey_manager_windows: + dependency: transitive + description: + name: hotkey_manager_windows + sha256: "0d03ced9fe563ed0b68f0a0e1b22c9ffe26eb8053cb960e401f68a4f070e0117" + url: "https://pub.dev" + source: hosted + version: "0.2.0" http: dependency: "direct main" description: name: http - sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007 + sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.6.0" http_multi_server: dependency: transitive description: @@ -486,10 +526,10 @@ packages: dependency: transitive description: name: image - sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + sha256: "492bd52f6c4fbb6ee41f781ff27765ce5f627910e1e0cbecfa3d9add5562604c" url: "https://pub.dev" source: hosted - version: "4.5.4" + version: "4.7.2" integration_test: dependency: "direct dev" description: flutter @@ -531,10 +571,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: "33a040668b31b320aafa4822b7b1e177e163fc3c1e835c6750319d4ab23aa6fe" + sha256: c5b2ee75210a0f263c6c7b9eeea80553dbae96ea1bf57f02484e806a3ffdffa3 url: "https://pub.dev" source: hosted - version: "6.11.1" + version: "6.11.2" launch_at_startup: dependency: "direct main" description: @@ -579,10 +619,10 @@ packages: dependency: "direct main" description: name: logger - sha256: "55d6c23a6c15db14920e037fe7e0dc32e7cdaf3b64b4b25df2d541b5b6b81c0c" + sha256: a7967e31b703831a893bbc3c3dd11db08126fe5f369b5c648a36f821979f5be3 url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "2.6.2" logging: dependency: transitive description: @@ -627,10 +667,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" mime: dependency: transitive description: @@ -643,18 +683,26 @@ packages: dependency: "direct dev" description: name: mockito - sha256: "2314cbe9165bcd16106513df9cf3c3224713087f09723b128928dc11a4379f99" + sha256: a45d1aa065b796922db7b9e7e7e45f921aed17adf3a8318a1f47097e7e695566 url: "https://pub.dev" source: hosted - version: "5.5.0" + version: "5.6.3" msix: dependency: "direct dev" description: name: msix - sha256: f88033fcb9e0dd8de5b18897cbebbd28ea30596810f4a7c86b12b0c03ace87e5 + sha256: b6b08e7a7b5d1845f2b1d31216d5b1fb558e98251efefe54eb79ed00d27bc2ac + url: "https://pub.dev" + source: hosted + version: "3.16.13" + native_toolchain_c: + dependency: transitive + description: + name: native_toolchain_c + sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac" url: "https://pub.dev" source: hosted - version: "3.16.12" + version: "0.17.4" nested: dependency: transitive description: @@ -671,6 +719,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" + objective_c: + dependency: transitive + description: + name: objective_c + sha256: "983c7fa1501f6dcc0cb7af4e42072e9993cb28d73604d25ebf4dab08165d997e" + url: "https://pub.dev" + source: hosted + version: "9.2.5" package_config: dependency: transitive description: @@ -683,10 +739,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" + sha256: f69da0d3189a4b4ceaeb1a3defb0f329b3b352517f52bed4290f83d4f06bc08d url: "https://pub.dev" source: hosted - version: "8.3.1" + version: "9.0.0" package_info_plus_platform_interface: dependency: transitive description: @@ -715,18 +771,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "993381400e94d18469750e5b9dcb8206f15bc09f9da86b9e44a9b0092a0066db" + sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e url: "https://pub.dev" source: hosted - version: "2.2.18" + version: "2.2.22" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" + sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.6.0" path_provider_linux: dependency: transitive description: @@ -787,10 +843,10 @@ packages: dependency: transitive description: name: pointer_interceptor_ios - sha256: a6906772b3205b42c44614fcea28f818b1e5fdad73a4ca742a7bd49818d9c917 + sha256: "03c5fa5896080963ab4917eeffda8d28c90f22863a496fb5ba13bc10943e40e4" url: "https://pub.dev" source: hosted - version: "0.10.1" + version: "0.10.1+1" pointer_interceptor_platform_interface: dependency: transitive description: @@ -944,10 +1000,10 @@ packages: dependency: transitive description: name: source_gen - sha256: "7b19d6ba131c6eb98bfcbf8d56c1a7002eba438af2e7ae6f8398b2b0f4f381e3" + sha256: "1d562a3c1f713904ebbed50d2760217fd8a51ca170ac4b05b0db490699dbac17" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.2.0" source_helper: dependency: transitive description: @@ -1032,42 +1088,34 @@ packages: dependency: "direct dev" description: name: test - sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb" + sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7" url: "https://pub.dev" source: hosted - version: "1.26.2" + version: "1.26.3" test_api: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.7" test_core: dependency: transitive description: name: test_core - sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a" - url: "https://pub.dev" - source: hosted - version: "0.6.11" - timing: - dependency: transitive - description: - name: timing - sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" + sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "0.6.12" tray_manager: dependency: "direct main" description: name: tray_manager - sha256: "537e539f48cd82d8ee2240d4330158c7b44c7e043e8e18b5811f2f8f6b7df25a" + sha256: c5fd83b0ae4d80be6eaedfad87aaefab8787b333b8ebd064b0e442a81006035b url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.5.2" typed_data: dependency: transitive description: @@ -1076,6 +1124,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + uni_platform: + dependency: transitive + description: + name: uni_platform + sha256: e02213a7ee5352212412ca026afd41d269eb00d982faa552f419ffc2debfad84 + url: "https://pub.dev" + source: hosted + version: "0.1.3" url_launcher: dependency: "direct main" description: @@ -1088,34 +1144,34 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "199bc33e746088546a39cc5f36bac5a278c5e53b40cb3196f99e7345fdcfae6b" + sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611" url: "https://pub.dev" source: hosted - version: "6.3.22" + version: "6.3.28" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 + sha256: cfde38aa257dae62ffe79c87fab20165dfdf6988c1d31b58ebf59b9106062aad url: "https://pub.dev" source: hosted - version: "6.3.4" + version: "6.3.6" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f + sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18" url: "https://pub.dev" source: hosted - version: "3.2.3" + version: "3.2.5" url_launcher_platform_interface: dependency: transitive description: @@ -1128,26 +1184,26 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" + sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" + sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" uuid: dependency: transitive description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8 url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "4.5.2" vector_math: dependency: transitive description: @@ -1168,10 +1224,10 @@ packages: dependency: transitive description: name: watcher - sha256: "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c" + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.2.1" web: dependency: transitive description: @@ -1216,10 +1272,10 @@ packages: dependency: "direct main" description: name: win32 - sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03" + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e url: "https://pub.dev" source: hosted - version: "5.14.0" + version: "5.15.0" win32_registry: dependency: transitive description: @@ -1286,5 +1342,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.9.0 <4.0.0" - flutter: ">=3.35.0" + dart: ">=3.10.3 <4.0.0" + flutter: ">=3.38.4" diff --git a/pubspec.yaml b/pubspec.yaml index bbdcf8ec..ddffdfa9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: flutter_bloc: ^9.1.1 flutter_localizations: sdk: flutter - flutter_markdown: ^0.6.23 + flutter_markdown_plus: ^1.0.7 flutter_typeahead: ^5.2.0 freezed_annotation: ^3.1.0 helpers: @@ -27,18 +27,14 @@ dependencies: # Using a fork of hotkey_manager to fix a bug. # Revert to the original package once the bug is fixed. # See: https://github.com/leanflutter/hotkey_manager/pull/32 - # hotkey_manager: ^0.1.8 - hotkey_manager: - git: - url: https://github.com/Merrit/hotkey_manager.git - ref: 893e0c7fb880347fa0978787a312629dc874bd2c + hotkey_manager: ^0.2.3 http: ^1.1.0 intl: any json_annotation: ^4.8.1 launch_at_startup: ^0.5.1 logger: ^2.0.1 - package_info_plus: ^8.3.0 + package_info_plus: ^9.0.0 path_provider: ^2.0.1 pub_semver: ^2.0.0 tray_manager: ^0.5.0 @@ -53,6 +49,14 @@ dependencies: ref: 6c66ad23ee79749f30a8eece542cf54eaf157ed8 xdg_desktop_portal: ^0.1.12 +dependency_overrides: + # Fix compile failure: https://github.com/leanflutter/hotkey_manager/pull/66 + hotkey_manager_linux: + git: + url: https://github.com/gepbird/hotkey_manager.git + path: packages/hotkey_manager_linux + ref: 1b31e3ca4ab017ee72f54a7065b2073a88403d61 + dev_dependencies: build_runner: ^2.4.6 flutter_app_builder: diff --git a/test/apps_list/cubit/apps_list_cubit_test.dart b/test/apps_list/cubit/apps_list_cubit_test.dart index 2759ba47..b5caf6b9 100644 --- a/test/apps_list/cubit/apps_list_cubit_test.dart +++ b/test/apps_list/cubit/apps_list_cubit_test.dart @@ -1,4 +1,5 @@ import 'package:collection/collection.dart'; +import 'package:flutter/services.dart'; import 'package:hotkey_manager/hotkey_manager.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; @@ -116,7 +117,7 @@ void main() { autoStart: false, autoRefresh: false, closeToTray: false, - hotKey: HotKey(KeyCode.again), + hotKey: HotKey(key: PhysicalKeyboardKey.again), minimizeWindows: true, pinSuspendedWindows: false, refreshInterval: 5, diff --git a/test/settings/cubit/settings_cubit_test.dart b/test/settings/cubit/settings_cubit_test.dart index f544b2ae..235b9a6b 100644 --- a/test/settings/cubit/settings_cubit_test.dart +++ b/test/settings/cubit/settings_cubit_test.dart @@ -1,4 +1,5 @@ import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:hotkey_manager/hotkey_manager.dart'; import 'package:mockito/annotations.dart'; @@ -99,7 +100,7 @@ void main() { expect(state.autoStart, false); expect(state.autoRefresh, true); expect(state.closeToTray, false); - expect(state.hotKey.keyCode, KeyCode.pause); + expect(state.hotKey.physicalKey, PhysicalKeyboardKey.pause); expect(state.refreshInterval, 5); expect(state.showHiddenWindows, false); expect(state.startHiddenInTray, false); @@ -218,7 +219,7 @@ void main() { group('hotkey:', () { test('default hotkey is Pause', () { - expect(state.hotKey.keyCode, KeyCode.pause); + expect(state.hotKey.physicalKey, PhysicalKeyboardKey.pause); expect(state.hotKey.modifiers, null); }); @@ -228,10 +229,10 @@ void main() { }); test('resetting hotkey restores Pause default', () async { - await cubit.updateHotkey(HotKey(KeyCode.insert)); - expect(state.hotKey.keyCode, KeyCode.insert); + await cubit.updateHotkey(HotKey(key: PhysicalKeyboardKey.insert)); + expect(state.hotKey.physicalKey, PhysicalKeyboardKey.insert); await cubit.resetHotkey(); - expect(state.hotKey.keyCode, KeyCode.pause); + expect(state.hotKey.physicalKey, PhysicalKeyboardKey.pause); verify(storage.deleteValue('hotkey')).called(1); }); @@ -245,18 +246,18 @@ void main() { hotkeyService: hotkeyService, storage: storage, ); - expect(state.hotKey.keyCode, KeyCode.insert); + expect(state.hotKey.physicalKey, PhysicalKeyboardKey.insert); expect(state.hotKey.modifiers?.isEmpty, true); }); test('updateHotkey & resetHotkey work', () async { - final newHotkey = HotKey(KeyCode.f12); - expect(state.hotKey.keyCode, KeyCode.pause); + final newHotkey = HotKey(key: PhysicalKeyboardKey.f12); + expect(state.hotKey.physicalKey, PhysicalKeyboardKey.pause); await cubit.updateHotkey(newHotkey); - expect(state.hotKey.keyCode, KeyCode.f12); + expect(state.hotKey.physicalKey, PhysicalKeyboardKey.f12); verify(hotkeyService.addHotkey(newHotkey)).called(1); await cubit.resetHotkey(); - expect(state.hotKey.keyCode, KeyCode.pause); + expect(state.hotKey.physicalKey, PhysicalKeyboardKey.pause); verify(storage.deleteValue('hotkey')).called(1); }); });