diff --git a/main/commons/pom.xml b/main/commons/pom.xml
index f76e413c0..cbb970d2d 100644
--- a/main/commons/pom.xml
+++ b/main/commons/pom.xml
@@ -27,7 +27,11 @@
org.cryptomator
webdav-nio-adapter
-
+
+ org.cryptomator
+ jni
+
+
org.openjfx
diff --git a/main/commons/src/main/java/org/cryptomator/common/JniModule.java b/main/commons/src/main/java/org/cryptomator/common/JniModule.java
new file mode 100644
index 000000000..742514bfc
--- /dev/null
+++ b/main/commons/src/main/java/org/cryptomator/common/JniModule.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Skymatic GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the accompanying LICENSE file.
+ *******************************************************************************/
+package org.cryptomator.common;
+
+import dagger.Module;
+import dagger.Provides;
+import org.cryptomator.jni.JniFunctions;
+import org.cryptomator.jni.MacFunctions;
+import org.cryptomator.jni.WinFunctions;
+
+import java.util.Optional;
+
+@Module
+public class JniModule {
+
+ @Provides
+ Optional provideOptionalMacFunctions() {
+ return JniFunctions.macFunctions();
+ }
+
+ @Provides
+ Optional provideOptionalWinFunctions() {
+ return JniFunctions.winFunctions();
+ }
+
+}
diff --git a/main/keychain/pom.xml b/main/keychain/pom.xml
index 01e276cc9..4b454f8be 100644
--- a/main/keychain/pom.xml
+++ b/main/keychain/pom.xml
@@ -23,11 +23,7 @@
com.google.code.gson
gson
-
- org.cryptomator
- jni
-
-
+
com.google.guava
diff --git a/main/keychain/src/main/java/org/cryptomator/keychain/KeychainModule.java b/main/keychain/src/main/java/org/cryptomator/keychain/KeychainModule.java
index 90b975b7d..fd622e299 100644
--- a/main/keychain/src/main/java/org/cryptomator/keychain/KeychainModule.java
+++ b/main/keychain/src/main/java/org/cryptomator/keychain/KeychainModule.java
@@ -5,30 +5,18 @@
*******************************************************************************/
package org.cryptomator.keychain;
-import java.util.Optional;
-import java.util.Set;
-
import com.google.common.collect.Sets;
import dagger.Module;
import dagger.Provides;
import dagger.multibindings.ElementsIntoSet;
-import org.cryptomator.jni.JniFunctions;
-import org.cryptomator.jni.MacFunctions;
-import org.cryptomator.jni.WinFunctions;
+import org.cryptomator.common.JniModule;
-@Module
+import java.util.Optional;
+import java.util.Set;
+
+@Module(includes = {JniModule.class})
public class KeychainModule {
- @Provides
- Optional provideOptionalMacFunctions() {
- return JniFunctions.macFunctions();
- }
-
- @Provides
- Optional provideOptionalWinFunctions() {
- return JniFunctions.winFunctions();
- }
-
@Provides
@ElementsIntoSet
Set provideKeychainAccessStrategies(MacSystemKeychainAccess macKeychain, WindowsProtectedKeychainAccess winKeychain, LinuxSecretServiceKeychainAccess linKeychain) {
diff --git a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayIconController.java b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayIconController.java
index 905d6235b..0da5af2aa 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayIconController.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayIconController.java
@@ -10,9 +10,6 @@ import javax.inject.Inject;
import java.awt.AWTException;
import java.awt.SystemTray;
import java.awt.TrayIcon;
-import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
@TrayMenuScoped
public class TrayIconController {
@@ -23,6 +20,7 @@ public class TrayIconController {
private final TrayImageFactory imageFactory;
private final TrayMenuController trayMenuController;
private final TrayIcon trayIcon;
+ // private final Optional macFunctions;
@Inject
TrayIconController(Settings settings, TrayImageFactory imageFactory, TrayMenuController trayMenuController) {
@@ -30,9 +28,11 @@ public class TrayIconController {
this.trayMenuController = trayMenuController;
this.imageFactory = imageFactory;
this.trayIcon = new TrayIcon(imageFactory.loadImage(), "Cryptomator", trayMenuController.getMenu());
+// this.macFunctions = macFunctions;
}
public void initializeTrayIcon() {
+// macFunctions.map(MacFunctions::uiAppearance).ifPresent(uiAppearance -> uiAppearance.addListener(this::macInterfaceThemeChanged));
settings.theme().addListener(this::themeChanged);
if (SystemUtils.IS_OS_WINDOWS) {
@@ -50,6 +50,7 @@ public class TrayIconController {
trayMenuController.initTrayMenu();
}
+ // public void macInterfaceThemeChanged() {
private void themeChanged(@SuppressWarnings("unused") Observable observable) {
trayIcon.setImage(imageFactory.loadImage());
}
diff --git a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayImageFactory.java b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayImageFactory.java
index 4f2468de1..360b6e95f 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayImageFactory.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayImageFactory.java
@@ -10,9 +10,13 @@ import java.awt.Toolkit;
@TrayMenuScoped
class TrayImageFactory {
+ // private final Optional macFunctions;
private final Settings settings;
+
@Inject
+// TrayImageFactory(Optional macFunctions) {
+// this.macFunctions = macFunctions;
TrayImageFactory(Settings settings) {
this.settings = settings;
}
@@ -23,6 +27,10 @@ class TrayImageFactory {
}
private String getMacResourceName() {
+// MacApplicationUiInterfaceStyle interfaceStyle = macFunctions.map(MacFunctions::uiAppearance) //
+// .map(MacApplicationUiAppearance::getCurrentInterfaceStyle) //
+// .orElse(MacApplicationUiInterfaceStyle.LIGHT);
+// switch (interfaceStyle) {
switch (settings.theme().get()) {
case DARK:
return "/tray_icon_mac_white.png";
diff --git a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayMenuModule.java b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayMenuModule.java
index 87573e3b0..9fc9cbe96 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayMenuModule.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayMenuModule.java
@@ -1,9 +1,10 @@
package org.cryptomator.ui.traymenu;
import dagger.Module;
+import org.cryptomator.common.JniModule;
import org.cryptomator.ui.fxapp.FxApplicationComponent;
-@Module(subcomponents = {FxApplicationComponent.class})
+@Module(includes = {JniModule.class}, subcomponents = {FxApplicationComponent.class})
abstract class TrayMenuModule {
}