From 86ccb1a58f26666eb53c2f1ff7e4051328e916fb Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 26 Jan 2023 12:05:34 +0100 Subject: [PATCH] changing volume provider requires restart due to macFUSE/FUSE-T lib loaded in same JVM --- .../cryptomator/common/mount/MountModule.java | 19 ++++++++++++++++++- src/main/resources/i18n/strings.properties | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/cryptomator/common/mount/MountModule.java b/src/main/java/org/cryptomator/common/mount/MountModule.java index d885a644e..d78cc3216 100644 --- a/src/main/java/org/cryptomator/common/mount/MountModule.java +++ b/src/main/java/org/cryptomator/common/mount/MountModule.java @@ -2,11 +2,11 @@ package org.cryptomator.common.mount; import dagger.Module; import dagger.Provides; -import org.cryptomator.common.ObservableUtil; import org.cryptomator.common.settings.Settings; import org.cryptomator.integrations.mount.MountService; import javax.inject.Singleton; +import javafx.beans.property.SimpleObjectProperty; import javafx.beans.value.ObservableValue; import java.util.List; @@ -19,6 +19,8 @@ public class MountModule { return MountService.get().toList(); } + //currently not used, because macFUSE and FUSE-T cannot be used in the same JVM + /* @Provides @Singleton static ObservableValue provideMountService(Settings settings, List serviceImpls) { @@ -30,5 +32,20 @@ public class MountModule { }, // new ActualMountService(fallbackProvider, true)); } + */ + + @Provides + @Singleton + static ActualMountService provideActualMountService(Settings settings, List serviceImpls) { + var fallbackProvider = serviceImpls.stream().findFirst().orElse(null); + var desiredService = serviceImpls.stream().filter(serviceImpl -> serviceImpl.getClass().getName().equals(settings.mountService().getValue())).findFirst(); // + return new ActualMountService(desiredService.orElse(fallbackProvider), desiredService.isPresent()); // + } + + @Provides + @Singleton + static ObservableValue provideMountService(ActualMountService service) { + return new SimpleObjectProperty<>(service); + } } diff --git a/src/main/resources/i18n/strings.properties b/src/main/resources/i18n/strings.properties index af9ba420c..fbee45826 100644 --- a/src/main/resources/i18n/strings.properties +++ b/src/main/resources/i18n/strings.properties @@ -276,7 +276,7 @@ preferences.interface.showMinimizeButton=Show minimize button preferences.interface.showTrayIcon=Show tray icon (requires restart) ## Volume preferences.volume=Virtual Drive -preferences.volume.type=Volume Type +preferences.volume.type=Volume Type (requires restart) preferences.volume.type.automatic=Automatic preferences.volume.tcp.port=TCP Port preferences.volume.supportedFeatures=The chosen volume type supports the following features: