This commit is contained in:
Sebastian Stenzel
2016-12-19 17:21:33 +01:00
parent ed109977f8
commit 5a3428d9b0

View File

@@ -15,7 +15,6 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
@@ -39,21 +38,20 @@ import javafx.application.Platform;
import javafx.beans.binding.Binding;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.collections.ObservableList;
@PerVault
public class Vault {
private static final Logger LOG = LoggerFactory.getLogger(Vault.class);
@Deprecated
public static final String VAULT_FILE_EXTENSION = ".cryptomator";
private final VaultSettings vaultSettings;
private final WebDavServer server;
private final DeferredCloser closer;
private final BooleanProperty unlocked = new SimpleBooleanProperty();
private final BooleanProperty mounted = new SimpleBooleanProperty();
private final AtomicReference<CryptoFileSystem> cryptoFileSystem = new AtomicReference<>();
@Inject
@@ -79,16 +77,16 @@ public class Vault {
}
public void create(CharSequence passphrase) throws IOException {
getCryptoFileSystem(passphrase);
// TODO and now?
// TODO overheadhunter/markuskreusch check (via cryptofs) if already existing? if not, just call:
getCryptoFileSystem(passphrase); // implicitly creates a non-existing vault
}
public void changePassphrase(CharSequence oldPassphrase, CharSequence newPassphrase) throws IOException, InvalidPassphraseException {
// TODO implement
// TODO overheadhunter/markuskreusch implement in cryptofs
}
public synchronized void activateFrontend(CharSequence passphrase) {
boolean launchSuccess = false;
boolean unlockSuccess = false;
boolean mountSuccess = false;
try {
FileSystem fs = getCryptoFileSystem(passphrase);
@@ -101,7 +99,7 @@ public class Vault {
} finally {
// unlocked is a observable property and should only be changed by the FX application thread
Platform.runLater(() -> {
unlocked.set(launchSuccess);
unlocked.set(unlockSuccess);
mounted.set(mountSuccess);
});
}
@@ -120,7 +118,7 @@ public class Vault {
}
public synchronized void reveal() {
// TODO implement
// TODO overheadhunter implement mounting utility in webdav-nio-adapter
}
// ******************************************************************************
@@ -131,7 +129,7 @@ public class Vault {
return vaultSettings;
}
public synchronized String getWebDavUrl() {
public String getWebDavUrl() {
// TODO implement
return "http://localhost/not/implemented";
}
@@ -157,7 +155,7 @@ public class Vault {
* @return Directory name without preceeding path components and file extension
*/
public Binding<String> name() {
return EasyBind.map(vaultSettings.pathProperty(), p -> p.getFileName().toString());
return EasyBind.map(vaultSettings.pathProperty(), Path::getFileName).map(Path::toString);
}
public boolean doesVaultDirectoryExist() {
@@ -166,7 +164,7 @@ public class Vault {
public boolean isValidVaultDirectory() {
try {
return doesVaultDirectoryExist(); // TODO: && cryptoFileSystemFactory.isValidVaultStructure(getNioFileSystem());
return doesVaultDirectoryExist(); // TODO overheadhunter/markuskreusch: && CryptoFileSystemProvider.isValidVaultStructure(getPath());
} catch (UncheckedIOException e) {
return false;
}
@@ -188,16 +186,6 @@ public class Vault {
return mounted.get();
}
public ObservableList<String> getNamesOfResourcesWithInvalidMac() {
// TODO overheadhunter implement.
return null;
}
public Set<String> getWhitelistedResourcesWithInvalidMac() {
// TODO overheadhunter implement.
return null;
}
public long pollBytesRead() {
// TODO overheadhunter implement.
return 0l;
@@ -212,12 +200,6 @@ public class Vault {
return vaultSettings.getMountName();
}
/**
* sets the mount name while normalizing it
*
* @param mountName
* @throws IllegalArgumentException if the name is empty after normalization
*/
public void setMountName(String mountName) throws IllegalArgumentException {
if (StringUtils.isBlank(mountName)) {
throw new IllegalArgumentException("mount name is empty");