complete workflow

This commit is contained in:
Armin Schrenk
2023-03-30 16:47:30 +02:00
parent 2b391a6ee3
commit 6c11cc8f1d
6 changed files with 132 additions and 5 deletions

View File

@@ -11,6 +11,7 @@ public enum FxmlFile {
CHANGEPASSWORD("/fxml/changepassword.fxml"), //
CONVERTVAULT_HUBTOLOCAL_START("/fxml/convertvault_hubtolocal_start.fxml"), //
CONVERTVAULT_HUBTOLOCAL_CONVERT("/fxml/convertvault_hubtolocal_convert.fxml"), //
CONVERTVAULT_HUBTOLOCAL_SUCCESS("/fxml/convertvault_hubtolocal_success.fxml"), //
ERROR("/fxml/error.fxml"), //
FORGET_PASSWORD("/fxml/forget_password.fxml"), //
HEALTH_START("/fxml/health_start.fxml"), //

View File

@@ -83,6 +83,13 @@ abstract class ConvertVaultModule {
return fxmlLoaders.createScene(FxmlFile.CONVERTVAULT_HUBTOLOCAL_CONVERT);
}
@Provides
@FxmlScene(FxmlFile.CONVERTVAULT_HUBTOLOCAL_SUCCESS)
@ConvertVaultScoped
static Scene provideHubToLocalSuccessScene(@ConvertVaultWindow FxmlLoaderFactory fxmlLoaders) {
return fxmlLoaders.createScene(FxmlFile.CONVERTVAULT_HUBTOLOCAL_SUCCESS);
}
// ------------------
@Binds
@@ -95,6 +102,11 @@ abstract class ConvertVaultModule {
@FxControllerKey(HubToLocalConvertController.class)
abstract FxController bindHubToLocalConvertController(HubToLocalConvertController controller);
@Binds
@IntoMap
@FxControllerKey(HubToLocalSuccessController.class)
abstract FxController bindHubToLocalSuccessController(HubToLocalSuccessController controller);
@Provides
@IntoMap

View File

@@ -1,17 +1,20 @@
package org.cryptomator.ui.convertvault;
import com.google.common.base.Preconditions;
import dagger.Lazy;
import org.cryptomator.common.Passphrase;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.cryptofs.CryptoFileSystemProperties;
import org.cryptomator.cryptofs.CryptoFileSystemProvider;
import org.cryptomator.cryptofs.common.BackupHelper;
import org.cryptomator.cryptolib.api.CryptoException;
import org.cryptomator.cryptolib.api.MasterkeyLoader;
import org.cryptomator.cryptolib.api.MasterkeyLoadingFailedException;
import org.cryptomator.cryptolib.common.MasterkeyFileAccess;
import org.cryptomator.ui.changepassword.NewPasswordController;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.common.FxmlFile;
import org.cryptomator.ui.common.FxmlScene;
import org.cryptomator.ui.fxapp.FxApplicationWindows;
import org.cryptomator.ui.recoverykey.RecoveryKeyFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,9 +25,9 @@ import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.StringProperty;
import javafx.fxml.FXML;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
@@ -42,6 +45,8 @@ public class HubToLocalConvertController implements FxController {
private static final Logger LOG = LoggerFactory.getLogger(HubToLocalConvertController.class);
private final Stage window;
private final Lazy<Scene> successScene;
private final FxApplicationWindows applicationWindows;
private final Vault vault;
private final StringProperty recoveryKey;
private final RecoveryKeyFactory recoveryKeyFactory;
@@ -53,8 +58,10 @@ public class HubToLocalConvertController implements FxController {
NewPasswordController newPasswordController;
@Inject
public HubToLocalConvertController(@ConvertVaultWindow Stage window, @ConvertVaultWindow Vault vault, @ConvertVaultWindow StringProperty recoveryKey, RecoveryKeyFactory recoveryKeyFactory, MasterkeyFileAccess masterkeyFileAccess, ExecutorService backgroundExecutorService) {
public HubToLocalConvertController(@ConvertVaultWindow Stage window, @FxmlScene(FxmlFile.CONVERTVAULT_HUBTOLOCAL_SUCCESS) Lazy<Scene> successScene, FxApplicationWindows applicationWindows, @ConvertVaultWindow Vault vault, @ConvertVaultWindow StringProperty recoveryKey, RecoveryKeyFactory recoveryKeyFactory, MasterkeyFileAccess masterkeyFileAccess, ExecutorService backgroundExecutorService) {
this.window = window;
this.successScene = successScene;
this.applicationWindows = applicationWindows;
this.vault = vault;
this.recoveryKey = recoveryKey;
this.recoveryKeyFactory = recoveryKeyFactory;
@@ -82,11 +89,12 @@ public class HubToLocalConvertController implements FxController {
isConverting.setValue(false);
if (exception == null) { //TODO: check, how the exceptions are wrapped
LOG.info("Conversion of vault {} succeeded.", vault.getPath());
window.setScene(successScene.get());
} else {
LOG.error("Conversion of vault {} failed.", vault.getPath(), exception);
applicationWindows.showErrorWindow(exception, window, null);
}
}, Platform::runLater); //
//window.setScene(resetPasswordScene.get());
}
//visible for testing

View File

@@ -0,0 +1,41 @@
package org.cryptomator.ui.convertvault;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.fxapp.FxApplicationWindows;
import javax.inject.Inject;
import javafx.fxml.FXML;
import javafx.stage.Stage;
public class HubToLocalSuccessController implements FxController {
private final FxApplicationWindows appWindows;
private final Stage window;
private final Vault vault;
@Inject
HubToLocalSuccessController(FxApplicationWindows appWindows, @ConvertVaultWindow Stage window, @ConvertVaultWindow Vault vault) {
this.appWindows = appWindows;
this.window = window;
this.vault = vault;
}
@FXML
public void unlockAndClose() {
close();
vault.getVaultConfigCache();
appWindows.startUnlockWorkflow(vault, window);
}
@FXML
public void close() {
window.close();
}
/* Observables */
public Vault getVault() {
return vault;
}
}