From 253abd493036ef940ced24942f2c84fd64695972 Mon Sep 17 00:00:00 2001 From: JaniruTEC Date: Thu, 22 Oct 2020 18:32:15 +0200 Subject: [PATCH] Refactored UnlockWorkflow Replaced protected state methods (scheduled, etc.) with lambdas in the constructor Replaced try-multi-catch with if-instanceof in onFailed-lambda --- .../cryptomator/ui/unlock/UnlockWorkflow.java | 41 +++++++------------ 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java b/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java index c339cb344..4db0836a4 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java +++ b/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java @@ -73,6 +73,20 @@ public class UnlockWorkflow extends Task { this.successScene = successScene; this.invalidMountPointScene = invalidMountPointScene; this.errorComponent = errorComponent; + + setOnScheduled(event -> vault.setState(VaultState.PROCESSING)); + setOnSucceeded(event -> vault.setState(VaultState.UNLOCKED)); + setOnCancelled(event -> vault.setState(VaultState.LOCKED)); + + setOnFailed(event -> { + vault.setState(VaultState.LOCKED); + Throwable throwable = event.getSource().getException(); + if (throwable instanceof InvalidMountPointException) { + handleInvalidMountPoint((InvalidMountPointException) throwable); + } else { + handleGenericError(throwable); + } + }); } @Override @@ -85,12 +99,6 @@ public class UnlockWorkflow extends Task { cancel(false); // set Tasks state to cancelled return false; } - } catch (InvalidMountPointException e) { - handleInvalidMountPoint(e); - throw e; // rethrow to trigger correct exception handling in Task - } catch (Exception e) { - handleGenericError(e); - throw e; // rethrow to trigger correct exception handling in Task } finally { wipePassword(password.get()); wipePassword(savedPassword.orElse(null)); @@ -216,25 +224,4 @@ public class UnlockWorkflow extends Task { Arrays.fill(pw, ' '); } } - - @Override - protected void scheduled() { - vault.setState(VaultState.PROCESSING); - } - - @Override - protected void succeeded() { - vault.setState(VaultState.UNLOCKED); - } - - @Override - protected void failed() { - vault.setState(VaultState.LOCKED); - } - - @Override - protected void cancelled() { - vault.setState(VaultState.LOCKED); - } - }