diff --git a/legacy/firmware/fsm.c b/legacy/firmware/fsm.c index b060d3419..bd136de55 100644 --- a/legacy/firmware/fsm.c +++ b/legacy/firmware/fsm.c @@ -306,7 +306,20 @@ static bool fsm_layoutAddress(const char *address, const char *desc, } void fsm_msgRebootToBootloader(void) { - fsm_sendSuccess(_("You are being rebooted")); + layoutDialogSwipe(&bmp_icon_question, _("Cancel"), _("Confirm"), NULL, + _("Do you want to"), _("restart device in"), + _("bootloader mode?"), NULL, NULL, NULL); + if (!protectButton(ButtonRequestType_ButtonRequest_ProtectCall, false)) { + fsm_sendFailure(FailureType_Failure_ActionCancelled, NULL); + layoutHome(); + return; + } + oledClear(); + oledRefresh(); + fsm_sendSuccess(_("Rebooting")); + // make sure the outgoing message is sent + usbPoll(); + usbSleep(500); #if !EMULATOR svc_reboot_to_bootloader(); #else