Преглед на файлове

Be more lenient when handling open vault events
either via drag and drop or registered file extensions

Sebastian Stenzel преди 3 години
родител
ревизия
79c48778ce

+ 1 - 0
src/main/java/org/cryptomator/common/Constants.java

@@ -5,6 +5,7 @@ public interface Constants {
 	String MASTERKEY_FILENAME = "masterkey.cryptomator";
 	String MASTERKEY_BACKUP_SUFFIX = ".bkup";
 	String VAULTCONFIG_FILENAME = "vault.cryptomator";
+	String CRYPTOMATOR_FILENAME_EXT = ".cryptomator";
 	byte[] PEPPER = new byte[0];
 
 }

+ 2 - 3
src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java

@@ -11,12 +11,11 @@ import javax.inject.Named;
 import javax.inject.Singleton;
 import javafx.application.Platform;
 import java.io.IOException;
-import java.nio.file.NoSuchFileException;
 import java.nio.file.Path;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.ExecutorService;
 
-import static org.cryptomator.common.Constants.MASTERKEY_FILENAME;
+import static org.cryptomator.common.Constants.CRYPTOMATOR_FILENAME_EXT;
 
 @Singleton
 class AppLaunchEventHandler {
@@ -69,7 +68,7 @@ class AppLaunchEventHandler {
 		assert Platform.isFxApplicationThread();
 		try {
 			final Vault v;
-			if (potentialVaultPath.getFileName().toString().equals(MASTERKEY_FILENAME)) {
+			if (potentialVaultPath.getFileName().toString().endsWith(CRYPTOMATOR_FILENAME_EXT)) {
 				v = vaultListManager.add(potentialVaultPath.getParent());
 			} else {
 				v = vaultListManager.add(potentialVaultPath);

+ 5 - 1
src/main/java/org/cryptomator/ui/mainwindow/MainWindowController.java

@@ -27,6 +27,7 @@ import java.nio.file.Path;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import static org.cryptomator.common.Constants.CRYPTOMATOR_FILENAME_EXT;
 import static org.cryptomator.common.Constants.MASTERKEY_FILENAME;
 import static org.cryptomator.common.Constants.VAULTCONFIG_FILENAME;
 
@@ -94,6 +95,9 @@ public class MainWindowController implements FxController {
 
 	private boolean containsVault(Path path) {
 		try {
+			if (path.getFileName().toString().endsWith(CRYPTOMATOR_FILENAME_EXT)) {
+				path = path.getParent();
+			}
 			return CryptoFileSystemProvider.checkDirStructureForVault(path, VAULTCONFIG_FILENAME, MASTERKEY_FILENAME) != DirStructure.UNRELATED;
 		} catch (IOException e) {
 			return false;
@@ -102,7 +106,7 @@ public class MainWindowController implements FxController {
 
 	private void addVault(Path pathToVault) {
 		try {
-			if (pathToVault.getFileName().toString().equals(VAULTCONFIG_FILENAME)) {
+			if (pathToVault.getFileName().toString().endsWith(CRYPTOMATOR_FILENAME_EXT)) {
 				vaultListManager.add(pathToVault.getParent());
 			} else {
 				vaultListManager.add(pathToVault);