@Override protected void internalTransition(HardwareWalletClient client, HardwareWalletContext context, MessageEvent event) { context.resetToConnected(); } }
@Override protected void internalTransition(HardwareWalletClient client, HardwareWalletContext context, MessageEvent event) { // We don't expect any messages switch (event.getEventType()) { case SUCCESS: // Possible Ping HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_SUCCEEDED, event.getMessage().get(), client.name()); // Ensure the Features are updated context.resetToConnected(); break; default: handleUnexpectedMessageEvent(context, event); } }
@Override public void showOperationSucceeded(HardwareWalletEvent event) { switch (state) { case REQUEST_REMOVE_PIN: // No PIN present so fall through case ENTER_CURRENT_PIN: if (removePin) { state = ChangePinState.SHOW_REPORT; setReportMessageKey(MessageKey.HARDWARE_REMOVE_PIN_SUCCESS); setReportMessageStatus(true); } // Update the features for next time (resetToAttached is too low level) CoreServices.getCurrentHardwareWalletService().get().getContext().resetToConnected(); break; case ENTER_NEW_PIN: state = ChangePinState.CONFIRM_NEW_PIN; break; case CONFIRM_NEW_PIN: state = ChangePinState.SHOW_REPORT; setReportMessageKey(MessageKey.HARDWARE_CHANGE_PIN_SUCCESS); setReportMessageStatus(true); // Update the features for next time (resetToAttached is too low level) CoreServices.getCurrentHardwareWalletService().get().getContext().resetToConnected(); break; case SHOW_REPORT: break; default: throw new IllegalStateException("Should not reach here from " + state.name()); } }
/** * <p>Provide standard handling for an unexpected message so the downstream consumer can react appropriately</p> * * @param context The current context providing parameters for decisions * @param event The event driving the transition */ protected void handleUnexpectedMessageEvent(HardwareWalletContext context, MessageEvent event) { log.warn("Unexpected message event '{}'", event.getEventType().name()); if (event.getMessage().isPresent()) { HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_FAILED, event.getMessage().get(), context.getClient().name()); } else { HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_FAILED, context.getClient().name()); } context.resetToConnected(); } }
&& hardwareWalletService.get().isDeviceReady()) { hardwareWalletService.get().requestCancel(); hardwareWalletService.get().getContext().resetToConnected();
@Override protected void internalTransition(HardwareWalletClient client, HardwareWalletContext context, MessageEvent event) { switch (event.getEventType()) { case BUTTON_REQUEST: // Device is asking for the user to acknowledge a word display HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_BUTTON_PRESS, event.getMessage().get(), client.name()); client.buttonAck(); break; case SUCCESS: // Device has completed the create wallet operation HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_SUCCEEDED, event.getMessage().get(), client.name()); // Ensure the Features are updated context.resetToConnected(); break; case FAILURE: // User has cancelled or operation failed HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_FAILED, event.getMessage().get(), client.name()); context.resetToInitialised(); break; default: handleUnexpectedMessageEvent(context, event); } } }
@Override public void transition(HardwareWalletClient client, HardwareWalletContext context, MessageEvent event) { // Handle low level message events for the device switch (event.getEventType()) { case DEVICE_ATTACHED: context.resetToAttached(); return; case DEVICE_DETACHED: client.softDetach(); context.resetToDetached(); return; case DEVICE_CONNECTED: context.resetToConnected(); return; case DEVICE_DISCONNECTED: context.resetToDisconnected(); return; case DEVICE_FAILED: context.resetToFailed(); return; } // Must be unhandled to be here so rely on internal handler // provided by implementation internalTransition(client, context, event); }
context.resetToConnected(); break; case FAILURE:
context.resetToConnected(); break; case FAILURE:
context.resetToConnected(); break;