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 { }