From 0754e79970820a54cc4df01df47d26937b33f64f Mon Sep 17 00:00:00 2001 From: crschnick Date: Wed, 3 Jan 2024 14:22:18 +0000 Subject: [PATCH] Run restore action staggered --- .../main/java/io/xpipe/app/browser/BrowserModel.java | 10 +++++++--- .../java/io/xpipe/app/browser/BrowserWelcomeComp.java | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserModel.java b/app/src/main/java/io/xpipe/app/browser/BrowserModel.java index de7d73815..2cbe2decb 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserModel.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserModel.java @@ -51,12 +51,16 @@ public class BrowserModel { } public void restoreState(BrowserSavedState state) { - state.getEntries().forEach(e -> { - restoreState(e, null); + ThreadHelper.runAsync(() -> { + state.getEntries().forEach(e -> { + restoreStateAsync(e, null); + }); + // Don't try to run everything in parallel as that can be taxing + ThreadHelper.sleep(1000); }); } - public void restoreState(BrowserSavedState.Entry e, BooleanProperty busy) { + public void restoreStateAsync(BrowserSavedState.Entry e, BooleanProperty busy) { var storageEntry = DataStorage.get().getStoreEntryIfPresent(e.getUuid()); storageEntry.ifPresent(entry -> { openFileSystemAsync(entry.ref(), model -> e.getPath(), busy); diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserWelcomeComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserWelcomeComp.java index c57ed4a3b..01e74cab1 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserWelcomeComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserWelcomeComp.java @@ -88,7 +88,7 @@ public class BrowserWelcomeComp extends SimpleComp { var disable = new SimpleBooleanProperty(); return new ButtonComp(null, content, () -> { ThreadHelper.runAsync(() -> { - model.restoreState(e, disable); + model.restoreStateAsync(e, disable); }); }).accessibleText(DataStorage.get().getStoreDisplayName(entry.get())).disable(disable).styleClass("color-listBox").apply(struc -> struc.get().setMaxWidth(2000)).grow(true, false); }).apply(struc -> {