diff --git a/src/main/java/org/cryptomator/common/vaults/Vault.java b/src/main/java/org/cryptomator/common/vaults/Vault.java index 5223025d0..afe5380c1 100644 --- a/src/main/java/org/cryptomator/common/vaults/Vault.java +++ b/src/main/java/org/cryptomator/common/vaults/Vault.java @@ -59,7 +59,9 @@ public class Vault { private static final Path HOME_DIR = Paths.get(SystemUtils.USER_HOME); private static final int UNLIMITED_FILENAME_LENGTH = Integer.MAX_VALUE; + private final Settings settings; private final VaultSettings vaultSettings; + private final List mountProviders; private final AtomicReference cryptoFileSystem; private final VaultState state; private final ObjectProperty lastKnownException; @@ -76,7 +78,6 @@ public class Vault { private final Mounter mounter; private final BooleanProperty showingStats; private final ObservableValue actualMountService; - private final ObservableValue selectedMountService; private final AtomicReference firstUsedProblematicFuseMountService; private final AtomicReference mountHandle = new AtomicReference<>(null); @@ -93,9 +94,11 @@ public class Vault { Mounter mounter, @Named("vaultMountService") ObservableValue actualMountService, @Named("FUPFMS") AtomicReference firstUsedProblematicFuseMountService) { + this.settings = settings; this.vaultSettings = vaultSettings; this.configCache = configCache; this.cryptoFileSystem = cryptoFileSystem; + this.mountProviders = mountProviders; this.state = state; this.lastKnownException = lastKnownException; this.stats = stats; @@ -110,9 +113,6 @@ public class Vault { this.mounter = mounter; this.showingStats = new SimpleBooleanProperty(false); this.actualMountService = actualMountService; - var fallbackProvider = mountProviders.stream().findFirst().orElse(null); - var defaultMountService = ObservableUtil.mapWithDefault(settings.mountService, serviceName -> mountProviders.stream().filter(s -> s.getClass().getName().equals(serviceName)).findFirst().orElse(fallbackProvider), fallbackProvider); - this.selectedMountService = ObservableUtil.mapWithDefault(vaultSettings.mountService, serviceName -> mountProviders.stream().filter(s -> s.getClass().getName().equals(serviceName)).findFirst().orElse(defaultMountService.getValue()), defaultMountService.getValue()); this.firstUsedProblematicFuseMountService = firstUsedProblematicFuseMountService; } @@ -166,7 +166,10 @@ public class Vault { if (cryptoFileSystem.get() != null) { throw new IllegalStateException("Already unlocked."); } - var fuseRestartRequired = selectedMountService.map(s -> // + var fallbackProvider = mountProviders.stream().findFirst().orElse(null); + var defMntServ = ObservableUtil.mapWithDefault(settings.mountService, serviceName -> mountProviders.stream().filter(s -> s.getClass().getName().equals(serviceName)).findFirst().orElse(fallbackProvider), fallbackProvider).getValue(); + var selMntServ = ObservableUtil.mapWithDefault(vaultSettings.mountService, serviceName -> mountProviders.stream().filter(s -> s.getClass().getName().equals(serviceName)).findFirst().orElse(defMntServ), defMntServ); + var fuseRestartRequired = selMntServ.map(s -> // firstUsedProblematicFuseMountService.get() != null // && VaultModule.isProblematicFuseService(s) // && !firstUsedProblematicFuseMountService.get().equals(s)).getValue(); diff --git a/src/main/java/org/cryptomator/ui/unlock/UnlockFuseRestartRequiredController.java b/src/main/java/org/cryptomator/ui/unlock/UnlockFuseRestartRequiredController.java index 768f41dfe..26ef4c7de 100644 --- a/src/main/java/org/cryptomator/ui/unlock/UnlockFuseRestartRequiredController.java +++ b/src/main/java/org/cryptomator/ui/unlock/UnlockFuseRestartRequiredController.java @@ -16,9 +16,9 @@ public class UnlockFuseRestartRequiredController implements FxController { private final FxApplicationWindows appWindows; private final Vault vault; @Inject - UnlockFuseRestartRequiredController(@UnlockWindow Stage window, // - FxApplicationWindows appWindows, // - @UnlockWindow Vault vault) { + UnlockFuseRestartRequiredController(@UnlockWindow Stage window, + FxApplicationWindows appWindows, + @UnlockWindow Vault vault) { this.window = window; this.appWindows = appWindows; this.vault = vault;