diff --git a/main/ui/src/main/java/org/cryptomator/ui/util/EncryptingFileVisitor.java b/main/core/src/main/java/org/cryptomator/files/EncryptingFileVisitor.java similarity index 98% rename from main/ui/src/main/java/org/cryptomator/ui/util/EncryptingFileVisitor.java rename to main/core/src/main/java/org/cryptomator/files/EncryptingFileVisitor.java index dcfbaec5c..ebe12b8ad 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/util/EncryptingFileVisitor.java +++ b/main/core/src/main/java/org/cryptomator/files/EncryptingFileVisitor.java @@ -1,4 +1,4 @@ -package org.cryptomator.ui.util; +package org.cryptomator.files; import java.io.IOException; import java.nio.file.FileVisitResult; diff --git a/main/ui/src/main/java/org/cryptomator/ui/InitializeController.java b/main/ui/src/main/java/org/cryptomator/ui/InitializeController.java index 368910805..3d62314f1 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/InitializeController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/InitializeController.java @@ -37,10 +37,10 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.CharUtils; import org.apache.commons.lang3.StringUtils; import org.cryptomator.crypto.aes256.Aes256Cryptor; +import org.cryptomator.files.EncryptingFileVisitor; import org.cryptomator.ui.controls.ClearOnDisableListener; import org.cryptomator.ui.controls.SecPasswordField; import org.cryptomator.ui.model.Directory; -import org.cryptomator.ui.util.EncryptingFileVisitor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/main/ui/src/main/java/org/cryptomator/ui/MainController.java b/main/ui/src/main/java/org/cryptomator/ui/MainController.java index a88b71acc..1f6310830 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/MainController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/MainController.java @@ -80,11 +80,17 @@ public class MainController implements Initializable, InitializationListener, Un private void selectedDirectoryDidChange(ListChangeListener.Change change) { final Directory selectedDir = directoryList.getSelectionModel().getSelectedItem(); stage.setTitle(selectedDir.getName()); + showDirectory(selectedDir); + } + + private void showDirectory(Directory directory) { try { - if (selectedDir.containsMasterKey()) { - this.showUnlockView(selectedDir); + if (directory.isUnlocked()) { + this.showUnlockedView(directory); + } else if (directory.containsMasterKey()) { + this.showUnlockView(directory); } else { - this.showInitializeView(selectedDir); + this.showInitializeView(directory); } } catch (IOException e) { LOG.error("Failed to analyze directory.", e); diff --git a/main/ui/src/main/java/org/cryptomator/ui/UnlockController.java b/main/ui/src/main/java/org/cryptomator/ui/UnlockController.java index 8edb1d547..b9b8e55f8 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/UnlockController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/UnlockController.java @@ -87,8 +87,10 @@ public class UnlockController implements Initializable { directory.getCryptor().decryptMasterKey(masterKeyInputStream, password); if (!directory.startServer()) { messageLabel.setText(rb.getString("unlock.messageLabel.startServerFailed")); + directory.getCryptor().swipeSensitiveData(); return; } + directory.setUnlocked(true); directory.mount(); if (listener != null) { listener.didUnlock(this); diff --git a/main/ui/src/main/java/org/cryptomator/ui/UnlockedController.java b/main/ui/src/main/java/org/cryptomator/ui/UnlockedController.java index f12880686..ec1e9170e 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/UnlockedController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/UnlockedController.java @@ -37,6 +37,7 @@ public class UnlockedController implements Initializable { protected void closeVault(ActionEvent event) { directory.unmount(); directory.stopServer(); + directory.setUnlocked(false); if (listener != null) { listener.didLock(this); } diff --git a/main/core/src/main/resources/log4j2.xml b/main/ui/src/main/resources/log4j2.xml similarity index 85% rename from main/core/src/main/resources/log4j2.xml rename to main/ui/src/main/resources/log4j2.xml index 249d75093..96394fcbc 100644 --- a/main/core/src/main/resources/log4j2.xml +++ b/main/ui/src/main/resources/log4j2.xml @@ -21,7 +21,10 @@ - + + + +