From 2518efd3dd2a4705f19894ffb5bd91e1893e7ef0 Mon Sep 17 00:00:00 2001 From: pscott Date: Fri, 5 Feb 2021 17:52:46 +0100 Subject: [PATCH] Add manual ux_flow; display nonce is now a setting --- src/ui_flow.h | 4 ---- src_features/signTx/logic_signTx.c | 6 +---- src_features/signTx/ui_flow_signTx.c | 36 +++++++++++++++------------- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/src/ui_flow.h b/src/ui_flow.h index cd06ff0..4e8f321 100644 --- a/src/ui_flow.h +++ b/src/ui_flow.h @@ -12,10 +12,6 @@ extern const ux_flow_step_t* const ux_confirm_selector_flow[]; extern const ux_flow_step_t* const ux_confirm_parameter_flow[]; -extern const ux_flow_step_t* const ux_approval_tx_flow[]; - -extern const ux_flow_step_t* const ux_approval_tx_data_warning_flow[]; - extern const ux_flow_step_t* const ux_approval_allowance_flow[]; extern const ux_flow_step_t* const ux_sign_flow[]; diff --git a/src_features/signTx/logic_signTx.c b/src_features/signTx/logic_signTx.c index 98de27c..91228ad 100644 --- a/src_features/signTx/logic_signTx.c +++ b/src_features/signTx/logic_signTx.c @@ -380,11 +380,7 @@ void finalizeParsing(bool direct) { io_seproxyhal_touch_tx_ok(NULL); } else { if (genericUI) { - ux_flow_init( - 0, - ((dataPresent && !N_storage.contractDetails) ? ux_approval_tx_data_warning_flow - : ux_approval_tx_flow), - NULL); + ux_approve_tx(dataPresent); } else { plugin_ui_start(); } diff --git a/src_features/signTx/ui_flow_signTx.c b/src_features/signTx/ui_flow_signTx.c index 7443fbc..27dab0a 100644 --- a/src_features/signTx/ui_flow_signTx.c +++ b/src_features/signTx/ui_flow_signTx.c @@ -148,21 +148,23 @@ UX_STEP_NOCB(ux_approval_tx_data_warning_step, }); // clang-format on -UX_FLOW(ux_approval_tx_flow, - &ux_approval_tx_1_step, - &ux_approval_tx_2_step, - &ux_approval_tx_3_step, - &ux_approval_tx_display_nonce_step, - &ux_approval_tx_4_step, - &ux_approval_tx_5_step, - &ux_approval_tx_6_step); +const ux_flow_step_t *ux_approval_tx_flow_scott[9]; -UX_FLOW(ux_approval_tx_data_warning_flow, - &ux_approval_tx_1_step, - &ux_approval_tx_data_warning_step, - &ux_approval_tx_2_step, - &ux_approval_tx_3_step, - &ux_approval_tx_display_nonce_step, - &ux_approval_tx_4_step, - &ux_approval_tx_5_step, - &ux_approval_tx_6_step); \ No newline at end of file +void ux_approve_tx(bool dataPresent) { + int step = 0; + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_1_step; + if (dataPresent && !N_storage.contractDetails) { + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_data_warning_step; + } + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_2_step; + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_3_step; + if (N_storage.displayNonce) { + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_display_nonce_step; + } + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_4_step; + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_5_step; + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_6_step; + ux_approval_tx_flow_scott[step++] = FLOW_END_STEP; + + ux_flow_init(0, ux_approval_tx_flow_scott, NULL); +} \ No newline at end of file