diff --git a/app/src/main/java/io/xpipe/app/core/AppWindowHelper.java b/app/src/main/java/io/xpipe/app/core/AppWindowHelper.java index ada62316..43be60e8 100644 --- a/app/src/main/java/io/xpipe/app/core/AppWindowHelper.java +++ b/app/src/main/java/io/xpipe/app/core/AppWindowHelper.java @@ -74,15 +74,6 @@ public class AppWindowHelper { childStage.setY(stage.getY() + stage.getHeight() / 2 - childStage.getHeight() / 2); } - public static void showAlert(Alert a, Consumer> bt) { - ThreadHelper.runAsync(() -> { - var r = showBlockingAlert(a); - if (bt != null) { - bt.accept(r); - } - }); - } - public static void showAlert(Consumer c, Consumer> bt) { ThreadHelper.runAsync(() -> { var r = showBlockingAlert(c); @@ -108,11 +99,15 @@ public class AppWindowHelper { } } - public static Optional showBlockingAlert(Alert a) { + public static Optional showBlockingAlert(Consumer c) { AtomicReference> result = new AtomicReference<>(); if (!Platform.isFxApplicationThread()) { CountDownLatch latch = new CountDownLatch(1); Platform.runLater(() -> { + Alert a = AppWindowHelper.createEmptyAlert(); + AppFont.normal(a.getDialogPane()); + + c.accept(a); result.set(a.showAndWait()); latch.countDown(); }); @@ -121,6 +116,10 @@ public class AppWindowHelper { } catch (InterruptedException ignored) { } } else { + Alert a = createEmptyAlert(); + AppFont.normal(a.getDialogPane()); + c.accept(a); + Button button = (Button) a.getDialogPane().lookupButton(ButtonType.OK); if (button != null) { button.getStyleClass().add("ok-button"); @@ -131,13 +130,6 @@ public class AppWindowHelper { return result.get(); } - public static Optional showBlockingAlert(Consumer c) { - Alert a = AppWindowHelper.createEmptyAlert(); - AppFont.normal(a.getDialogPane()); - c.accept(a); - return showBlockingAlert(a); - } - public static Alert createEmptyAlert() { Alert alert = new Alert(Alert.AlertType.NONE); setIcon(alert); diff --git a/app/src/main/java/io/xpipe/app/util/MacOsPermissions.java b/app/src/main/java/io/xpipe/app/util/MacOsPermissions.java index 9cd7e358..cb339ba2 100644 --- a/app/src/main/java/io/xpipe/app/util/MacOsPermissions.java +++ b/app/src/main/java/io/xpipe/app/util/MacOsPermissions.java @@ -12,16 +12,6 @@ import java.util.concurrent.atomic.AtomicReference; public class MacOsPermissions { - private static Alert createAlert() { - var alert = AppWindowHelper.createEmptyAlert(); - alert.setAlertType(Alert.AlertType.INFORMATION); - alert.setTitle(I18n.get("permissionsAlertTitle")); - alert.setHeaderText(I18n.get("permissionsAlertTitleHeader")); - alert.getDialogPane().setContent(AppWindowHelper.alertContentText(I18n.get("permissionsAlertTitleContent"))); - alert.getButtonTypes().clear(); - return alert; - } - public static boolean waitForAccessibilityPermissions() throws Exception { AtomicReference alert = new AtomicReference<>(); var state = new SimpleBooleanProperty(true); @@ -42,8 +32,14 @@ public class MacOsPermissions { return; } - alert.set(createAlert()); - AppWindowHelper.showAlert(alert.get(), buttonType -> { + AppWindowHelper.showAlert(a -> { + a.setAlertType(Alert.AlertType.INFORMATION); + a.setTitle(I18n.get("permissionsAlertTitle")); + a.setHeaderText(I18n.get("permissionsAlertTitleHeader")); + a.getDialogPane().setContent(AppWindowHelper.alertContentText(I18n.get("permissionsAlertTitleContent"))); + a.getButtonTypes().clear(); + alert.set(a); + }, buttonType -> { alert.get().close(); if (buttonType.isEmpty() || !buttonType.get().getButtonData().isDefaultButton()) { state.set(false);