mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-09-24 08:54:42 +00:00
Merge branch 'hotfix/1.15.2'
This commit is contained in:
@@ -77,6 +77,9 @@
|
|||||||
</content_rating>
|
</content_rating>
|
||||||
|
|
||||||
<releases>
|
<releases>
|
||||||
|
<release date="2025-04-04" version="1.15.2">
|
||||||
|
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.2</url>
|
||||||
|
</release>
|
||||||
<release date="2025-02-05" version="1.15.1">
|
<release date="2025-02-05" version="1.15.1">
|
||||||
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.1</url>
|
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.1</url>
|
||||||
</release>
|
</release>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.cryptomator</groupId>
|
<groupId>org.cryptomator</groupId>
|
||||||
<artifactId>cryptomator</artifactId>
|
<artifactId>cryptomator</artifactId>
|
||||||
<version>1.15.1</version>
|
<version>1.15.2</version>
|
||||||
<name>Cryptomator Desktop App</name>
|
<name>Cryptomator Desktop App</name>
|
||||||
|
|
||||||
<organization>
|
<organization>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
<cryptomator.integrations.mac.version>1.2.4</cryptomator.integrations.mac.version>
|
<cryptomator.integrations.mac.version>1.2.4</cryptomator.integrations.mac.version>
|
||||||
<cryptomator.integrations.linux.version>1.5.2</cryptomator.integrations.linux.version>
|
<cryptomator.integrations.linux.version>1.5.2</cryptomator.integrations.linux.version>
|
||||||
<cryptomator.fuse.version>5.0.2</cryptomator.fuse.version>
|
<cryptomator.fuse.version>5.0.2</cryptomator.fuse.version>
|
||||||
<cryptomator.webdav.version>2.0.7</cryptomator.webdav.version>
|
<cryptomator.webdav.version>2.0.10</cryptomator.webdav.version>
|
||||||
|
|
||||||
<!-- 3rd party dependencies -->
|
<!-- 3rd party dependencies -->
|
||||||
<commons-lang3.version>3.17.0</commons-lang3.version>
|
<commons-lang3.version>3.17.0</commons-lang3.version>
|
||||||
@@ -75,6 +75,17 @@
|
|||||||
<surefire.jacoco.args></surefire.jacoco.args>
|
<surefire.jacoco.args></surefire.jacoco.args>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<!-- TODO: remove once fuse-nio-adapter is updated -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.cryptomator</groupId>
|
||||||
|
<artifactId>jfuse</artifactId>
|
||||||
|
<version>0.7.2</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- Cryptomator Libs -->
|
<!-- Cryptomator Libs -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
+8
-5
@@ -36,6 +36,7 @@ import javafx.stage.Stage;
|
|||||||
import javafx.stage.WindowEvent;
|
import javafx.stage.WindowEvent;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
@PassphraseEntryScoped
|
@PassphraseEntryScoped
|
||||||
public class PassphraseEntryController implements FxController {
|
public class PassphraseEntryController implements FxController {
|
||||||
@@ -49,6 +50,7 @@ public class PassphraseEntryController implements FxController {
|
|||||||
private final ForgetPasswordComponent.Builder forgetPassword;
|
private final ForgetPasswordComponent.Builder forgetPassword;
|
||||||
private final KeychainManager keychain;
|
private final KeychainManager keychain;
|
||||||
private final StringBinding vaultName;
|
private final StringBinding vaultName;
|
||||||
|
private final ExecutorService backgroundExecutorService;
|
||||||
private final BooleanProperty unlockInProgress = new SimpleBooleanProperty();
|
private final BooleanProperty unlockInProgress = new SimpleBooleanProperty();
|
||||||
private final ObjectBinding<ContentDisplay> unlockButtonContentDisplay = Bindings.when(unlockInProgress).then(ContentDisplay.LEFT).otherwise(ContentDisplay.TEXT_ONLY);
|
private final ObjectBinding<ContentDisplay> unlockButtonContentDisplay = Bindings.when(unlockInProgress).then(ContentDisplay.LEFT).otherwise(ContentDisplay.TEXT_ONLY);
|
||||||
private final BooleanProperty unlockButtonDisabled = new SimpleBooleanProperty();
|
private final BooleanProperty unlockButtonDisabled = new SimpleBooleanProperty();
|
||||||
@@ -64,7 +66,7 @@ public class PassphraseEntryController implements FxController {
|
|||||||
public Animation unlockAnimation;
|
public Animation unlockAnimation;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public PassphraseEntryController(@KeyLoading Stage window, @KeyLoading Vault vault, CompletableFuture<PassphraseEntryResult> result, @Nullable @Named("savedPassword") Passphrase savedPassword, ForgetPasswordComponent.Builder forgetPassword, KeychainManager keychain) {
|
public PassphraseEntryController(@KeyLoading Stage window, @KeyLoading Vault vault, CompletableFuture<PassphraseEntryResult> result, @Nullable @Named("savedPassword") Passphrase savedPassword, ForgetPasswordComponent.Builder forgetPassword, KeychainManager keychain, ExecutorService backgroundExecutorService) {
|
||||||
this.window = window;
|
this.window = window;
|
||||||
this.vault = vault;
|
this.vault = vault;
|
||||||
this.result = result;
|
this.result = result;
|
||||||
@@ -72,8 +74,8 @@ public class PassphraseEntryController implements FxController {
|
|||||||
this.forgetPassword = forgetPassword;
|
this.forgetPassword = forgetPassword;
|
||||||
this.keychain = keychain;
|
this.keychain = keychain;
|
||||||
this.vaultName = WeakBindings.bindString(vault.displayNameProperty());
|
this.vaultName = WeakBindings.bindString(vault.displayNameProperty());
|
||||||
|
this.backgroundExecutorService = backgroundExecutorService;
|
||||||
window.setOnHiding(this::windowClosed);
|
window.setOnHiding(this::windowClosed);
|
||||||
result.whenCompleteAsync((r, t) -> unlockInProgress.set(false), Platform::runLater);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -119,8 +121,6 @@ public class PassphraseEntryController implements FxController {
|
|||||||
new KeyFrame(Duration.millis(800), legsExtendedY, legsExtendedX, faceHidden), //
|
new KeyFrame(Duration.millis(800), legsExtendedY, legsExtendedX, faceHidden), //
|
||||||
new KeyFrame(Duration.millis(1000), faceVisible) //
|
new KeyFrame(Duration.millis(1000), faceVisible) //
|
||||||
);
|
);
|
||||||
|
|
||||||
result.whenCompleteAsync((r, t) -> stopUnlockAnimation());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -133,6 +133,9 @@ public class PassphraseEntryController implements FxController {
|
|||||||
result.cancel(true);
|
result.cancel(true);
|
||||||
LOG.debug("Unlock canceled by user.");
|
LOG.debug("Unlock canceled by user.");
|
||||||
}
|
}
|
||||||
|
if( passwordField != null) {
|
||||||
|
passwordField.getCharacters().destroy();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,7 +145,7 @@ public class PassphraseEntryController implements FxController {
|
|||||||
unlockInProgress.set(true);
|
unlockInProgress.set(true);
|
||||||
CharSequence pwFieldContents = passwordField.getCharacters();
|
CharSequence pwFieldContents = passwordField.getCharacters();
|
||||||
Passphrase pw = Passphrase.copyOf(pwFieldContents);
|
Passphrase pw = Passphrase.copyOf(pwFieldContents);
|
||||||
result.complete(new PassphraseEntryResult(pw, savePasswordCheckbox.isSelected()));
|
result.completeAsync(() -> new PassphraseEntryResult(pw, savePasswordCheckbox.isSelected()), backgroundExecutorService);
|
||||||
startUnlockAnimation();
|
startUnlockAnimation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user