1/* 2 * \copyright Copyright (c) 2017-2021 Governikus GmbH & Co. KG, Germany 3 */ 4 5import QtQuick 2.12 6import QtQuick.Controls 2.12 7 8import Governikus.Type.RemoteServiceModel 1.0 9import Governikus.EnterPasswordView 1.0 10import Governikus.TitleBar 1.0 11import Governikus.Type.ReaderPlugIn 1.0 12import Governikus.Type.NumberModel 1.0 13 14Item { 15 id: controller 16 17 Connections { 18 target: RemoteServiceModel 19 onFireCurrentStateChanged: { 20 switch (RemoteServiceModel.currentState) { 21 case "Initial": 22 break 23 case "StateStartRemoteService": 24 navBar.lockedAndHidden = true 25 setWorkflowStateAndContinue("startRemoteService") 26 break 27 case "StateProcessRemoteMessages": 28 RemoteServiceModel.continueWorkflow() 29 break 30 case "StateEnterPacePasswordRemote": 31 setWorkflowStateAndRequestInput("establishPaceChannelRemote", RemoteServiceModel.getPasswordType()) 32 break 33 case "StateEnterNewPacePinRemote": 34 setWorkflowStateAndRequestInput("changePinRemote", "PIN_NEW") 35 break 36 case "FinalState": 37 RemoteServiceModel.continueWorkflow() 38 navBar.lockedAndHidden = false 39 break 40 default: 41 RemoteServiceModel.continueWorkflow() 42 } 43 } 44 } 45 46 function setWorkflowState(pState) { 47 state = pState 48 } 49 50 function setWorkflowStateAndContinue(pState) { 51 setWorkflowState(pState) 52 RemoteServiceModel.continueWorkflow() 53 } 54 55 function setWorkflowStateAndRequestInput(pState, pEnterPinState) { 56 setWorkflowState(pState) 57 if (RemoteServiceModel.isBasicReader && RemoteServiceModel.pinPadModeOn()) { 58 firePushWithProperties(enterPinView, {state: pEnterPinState}) 59 } else { 60 RemoteServiceModel.continueWorkflow() 61 } 62 } 63 64 Component { 65 id: enterPinView 66 67 EnterPasswordView { 68 id: passwordView 69 70 enableTransportPinLink: RemoteServiceModel.enableTransportPinLink 71 requestTransportPin: RemoteServiceModel.requestTransportPin 72 73 navigationAction: NavigationAction { 74 state: "cancel" 75 onClicked: { 76 firePop() 77 RemoteServiceModel.cancelPasswordRequest() 78 } 79 } 80 81 onPasswordEntered: { 82 firePop() 83 RemoteServiceModel.continueWorkflow() 84 } 85 86 onChangePinLength: RemoteServiceModel.changePinLength() 87 88 Connections { 89 target: RemoteServiceModel 90 onFireConnectedChanged: if (!RemoteServiceModel.connectedToPairedDevice && passwordView.StackView.visible) firePop() 91 } 92 } 93 } 94} 95