From 7ce6ed6abbb9bba38249da25464d76b7fc974499 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Sat, 10 Jan 2015 15:23:49 +0100 Subject: [PATCH] - shows application icon in notification center --- .../java/org/cryptomator/ui/util/TrayIconUtil.java | 13 +++++++++++-- .../services/javax.script.ScriptEngineFactory | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 main/ui/src/main/resources/META-INF/services/javax.script.ScriptEngineFactory diff --git a/main/ui/src/main/java/org/cryptomator/ui/util/TrayIconUtil.java b/main/ui/src/main/java/org/cryptomator/ui/util/TrayIconUtil.java index 9cf25d28b..a33513136 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/util/TrayIconUtil.java +++ b/main/ui/src/main/java/org/cryptomator/ui/util/TrayIconUtil.java @@ -15,6 +15,9 @@ import java.util.ResourceBundle; import javafx.application.Platform; import javafx.stage.Stage; +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; import javax.swing.SwingUtilities; import org.apache.commons.lang3.SystemUtils; @@ -88,8 +91,14 @@ public final class TrayIconUtil { final String notificationCenterAppleScript = String.format("display notification \"%s\" with title \"%s\"", msg, title); notificationCmd = () -> { try { - Runtime.getRuntime().exec(new String[] {"/usr/bin/osascript", "-e", notificationCenterAppleScript}); - } catch (IOException e) { + final ScriptEngineManager mgr = new ScriptEngineManager(); + final ScriptEngine engine = mgr.getEngineByName("AppleScriptEngine"); + if (engine != null) { + engine.eval(notificationCenterAppleScript); + } else { + Runtime.getRuntime().exec(new String[] {"/usr/bin/osascript", "-e", notificationCenterAppleScript}); + } + } catch (ScriptException | IOException e) { // ignore, user will notice the tray icon anyway. } }; diff --git a/main/ui/src/main/resources/META-INF/services/javax.script.ScriptEngineFactory b/main/ui/src/main/resources/META-INF/services/javax.script.ScriptEngineFactory new file mode 100644 index 000000000..7a84fb0a0 --- /dev/null +++ b/main/ui/src/main/resources/META-INF/services/javax.script.ScriptEngineFactory @@ -0,0 +1 @@ +apple.applescript.AppleScriptEngineFactory \ No newline at end of file