Просмотр исходного кода

Merge branch 'feature/jni-mac-tray-icon' into ‘feature/new-ui'

Tobias Hagemann 5 лет назад
Родитель
Сommit
547e5dae52

+ 5 - 1
main/commons/pom.xml

@@ -27,7 +27,11 @@
 			<groupId>org.cryptomator</groupId>
 			<artifactId>webdav-nio-adapter</artifactId>
 		</dependency>
-		
+		<dependency>
+			<groupId>org.cryptomator</groupId>
+			<artifactId>jni</artifactId>
+		</dependency>
+
 		<!-- JavaFx -->
 		<dependency>
 			<groupId>org.openjfx</groupId>

+ 29 - 0
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<MacFunctions> provideOptionalMacFunctions() {
+		return JniFunctions.macFunctions();
+	}
+
+	@Provides
+	Optional<WinFunctions> provideOptionalWinFunctions() {
+		return JniFunctions.winFunctions();
+	}
+
+}

+ 1 - 5
main/keychain/pom.xml

@@ -23,11 +23,7 @@
 			<groupId>com.google.code.gson</groupId>
 			<artifactId>gson</artifactId>
 		</dependency>
-		<dependency>
-			<groupId>org.cryptomator</groupId>
-			<artifactId>jni</artifactId>
-		</dependency>
-		
+
 		<!-- Google -->
 		<dependency>
 			<groupId>com.google.guava</groupId>

+ 5 - 17
main/keychain/src/main/java/org/cryptomator/keychain/KeychainModule.java

@@ -5,29 +5,17 @@
  *******************************************************************************/
 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
-public class KeychainModule {
-
-	@Provides
-	Optional<MacFunctions> provideOptionalMacFunctions() {
-		return JniFunctions.macFunctions();
-	}
+import java.util.Optional;
+import java.util.Set;
 
-	@Provides
-	Optional<WinFunctions> provideOptionalWinFunctions() {
-		return JniFunctions.winFunctions();
-	}
+@Module(includes = {JniModule.class})
+public class KeychainModule {
 
 	@Provides
 	@ElementsIntoSet

+ 4 - 3
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> 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());
 	}

+ 8 - 0
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> macFunctions;
 	private final Settings settings;
 
+
 	@Inject
+//	TrayImageFactory(Optional<MacFunctions> 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";

+ 2 - 1
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 {
 
 }