diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java index 5454ab7f..72124daa 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java @@ -56,11 +56,15 @@ public class BrowserTransferComp extends SimpleComp { if (sourceItem.isEmpty()) { return new SimpleStringProperty("?"); } - return Bindings.createStringBinding(() -> { - var p = sourceItem.get().getProgress().getValue(); - var progressSuffix = p == null || sourceItem.get().downloadFinished().get() ? "" : " " + (p.getTransferred() * 100 / p.getTotal()) + "%"; - return entry.getFileName() + progressSuffix; - }, sourceItem.get().getProgress()); + synchronized (sourceItem.get().getProgress()) { + return Bindings.createStringBinding(() -> { + var p = sourceItem.get().getProgress().getValue(); + var progressSuffix = p == null || sourceItem.get().downloadFinished().get() ? + "" : + " " + (p.getTransferred() * 100 / p.getTotal()) + "%"; + return entry.getFileName() + progressSuffix; + }, sourceItem.get().getProgress()); + } }) .grow(false, true); var dragNotice = new LabelComp(AppI18n.observable("dragLocalFiles")) diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java b/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java index 817aa105..be472c8d 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java @@ -130,7 +130,9 @@ public class BrowserTransferModel { BrowserFileTransferMode.COPY, false, progress -> { - item.getProgress().setValue(progress); + synchronized (item.getProgress()) { + item.getProgress().setValue(progress); + } item.getOpenFileSystemModel().getProgress().setValue(progress); }); op.execute();