From 8e520583738b7055ca42113d6e6dc4d8fe179b84 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Tue, 16 Jan 2024 03:58:30 +0100 Subject: [PATCH] re-attempt receiving key after registering device --- .../keyloading/hub/ReceiveKeyController.java | 6 ++++- .../hub/RegisterSuccessController.java | 25 ++++++++++++++++--- .../resources/fxml/hub_register_success.fxml | 4 +-- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java b/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java index 0604036f9..eec91b194 100644 --- a/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java +++ b/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java @@ -78,7 +78,11 @@ public class ReceiveKeyController implements FxController { @FXML public void initialize() { - requestApiConfig(); // FIXME: only called once - need to restart after returning from register device + receiveKey(); + } + + public void receiveKey() { + requestApiConfig(); } /** diff --git a/src/main/java/org/cryptomator/ui/keyloading/hub/RegisterSuccessController.java b/src/main/java/org/cryptomator/ui/keyloading/hub/RegisterSuccessController.java index bba13516c..6988283a3 100644 --- a/src/main/java/org/cryptomator/ui/keyloading/hub/RegisterSuccessController.java +++ b/src/main/java/org/cryptomator/ui/keyloading/hub/RegisterSuccessController.java @@ -1,24 +1,43 @@ package org.cryptomator.ui.keyloading.hub; +import dagger.Lazy; import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.common.FxmlFile; +import org.cryptomator.ui.common.FxmlScene; import org.cryptomator.ui.keyloading.KeyLoading; import javax.inject.Inject; import javafx.fxml.FXML; +import javafx.scene.Scene; import javafx.stage.Stage; +import javafx.stage.WindowEvent; +import java.util.concurrent.CompletableFuture; public class RegisterSuccessController implements FxController { private final Stage window; + private final CompletableFuture result; + private final Lazy receiveKeyScene; + private final ReceiveKeyController receiveKeyController; @Inject - public RegisterSuccessController(@KeyLoading Stage window) { + public RegisterSuccessController(@KeyLoading Stage window, CompletableFuture result, @FxmlScene(FxmlFile.HUB_RECEIVE_KEY) Lazy receiveKeyScene, ReceiveKeyController receiveKeyController) { this.window = window; + this.result = result; + this.receiveKeyScene = receiveKeyScene; + this.receiveKeyController = receiveKeyController; + this.window.addEventHandler(WindowEvent.WINDOW_HIDING, this::windowClosed); } @FXML - public void close() { - window.close(); + public void complete() { + window.setScene(receiveKeyScene.get()); + receiveKeyController.receiveKey(); } + private void windowClosed(WindowEvent windowEvent) { + result.cancel(true); + } + + } diff --git a/src/main/resources/fxml/hub_register_success.fxml b/src/main/resources/fxml/hub_register_success.fxml index 822a4489e..c8309c2f7 100644 --- a/src/main/resources/fxml/hub_register_success.fxml +++ b/src/main/resources/fxml/hub_register_success.fxml @@ -41,9 +41,9 @@