Commit graph

66 commits

Author SHA1 Message Date
Jack251970
e3306ecfe8 Add conditional check for plugin hotkey updates
Previously, `UpdatePluginHotkeyInfoTranslations` was called for all plugins, even those without hotkey support. This commit adds a conditional check to ensure the method is only invoked for plugins implementing the `IPluginHotkey` interface.

Additionally, comments were added to clarify the purpose of the hotkey update logic. These changes improve robustness by preventing unnecessary or invalid calls for non-hotkey plugins.
2025-10-16 20:36:55 +08:00
Jack251970
79b0385336 Refactor plugin hotkey and action keyword management
Refactored hotkey management to improve thread safety by replacing `Dictionary` with `ConcurrentDictionary` and introducing a lock for updates. Added new methods for hotkey initialization, validation, and translation updates. Enhanced plugin initialization by integrating hotkey checks and removing redundant calls.

Refactored action keyword management with new methods for adding and removing keywords, ensuring thread safety with `TryAdd`, `AddOrUpdate`, and `TryRemove`. Introduced the `PluginHotkeyChangedEvent` class to encapsulate hotkey change events.

Improved thread safety and performance by using thread-safe collections and LINQ. Cleaned up code by removing deprecated methods, redundant comments, and outdated TODOs. Fixed concurrency issues and ensured consistent updates to plugin metadata and hotkey information.
2025-10-16 20:30:17 +08:00
Jack Ye
8e71130831
Merge branch 'dev' into rename-file 2025-10-16 20:07:02 +08:00
Jack251970
5ed94c8abc Resolve conflicts 2025-10-02 20:25:45 +08:00
Jack Ye
6213193cda
Merge branch 'dev' into plugin_initialization 2025-10-02 20:22:20 +08:00
Jack Ye
83c2edf7c8
Merge branch 'dev' into rename-file 2025-09-28 11:40:42 +08:00
Jack251970
0e366a6269 Use PublicApi.Instance instead of private one 2025-09-23 17:40:54 +08:00
Jack Ye
3116f3d363
Merge branch 'dev' into plugin_initialization 2025-09-21 13:22:31 +08:00
Jack Ye
542d1eb3be
Merge branch 'dev' into rename-file 2025-09-21 13:15:44 +08:00
Jack251970
0f6245a072 Handle exceptions inside ChangeLanguageAsync to avoid unobserved task crashes 2025-09-18 18:18:02 +08:00
Jack251970
86581e6a00 Add disposable for internalization 2025-09-18 18:17:27 +08:00
Jack251970
330e6c09e7 Add language change lock 2025-09-18 18:07:18 +08:00
Jack251970
6c695f09e7 Use clear function 2025-09-18 17:55:06 +08:00
Jack251970
b05c2c1e1a Remove old dictionaries references to fix possible memory leak 2025-09-18 16:25:21 +08:00
Jack Ye
cf8096f276
Merge branch 'dev' into plugin_initialization 2025-09-05 20:35:05 +08:00
Jack Ye
9733da7205
Merge branch 'dev' into rename-file 2025-09-05 19:52:26 +08:00
Jeremy Wu
e1cc50c579 Merge remote-tracking branch 'origin/master' into resolve_conflicts 2025-08-31 17:53:21 +10:00
Jack Ye
912d5dda69
Merge branch 'dev' into rename-file 2025-07-24 12:02:11 +01:00
Jack251970
d4e672d630 Add support to update translation for one plugin 2025-07-21 13:55:47 +08:00
Jack Ye
45ed9faf29
Merge branch 'dev' into rename-file 2025-07-20 20:24:33 +08:00
Jack251970
fea899d09a No need to get lower for language code 2025-07-20 17:37:12 +08:00
Jack251970
f77f14b0ee Improve code quality 2025-07-20 17:35:07 +08:00
Jack251970
ac7da2d2d6 Do not check if the language directory contains default language file 2025-07-20 17:26:14 +08:00
Jack251970
5e8acf7d74 Use OrdinalIgnoreCase 2025-07-20 15:29:27 +08:00
Jack251970
634bdc5bd6 Do not check Flow Launcher default language file since it is binary embedded 2025-07-20 15:26:07 +08:00
Jack251970
2ee53dfbf7 Initialize language before portable clean up since it needs translations 2025-07-20 15:20:18 +08:00
Jack251970
0682e9bed1 Improve code quality for public api 2025-07-20 11:38:44 +08:00
Jeremy Wu
2e0dd1cfa1
Release 1.20.2 | Plugin 4.7.0 (#3820) 2025-07-13 17:18:34 +03:00
Jack251970
d3f5274b24 Make GetPluginsForInterface private & Code quality 2025-07-03 20:45:20 +08:00
Jack251970
2a52c28bdd Store plugin hotkey info 2025-07-03 11:18:32 +08:00
Jack251970
2625f6fa41 Make GetPluginsForInterface private 2025-07-03 10:26:12 +08:00
Jack251970
b0997449c1 Handle CultureNotFoundException 2025-05-21 14:38:15 +08:00
Jack251970
f7f52e269a Set culture info before creating application 2025-05-21 14:31:09 +08:00
Jack251970
4a7915b9ff Use api fuctions forr main project 2025-04-13 17:50:44 +08:00
Jack251970
dde933a96b Use api functions instead 2025-04-13 17:26:21 +08:00
Jack251970
bae0fa5c0e Improve code quality 2025-04-11 22:00:36 +08:00
Jack251970
a3193cf525 Move function position 2025-03-24 13:24:05 +08:00
Jack251970
dfad11cbed Fix language change issue 2025-03-24 13:22:15 +08:00
Jack251970
a3964f5667 Remove instance for Internationalization & Theme 2025-02-23 13:51:37 +08:00
Jack Ye
bb257747f2
Merge branch 'dev' into dev4 2025-01-26 11:52:08 +08:00
Jeremy
0e700cdfcc rename GetSystemLanguageCode method + add comment 2025-01-26 10:42:32 +11:00
Jack251970
abe943b693 Fix system language code fetch issue 2025-01-18 18:39:44 +08:00
Jack251970
3cb9d1dce4 Remove IApp & AppExtensions and use dependency injection instead 2025-01-12 20:04:44 +08:00
Jack251970
88e84378da Use api in app extensions to call api functions 2025-01-09 21:44:24 +08:00
Jack251970
3ccd8b42ae Move SystemLanguageCode to constant 2025-01-06 16:58:08 +08:00
Jack251970
0ae3cfcdd6 Add display translation for system language item 2025-01-02 18:50:02 +08:00
Jack251970
921d6a3beb Add support for system language item 2025-01-02 18:47:25 +08:00
Jack251970
897fd7aaba Replace Flow.Launcher.Core.MessageBoxType & MessageBoxImage with System.Windows.MessageBoxButton & MessageBoxImage
Remove useless warning file
2024-11-26 21:31:13 +08:00
Jack251970
3ae960d275 Replace System.Windows.Message with MessageBoxEx 2024-11-24 16:11:53 +08:00
Jeremy Wu
7e3690f007
add comment 2024-08-11 20:54:10 +10:00