From 488d5505ff60fb7c064d0ac191fea91459c8a222 Mon Sep 17 00:00:00 2001 From: crschnick Date: Tue, 23 Dec 2025 20:20:52 +0000 Subject: [PATCH] Various fixes [stage] --- .../app/browser/file/BrowserFileSystemTabModel.java | 2 +- .../xpipe/app/browser/file/BrowserTransferModel.java | 3 ++- .../main/java/io/xpipe/app/ext/WrapperFileSystem.java | 10 +++++++++- version | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/browser/file/BrowserFileSystemTabModel.java b/app/src/main/java/io/xpipe/app/browser/file/BrowserFileSystemTabModel.java index 7ea545f3d..8ef8c0fb0 100644 --- a/app/src/main/java/io/xpipe/app/browser/file/BrowserFileSystemTabModel.java +++ b/app/src/main/java/io/xpipe/app/browser/file/BrowserFileSystemTabModel.java @@ -62,7 +62,7 @@ public final class BrowserFileSystemTabModel extends BrowserStoreSessionTab progressRemaining = new SimpleObjectProperty<>(); private final FailableFunction, FileSystem, Exception> fileSystemFactory; private final StringProperty fileSystemNameSuffix = new SimpleStringProperty(); - private FileSystem fileSystem; + private WrapperFileSystem fileSystem; private BrowserFileSystemSavedState savedState; public BrowserFileSystemTabModel( diff --git a/app/src/main/java/io/xpipe/app/browser/file/BrowserTransferModel.java b/app/src/main/java/io/xpipe/app/browser/file/BrowserTransferModel.java index b3bb5619c..a2096099c 100644 --- a/app/src/main/java/io/xpipe/app/browser/file/BrowserTransferModel.java +++ b/app/src/main/java/io/xpipe/app/browser/file/BrowserTransferModel.java @@ -10,6 +10,7 @@ import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.process.OsFileSystem; import io.xpipe.app.process.ShellTemp; import io.xpipe.app.storage.DataStorage; +import io.xpipe.app.util.BooleanScope; import io.xpipe.app.util.DesktopHelper; import io.xpipe.app.util.ThreadHelper; @@ -142,7 +143,7 @@ public class BrowserTransferModel { return; } - try { + try (var ignored = new BooleanScope(itemModel.getBusy()).exclusive().start()) { transferring.setValue(true); var op = new BrowserFileTransferOperation( BrowserLocalFileSystem.getLocalFileEntry(TEMP), diff --git a/app/src/main/java/io/xpipe/app/ext/WrapperFileSystem.java b/app/src/main/java/io/xpipe/app/ext/WrapperFileSystem.java index 2494b439a..6600d31ae 100644 --- a/app/src/main/java/io/xpipe/app/ext/WrapperFileSystem.java +++ b/app/src/main/java/io/xpipe/app/ext/WrapperFileSystem.java @@ -1,6 +1,7 @@ package io.xpipe.app.ext; import io.xpipe.app.process.ShellControl; +import io.xpipe.core.FailableConsumer; import io.xpipe.core.FilePath; import lombok.Getter; @@ -13,7 +14,6 @@ import java.util.Optional; import java.util.function.Supplier; import java.util.stream.Stream; -@Getter public class WrapperFileSystem implements FileSystem { private final FileSystem fs; @@ -24,6 +24,14 @@ public class WrapperFileSystem implements FileSystem { this.runningCheck = () -> fs.isRunning(); } + public void withFileSystem(FailableConsumer consumer) throws Exception { + if (!runningCheck.get()) { + return; + } + + consumer.accept(fs); + } + @Override public boolean writeInstantIfPossible(FileSystem sourceFs, FilePath sourceFile, FilePath targetFile) throws Exception { diff --git a/version b/version index dde6d50c7..d6668010c 100644 --- a/version +++ b/version @@ -1 +1 @@ -20.0-10 +20.0-11