From 2e542bf894651cd02a38f28215e7a11c0c018b7a Mon Sep 17 00:00:00 2001 From: Andreas Abraham Date: Mon, 4 Nov 2019 15:41:43 +0100 Subject: request sms tan in waiting screen --- .../gui/workflow/states/MobileBKUState.java | 111 +++++++++++++-------- 1 file changed, 68 insertions(+), 43 deletions(-) (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java') diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java index 9d2fb32f..cf107b58 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java @@ -445,49 +445,74 @@ public class MobileBKUState extends State { } -// /** -// * -// */ -// public void showOpenAppMessageWithSMSandCancel() { -// -// final ATrustStatus status = (ATrustStatus) this.getStatus(); -// final ATrustHandler handler = (ATrustHandler) this.getHandler(); -// -// Display.getDefault().syncExec(new Runnable() { -// @Override -// public void run() { -// WaitingForAppComposite waitingForAppcomposite = getWaitingForAppComposite(); -// getStateMachine().getGUIProvider().display(waitingForAppcomposite); -// -// Display display = getStateMachine().getGUIProvider().getMainShell().getDisplay(); -// while (!waitingForAppcomposite.getUserCancel() && !waitingForAppcomposite.getUserSMS() && !waitingForAppcomposite.getDone()) { -// if (!display.readAndDispatch()) { -// display.sleep(); -// } -// } -// -// if (waitingForAppcomposite.getUserCancel()) { -// waitingForAppcomposite.setUserCancel(false); -// status.setErrorMessage("cancel"); //$NON-NLS-1$ -// return; -// } -// -// if (waitingForAppcomposite.getUserSMS()) { -// status.setQRCode(null); -// status.setErrorMessage(null); -// return; -// -// } -// -// if (waitingForAppcomposite.getDone()) -// waitingForAppcomposite.setDone(false); -// -// // show waiting composite -// getStateMachine().getGUIProvider().display( -// MobileBKUState.this.getWaitingComposite()); -// } -// }); -// } + /** + * + */ + public void showOpenAppMessageWithSMSandCancel() { + + final ATrustStatus status = (ATrustStatus) this.getStatus(); + final ATrustHandler handler = (ATrustHandler) this.getHandler(); + + final Timer checkDone = new Timer(true); + checkDone.scheduleAtFixedRate(new TimerTask() { + + @Override + public void run() { + // ping signature page to see if code has been scanned + try { + String resp = handler.getSignaturePage(); + if (handler.handleWaitforAppResponse(resp)) { + log.debug("Signature page response: " + resp); //$NON-NLS-1$ + getWaitingForAppComposite().setIsDone(true); + Display display = getStateMachine().getGUIProvider().getMainShell().getDisplay(); + display.wake(); + } + Display.getDefault().wake(); + } catch (Exception e) { + log.error("Error getting signature page", e); //$NON-NLS-1$ + } + } + }, 0, 5000); + + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + WaitingForAppComposite waitingForAppcomposite = MobileBKUState.this.getWaitingForAppComposite();// getWaitingForAppComposite(); + getStateMachine().getGUIProvider().display(waitingForAppcomposite); + + Display display = getStateMachine().getGUIProvider().getMainShell().getDisplay(); + while (!waitingForAppcomposite.getUserCancel() && !waitingForAppcomposite.getUserSMS() + && !waitingForAppcomposite.getIsDone()) { + if (!display.readAndDispatch()) { + display.sleep(); + } + } + + if (waitingForAppcomposite.getUserCancel()) { + waitingForAppcomposite.setUserCancel(false); + status.setErrorMessage("cancel"); //$NON-NLS-1$ + return; + } + + if (waitingForAppcomposite.getUserSMS()) { + status.setQRCode(null); + waitingForAppcomposite.setUserSMS(false); + status.setErrorMessage("sms"); //$NON-NLS-1$ + status.setSmsTan(true); + // show waiting composite + getStateMachine().getGUIProvider().display(MobileBKUState.this.getWaitingComposite()); + return; + + } + + if (waitingForAppcomposite.getIsDone()) + waitingForAppcomposite.setIsDone(false); + + // show waiting composite + getStateMachine().getGUIProvider().display(MobileBKUState.this.getWaitingComposite()); + } + }); + } /** * when fingerprint or faceid is selected in the app -- cgit v1.2.3