From 99e9e92f10971b3fc1b25fb7ecf4e26ae01568a2 Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Tue, 29 Jul 2025 06:29:06 +0200 Subject: [PATCH] Fix progress bar due to JavaFX limitations --- .../cryptomator/ui/fxapp/UpdateChecker.java | 2 +- .../UpdatesPreferencesController.java | 10 +++++++--- .../resources/fxml/preferences_updates.fxml | 19 +++++++++++-------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/fxapp/UpdateChecker.java b/src/main/java/org/cryptomator/ui/fxapp/UpdateChecker.java index b5c8579ba..6a957936b 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/UpdateChecker.java +++ b/src/main/java/org/cryptomator/ui/fxapp/UpdateChecker.java @@ -101,7 +101,7 @@ public class UpdateChecker { LOG.debug("Update progess is at percentage: {} and has status: {}", progress.getProgress(), progress.getStatus()); if (progress.getStatus() == 0 || progress.getStatus() == 2) { - controller.flatpakProgressProperty().set(progress.getProgress() / 100.0); + Platform.runLater(() -> controller.flatpakProgressProperty().set(progress.getProgress() / 100.0)); } if (progress.getStatus() == 2 && progress.getProgress() == 100) { diff --git a/src/main/java/org/cryptomator/ui/preferences/UpdatesPreferencesController.java b/src/main/java/org/cryptomator/ui/preferences/UpdatesPreferencesController.java index 19ab9ea1c..c0e9a1489 100644 --- a/src/main/java/org/cryptomator/ui/preferences/UpdatesPreferencesController.java +++ b/src/main/java/org/cryptomator/ui/preferences/UpdatesPreferencesController.java @@ -27,6 +27,7 @@ import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; import javafx.scene.control.ContentDisplay; +import javafx.scene.control.Label; import javafx.scene.control.ProgressBar; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; @@ -74,8 +75,7 @@ public class UpdatesPreferencesController implements FxController { /* FXML */ public CheckBox checkForUpdatesCheckbox; - @FXML - public Button flatpakUpdateButton; + public Label flatpakButtonLabel; @Inject UpdatesPreferencesController(Application application, Environment environment, ResourceBundle resourceBundle, Settings settings, UpdateChecker updateChecker, AppUpdateChecker appUpdateChecker, Environment env) { @@ -103,7 +103,7 @@ public class UpdatesPreferencesController implements FxController { public void initialize() { checkForUpdatesCheckbox.selectedProperty().bindBidirectional(settings.checkForUpdates); switch (env.getBuildNumber().get()) { - case "flatpak-1" -> flatpakUpdateButton.setText(appUpdateChecker.getServiceForChannel(DistributionChannel.Value.LINUX_FLATPAK).getDisplayName()); + case "flatpak-1" -> flatpakButtonLabel.setText(appUpdateChecker.getServiceForChannel(DistributionChannel.Value.LINUX_FLATPAK).getDisplayName()); default -> LOG.error("Unexpected value 'buildNumber': {}", env.getBuildNumber().get()); } @@ -243,4 +243,8 @@ public class UpdatesPreferencesController implements FxController { public DoubleProperty flatpakProgressProperty() { return flatpakProgress; } + + public double getFlatpakProgress() { + return flatpakProgress.get(); + } } diff --git a/src/main/resources/fxml/preferences_updates.fxml b/src/main/resources/fxml/preferences_updates.fxml index 96b40b82b..9f334bcfa 100644 --- a/src/main/resources/fxml/preferences_updates.fxml +++ b/src/main/resources/fxml/preferences_updates.fxml @@ -53,16 +53,19 @@ - -