Files
app-ethereum/src_bagl/ui_flow_signMessage.c

133 lines
2.8 KiB
C
Raw Normal View History

2020-06-27 13:24:04 +02:00
#include "shared_context.h"
#include "ui_callbacks.h"
2022-10-06 14:55:13 +02:00
#include "common_ui.h"
2022-09-02 14:22:11 +02:00
#include "sign_message.h"
2022-10-06 14:55:13 +02:00
typedef enum { UI_191_POS_REVIEW, UI_191_POS_QUESTION, UI_191_POS_END } e_ui_191_position;
static uint8_t ui_pos;
static void dummy_pre_cb(void) {
if (ui_pos == UI_191_POS_REVIEW) {
question_switcher();
} else {
ux_flow_prev();
ui_pos = UI_191_POS_REVIEW;
}
}
static void dummy_post_cb(void) {
if (ui_pos == UI_191_POS_QUESTION) {
// temporarily disable button clicks, they will be re-enabled as soon as new data
// is received and the page is redrawn with ux_flow_init()
G_ux.stack[0].button_push_callback = NULL;
continue_displaying_message();
} else // UI_191_END
{
ui_191_switch_to_message_end();
}
}
2020-12-01 16:20:13 +01:00
// clang-format off
UX_STEP_NOCB(
2022-09-02 14:22:11 +02:00
ux_191_step_review,
2020-06-27 13:24:04 +02:00
pnn,
{
&C_icon_certificate,
"Review",
2020-06-27 13:24:04 +02:00
"message",
});
UX_STEP_NOCB(
2022-09-02 14:22:11 +02:00
ux_191_step_message,
2020-06-27 13:24:04 +02:00
bnnn_paging,
{
2022-05-23 16:39:24 +02:00
.title = "Message",
2020-06-27 13:24:04 +02:00
.text = strings.tmp.tmp,
});
2022-09-02 14:22:11 +02:00
UX_STEP_INIT(
ux_191_step_dummy_pre,
NULL,
NULL,
{
dummy_pre_cb();
});
UX_STEP_CB(
2022-09-02 14:22:11 +02:00
ux_191_step_theres_more,
#ifdef TARGET_NANOS
nn,
#else
nnn,
#endif
G_ux.stack[0].button_push_callback = NULL; // disable button clicks
skip_rest_of_message(),
2022-09-02 14:22:11 +02:00
{
#ifndef TARGET_NANOS
"Press right to",
"continue message",
#else
"Press right to read",
#endif
"Double-press to skip"
2022-09-02 14:22:11 +02:00
});
UX_STEP_INIT(
ux_191_step_dummy_post,
NULL,
NULL,
{
dummy_post_cb();
});
UX_STEP_CB(
ux_191_step_sign,
2020-06-27 13:24:04 +02:00
pbb,
io_seproxyhal_touch_signMessage_ok(),
2020-06-27 13:24:04 +02:00
{
&C_icon_validate_14,
"Sign",
"message",
});
UX_STEP_CB(
2022-09-02 14:22:11 +02:00
ux_191_step_cancel,
2020-06-27 13:24:04 +02:00
pbb,
io_seproxyhal_touch_signMessage_cancel(),
2020-06-27 13:24:04 +02:00
{
&C_icon_crossmark,
"Cancel",
"signature",
});
2020-12-01 16:20:13 +01:00
// clang-format on
2020-06-27 13:24:04 +02:00
UX_FLOW(ux_191_flow,
2022-09-02 14:22:11 +02:00
&ux_191_step_review,
&ux_191_step_message,
&ux_191_step_dummy_pre,
&ux_191_step_theres_more,
&ux_191_step_dummy_post,
&ux_191_step_sign,
&ux_191_step_cancel);
void ui_191_start(void) {
ux_flow_init(0, ux_191_flow, NULL);
ui_pos = UI_191_POS_REVIEW;
}
void ui_191_switch_to_message(void) {
ux_flow_init(0, ux_191_flow, &ux_191_step_message);
ui_pos = UI_191_POS_REVIEW;
2022-09-02 14:22:11 +02:00
}
void ui_191_switch_to_message_end(void) {
// Force it to a value that will make it automatically do a prev()
ui_pos = UI_191_POS_QUESTION;
ux_flow_init(0, ux_191_flow, &ux_191_step_dummy_pre);
2022-09-02 14:22:11 +02:00
}
void ui_191_switch_to_sign(void) {
ux_flow_init(0, ux_191_flow, &ux_191_step_sign);
ui_pos = UI_191_POS_END;
2022-09-02 14:22:11 +02:00
}
void ui_191_switch_to_question(void) {
ux_flow_init(0, ux_191_flow, &ux_191_step_theres_more);
ui_pos = UI_191_POS_QUESTION;
2022-09-02 14:22:11 +02:00
}