From 770cf6d1f30cfe10ddd5515b58d71c518310b181 Mon Sep 17 00:00:00 2001 From: crschnick Date: Tue, 11 Feb 2025 16:56:50 +0000 Subject: [PATCH] Fix icons race condition --- app/src/main/java/io/xpipe/app/core/mode/BaseMode.java | 3 +++ app/src/main/java/io/xpipe/app/resources/AppImages.java | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/xpipe/app/core/mode/BaseMode.java b/app/src/main/java/io/xpipe/app/core/mode/BaseMode.java index e76f21ebb..1d6b35507 100644 --- a/app/src/main/java/io/xpipe/app/core/mode/BaseMode.java +++ b/app/src/main/java/io/xpipe/app/core/mode/BaseMode.java @@ -79,6 +79,7 @@ public class BaseMode extends OperationMode { } var imagesLoaded = new CountDownLatch(1); + var iconsLoaded = new CountDownLatch(1); var browserLoaded = new CountDownLatch(1); var shellLoaded = new CountDownLatch(1); var storageLoaded = new CountDownLatch(1); @@ -113,6 +114,7 @@ public class BaseMode extends OperationMode { }); imagesLoaded.await(); browserLoaded.await(); + iconsLoaded.await(); AppDialog.waitForAllDialogsClose(); PlatformThread.runLaterIfNeededBlocking(() -> { try { @@ -136,6 +138,7 @@ public class BaseMode extends OperationMode { imagesLoaded.countDown(); storageLoaded.await(); SystemIconManager.init(); + iconsLoaded.countDown(); }, () -> { BrowserIconManager.loadIfNecessary(); diff --git a/app/src/main/java/io/xpipe/app/resources/AppImages.java b/app/src/main/java/io/xpipe/app/resources/AppImages.java index 06aa8d07c..6112d25d2 100644 --- a/app/src/main/java/io/xpipe/app/resources/AppImages.java +++ b/app/src/main/java/io/xpipe/app/resources/AppImages.java @@ -103,7 +103,11 @@ public class AppImages { } var key = file.contains(":") ? file : "app:" + file; - return images.containsKey(key); + if (images.containsKey(key)) { + return true; + } + + return false; } public static Image image(String file) {