diff --git a/pom.xml b/pom.xml index caba8e342..7660669e2 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ org.ow2.asm,org.apache.jackrabbit,org.apache.httpcomponents - 2.9.0 + 2.10.0-SNAPSHOT 1.6.0 1.5.0 1.4.0 diff --git a/src/main/java/org/cryptomator/common/EventMap.java b/src/main/java/org/cryptomator/common/EventMap.java index 2e8dbf035..42e2f7dba 100644 --- a/src/main/java/org/cryptomator/common/EventMap.java +++ b/src/main/java/org/cryptomator/common/EventMap.java @@ -5,6 +5,7 @@ import org.cryptomator.cryptofs.event.BrokenFileNodeEvent; import org.cryptomator.cryptofs.event.ConflictResolutionFailedEvent; import org.cryptomator.cryptofs.event.ConflictResolvedEvent; import org.cryptomator.cryptofs.event.DecryptionFailedEvent; +import org.cryptomator.cryptofs.event.FileIsInUseEvent; import org.cryptomator.cryptofs.event.FilesystemEvent; import org.cryptomator.event.VaultEvent; import org.jetbrains.annotations.NotNull; @@ -154,6 +155,7 @@ public class EventMap implements ObservableMap { case ConflictResolutionFailedEvent(_, _, Path conflictingCiphertext, _) -> conflictingCiphertext; case BrokenDirFileEvent(_, Path ciphertext) -> ciphertext; case BrokenFileNodeEvent(_, _, Path ciphertext) -> ciphertext; + case FileIsInUseEvent(_,_, Path ciphertext,_) -> ciphertext; }; return new EventKey(p, e.getClass()); } diff --git a/src/main/java/org/cryptomator/common/vaults/Vault.java b/src/main/java/org/cryptomator/common/vaults/Vault.java index 2e1ae4bba..5fb4400d9 100644 --- a/src/main/java/org/cryptomator/common/vaults/Vault.java +++ b/src/main/java/org/cryptomator/common/vaults/Vault.java @@ -151,6 +151,7 @@ public class Vault { .withMaxCleartextNameLength(vaultSettings.maxCleartextFilenameLength.get()) // .withVaultConfigFilename(Constants.VAULTCONFIG_FILENAME) // .withFilesystemEventConsumer(this::consumeVaultEvent) // + .withOwner("cryptobot") .build(); return CryptoFileSystemProvider.newFileSystem(getPath(), fsProps); } diff --git a/src/main/java/org/cryptomator/event/FileSystemEventAggregator.java b/src/main/java/org/cryptomator/event/FileSystemEventAggregator.java index c871436fd..39e04ed83 100644 --- a/src/main/java/org/cryptomator/event/FileSystemEventAggregator.java +++ b/src/main/java/org/cryptomator/event/FileSystemEventAggregator.java @@ -6,6 +6,7 @@ import org.cryptomator.cryptofs.event.BrokenFileNodeEvent; import org.cryptomator.cryptofs.event.ConflictResolutionFailedEvent; import org.cryptomator.cryptofs.event.ConflictResolvedEvent; import org.cryptomator.cryptofs.event.DecryptionFailedEvent; +import org.cryptomator.cryptofs.event.FileIsInUseEvent; import org.cryptomator.cryptofs.event.FilesystemEvent; import javax.inject.Inject; @@ -101,6 +102,7 @@ public class FileSystemEventAggregator { case ConflictResolutionFailedEvent(_, _, Path conflictingCiphertext, _) -> conflictingCiphertext; case BrokenDirFileEvent(_, Path ciphertext) -> ciphertext; case BrokenFileNodeEvent(_, _, Path ciphertext) -> ciphertext; + case FileIsInUseEvent(_, _, Path ciphertext, _) -> ciphertext; }; return new FSEventBucket(v, p, event.getClass()); } diff --git a/src/main/java/org/cryptomator/ui/eventview/EventListCellController.java b/src/main/java/org/cryptomator/ui/eventview/EventListCellController.java index 3157f9f40..49b0657a4 100644 --- a/src/main/java/org/cryptomator/ui/eventview/EventListCellController.java +++ b/src/main/java/org/cryptomator/ui/eventview/EventListCellController.java @@ -1,5 +1,6 @@ package org.cryptomator.ui.eventview; +import org.cryptomator.cryptofs.event.FileIsInUseEvent; import org.cryptomator.event.FSEventBucket; import org.cryptomator.event.FSEventBucketContent; import org.cryptomator.event.FileSystemEventAggregator; @@ -124,6 +125,19 @@ public class EventListCellController implements FxController { case DecryptionFailedEvent fse -> this.adjustToDecryptionFailedEvent(fse); case BrokenDirFileEvent fse -> this.adjustToBrokenDirFileEvent(fse); case BrokenFileNodeEvent fse -> this.adjustToBrokenFileNodeEvent(fse); + case FileIsInUseEvent fse -> this.adjustToFileInUseEvent(fse); + } + } + + private void adjustToFileInUseEvent(FileIsInUseEvent fse) { + eventIcon.setValue(FontAwesome5Icon.TIMES); + //eventMessage.setValue(resourceBundle.getString("eventView.entry.brokenFileNode.message")); + eventMessage.setValue("File is in use"); + eventDescription.setValue(fse.ciphertext().getFileName().toString()); + if (revealService != null) { + addAction("Show encrypted Path", () -> reveal(revealService, fse.ciphertext())); + } else { + addAction("Copy encrypted Path", () -> copyToClipboard(fse.ciphertext().toString())); } }