diff --git a/pom.xml b/pom.xml index bc4b83d15..e7541b6b5 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ 1.2.0 1.2.0 1.2.0 - 2.0.4 + 2.1.0-SNAPSHOT 2.0.0 2.0.2 diff --git a/src/main/java/org/cryptomator/common/mount/Mounter.java b/src/main/java/org/cryptomator/common/mount/Mounter.java index 0161268f3..711029df2 100644 --- a/src/main/java/org/cryptomator/common/mount/Mounter.java +++ b/src/main/java/org/cryptomator/common/mount/Mounter.java @@ -65,7 +65,13 @@ public class Mounter { builder.setMountFlags(mountFlags); } } - case VOLUME_ID -> builder.setVolumeId(vaultSettings.getId()); + case VOLUME_ID -> { + if(vaultSettings.usesVaultIdAsVolumeId().get()) { + builder.setVolumeId(vaultSettings.getId()+"\\test"); + } else { + builder.setVolumeId(vaultSettings.mountName().get()); + } + } case VOLUME_NAME -> builder.setVolumeName(vaultSettings.mountName().get()); } } diff --git a/src/main/java/org/cryptomator/common/settings/VaultSettings.java b/src/main/java/org/cryptomator/common/settings/VaultSettings.java index 3a116b4ce..2c880560c 100644 --- a/src/main/java/org/cryptomator/common/settings/VaultSettings.java +++ b/src/main/java/org/cryptomator/common/settings/VaultSettings.java @@ -42,6 +42,7 @@ public class VaultSettings { private final String id; private final ObjectProperty path = new SimpleObjectProperty<>(); private final StringProperty displayName = new SimpleStringProperty(); + private final BooleanProperty vaultIdAsVolumeId = new SimpleBooleanProperty(false); private final BooleanProperty unlockAfterStartup = new SimpleBooleanProperty(DEFAULT_UNLOCK_AFTER_STARTUP); private final BooleanProperty revealAfterMount = new SimpleBooleanProperty(DEFAULT_REVEAL_AFTER_MOUNT); private final BooleanProperty usesReadOnlyMode = new SimpleBooleanProperty(DEFAULT_USES_READONLY_MODE); @@ -127,6 +128,10 @@ public class VaultSettings { return mountPoint; } + public BooleanProperty usesVaultIdAsVolumeId() { + return vaultIdAsVolumeId; + } + public BooleanProperty usesReadOnlyMode() { return usesReadOnlyMode; } diff --git a/src/main/java/org/cryptomator/ui/vaultoptions/MountOptionsController.java b/src/main/java/org/cryptomator/ui/vaultoptions/MountOptionsController.java index 502d4312a..4c262912d 100644 --- a/src/main/java/org/cryptomator/ui/vaultoptions/MountOptionsController.java +++ b/src/main/java/org/cryptomator/ui/vaultoptions/MountOptionsController.java @@ -40,6 +40,7 @@ public class MountOptionsController implements FxController { private final ObservableValue defaultMountFlags; private final ObservableValue mountpointDirSupported; private final ObservableValue mountpointDriveLetterSupported; + private final ObservableValue volumeIdSupported; private final ObservableValue readOnlySupported; private final ObservableValue mountFlagsSupported; private final ObservableValue directoryPath; @@ -48,6 +49,7 @@ public class MountOptionsController implements FxController { //-- FXML objects -- public CheckBox readOnlyCheckbox; + public CheckBox useVaultIdAsVolumeId; public CheckBox customMountFlagsCheckbox; public TextField mountFlagsField; public ToggleGroup mountPointToggleGroup; @@ -73,6 +75,7 @@ public class MountOptionsController implements FxController { this.mountpointDirSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_TO_EXISTING_DIR) || as.service().hasCapability(MountCapability.MOUNT_WITHIN_EXISTING_PARENT)); this.mountpointDriveLetterSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_AS_DRIVE_LETTER)); this.mountFlagsSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_FLAGS)); + this.volumeIdSupported = mountService.map(as -> as.service().hasCapability(MountCapability.VOLUME_ID)); this.readOnlySupported = mountService.map(as -> as.service().hasCapability(MountCapability.READ_ONLY)); this.directoryPath = vault.getVaultSettings().mountPoint().map(p -> isDriveLetter(p) ? null : p.toString()); this.applicationWindows = applicationWindows; @@ -83,6 +86,9 @@ public class MountOptionsController implements FxController { // readonly: readOnlyCheckbox.selectedProperty().bindBidirectional(vaultSettings.usesReadOnlyMode()); + // use volume name as volume id + useVaultIdAsVolumeId.selectedProperty().bindBidirectional(vaultSettings.usesVaultIdAsVolumeId()); + // custom mount flags: mountFlagsField.disableProperty().bind(customMountFlagsCheckbox.selectedProperty().not()); customMountFlagsCheckbox.setSelected(!Strings.isNullOrEmpty(vaultSettings.mountFlags().getValue())); @@ -267,6 +273,16 @@ public class MountOptionsController implements FxController { return readOnlySupported.getValue(); } + public ObservableValue volumeIdSupportedProperty() { + return volumeIdSupported; + } + + public boolean getVolumeIdSupported() { + return volumeIdSupported.getValue(); + } + + + public ObservableValue directoryPathProperty() { return directoryPath; } diff --git a/src/main/resources/fxml/vault_options_mount.fxml b/src/main/resources/fxml/vault_options_mount.fxml index 762d36d27..615f4dd69 100644 --- a/src/main/resources/fxml/vault_options_mount.fxml +++ b/src/main/resources/fxml/vault_options_mount.fxml @@ -30,6 +30,7 @@ +