diff --git a/app/src/main/java/io/xpipe/app/core/window/AppDialog.java b/app/src/main/java/io/xpipe/app/core/window/AppDialog.java index d9cbb58fa..8ae1fee47 100644 --- a/app/src/main/java/io/xpipe/app/core/window/AppDialog.java +++ b/app/src/main/java/io/xpipe/app/core/window/AppDialog.java @@ -64,7 +64,9 @@ public class AppDialog { PlatformThread.runLaterIfNeededBlocking(() -> { modalOverlay.add(o); }); - waitForDialogClose(o); + if (wait) { + waitForDialogClose(o); + } ThreadHelper.sleep(200); } else { var key = new Object(); diff --git a/app/src/main/java/io/xpipe/app/storage/StorageElement.java b/app/src/main/java/io/xpipe/app/storage/StorageElement.java index c6b8c6ab1..032d705e5 100644 --- a/app/src/main/java/io/xpipe/app/storage/StorageElement.java +++ b/app/src/main/java/io/xpipe/app/storage/StorageElement.java @@ -83,11 +83,15 @@ public abstract class StorageElement { lastModified = Instant.now(); dirty = true; } - listeners.forEach(l -> l.onUpdate()); + synchronized (listeners) { + listeners.forEach(l -> l.onUpdate()); + } } public void addListener(Listener l) { - this.listeners.add(l); + synchronized (listeners) { + this.listeners.add(l); + } } public final void deleteFromDisk() throws IOException { diff --git a/version b/version index 055822295..a8e29d588 100644 --- a/version +++ b/version @@ -1 +1 @@ -14.0-55 +14.0-56