summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/2lib/2ui_screens.c7
-rw-r--r--firmware/2lib/include/2ui.h3
2 files changed, 7 insertions, 3 deletions
diff --git a/firmware/2lib/2ui_screens.c b/firmware/2lib/2ui_screens.c
index c4465a4a..90a10208 100644
--- a/firmware/2lib/2ui_screens.c
+++ b/firmware/2lib/2ui_screens.c
@@ -147,12 +147,13 @@ vb2_error_t recovery_to_dev_init(struct vb2_ui_context *ui)
ui->state.selected_item = RECOVERY_TO_DEV_ITEM_CANCEL;
}
+ ui->physical_presence_button_pressed = 0;
+
return VB2_REQUEST_UI_CONTINUE;
}
vb2_error_t vb2_ui_recovery_to_dev_action(struct vb2_ui_context *ui)
{
- static int pressed_last;
int pressed;
if (ui->state.screen->id != VB2_SCREEN_RECOVERY_TO_DEV) {
@@ -180,10 +181,10 @@ vb2_error_t vb2_ui_recovery_to_dev_action(struct vb2_ui_context *ui)
if (pressed) {
VB2_DEBUG("Physical presence button pressed, "
"awaiting release\n");
- pressed_last = 1;
+ ui->physical_presence_button_pressed = 1;
return VB2_REQUEST_UI_CONTINUE;
}
- if (!pressed_last)
+ if (!ui->physical_presence_button_pressed)
return VB2_REQUEST_UI_CONTINUE;
VB2_DEBUG("Physical presence button released\n");
}
diff --git a/firmware/2lib/include/2ui.h b/firmware/2lib/include/2ui.h
index 0d4df42f..73dd1c75 100644
--- a/firmware/2lib/include/2ui.h
+++ b/firmware/2lib/include/2ui.h
@@ -70,6 +70,9 @@ struct vb2_ui_context {
/* For manual recovery. */
vb2_error_t recovery_rv;
+
+ /* For to_dev transition flow. */
+ int physical_presence_button_pressed;
};
vb2_error_t vb2_ui_change_screen(struct vb2_ui_context *ui, enum vb2_screen id);