From f852ae039237727e9398f301b85e5c65ac683cf9 Mon Sep 17 00:00:00 2001 From: Edward Chow Date: Sun, 16 Oct 2022 22:26:30 +1100 Subject: [PATCH] remove AWT code and relocate to TrayMenuController --- pom.xml | 2 +- .../ui/traymenu/AwtTrayMenuController.java | 15 ++++++++++ .../ui/traymenu/TrayMenuBuilder.java | 29 ++----------------- 3 files changed, 19 insertions(+), 27 deletions(-) diff --git a/pom.xml b/pom.xml index 20a4ffab2..c56af2617 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ 2.1.0-rc1 2.4.4 - 1.1.0 + 1.1.1 1.1.2 1.1.2 1.1.0 diff --git a/src/main/java/org/cryptomator/ui/traymenu/AwtTrayMenuController.java b/src/main/java/org/cryptomator/ui/traymenu/AwtTrayMenuController.java index 79f1dd628..2d0699064 100644 --- a/src/main/java/org/cryptomator/ui/traymenu/AwtTrayMenuController.java +++ b/src/main/java/org/cryptomator/ui/traymenu/AwtTrayMenuController.java @@ -19,6 +19,8 @@ import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import java.util.List; @CheckAvailability @@ -58,6 +60,19 @@ public class AwtTrayMenuController implements TrayMenuController { addChildren(menu, items); } + + @Override + public void onBeforeShow(Runnable listener) { + SystemTray systemTray = SystemTray.getSystemTray(); + TrayIcon trayIcon = systemTray.getTrayIcons()[0]; + trayIcon.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + listener.run(); + } + }); + } + private void addChildren(Menu menu, List items) { for (var item : items) { // TODO: use Pattern Matching for switch, once available diff --git a/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java b/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java index eed41e318..83dca0370 100644 --- a/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java +++ b/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java @@ -70,32 +70,9 @@ public class TrayMenuBuilder { trayMenu.showTrayIcon(image.readAllBytes(), this::showMainWindow, "Cryptomator"); SystemTray tray = SystemTray.getSystemTray(); TrayIcon trayIcon = tray.getTrayIcons()[0]; - trayIcon.addMouseListener(new MouseListener() { - @Override - public void mouseClicked(MouseEvent e) { - for (Vault vault : vaults) { - VaultListManager.redetermineVaultState(vault); - } - } - - @Override - public void mousePressed(MouseEvent e) { - - } - - @Override - public void mouseReleased(MouseEvent e) { - - } - - @Override - public void mouseEntered(MouseEvent e) { - - } - - @Override - public void mouseExited(MouseEvent e) { - + trayMenu.onBeforeShow(() -> { + for (Vault vault : vaults) { + VaultListManager.redetermineVaultState(vault); } }); rebuildMenu();