diff --git a/legacy/firmware/recovery.c b/legacy/firmware/recovery.c index a6c10a0a9..4e123271e 100644 --- a/legacy/firmware/recovery.c +++ b/legacy/firmware/recovery.c @@ -448,16 +448,29 @@ void next_word(void) { if (word_pos == 0) { const char *const *wl = mnemonic_wordlist(); strlcpy(fake_word, wl[random_uniform(2048)], sizeof(fake_word)); - layoutDialogSwipe(&bmp_icon_info, NULL, NULL, NULL, - _("Please enter the word"), NULL, fake_word, NULL, - _("on your computer"), NULL); + + layoutLast = layoutDialogSwipe; + layoutSwipe(); + oledDrawStringCenter(OLED_WIDTH / 2, 8, _("Please enter the word"), FONT_STANDARD); + oledDrawStringCenter(OLED_WIDTH / 2, 24, fake_word, FONT_FIXED | FONT_DOUBLE); + oledDrawStringCenter(OLED_WIDTH / 2, 48, _("on your computer"), FONT_STANDARD); + // 30 is the maximum pixels used for a pixel row in the BIP39 word "abstract" + oledSCA(24 - 2, 24 + 15 + 2, 30); + oledInvert(0, 24 - 2, OLED_WIDTH - 1, 24 + 15 + 2); + oledRefresh(); } else { fake_word[0] = 0; char desc[] = "##th word"; format_number(desc, word_pos); - layoutDialogSwipe(&bmp_icon_info, NULL, NULL, NULL, _("Please enter the"), - NULL, (word_pos < 10 ? desc + 1 : desc), NULL, - _("of your mnemonic"), NULL); + layoutLast = layoutDialogSwipe; + layoutSwipe(); + oledDrawStringCenter(OLED_WIDTH / 2, 8, _("Please enter the"), FONT_STANDARD); + oledDrawStringCenter(OLED_WIDTH / 2, 24, (word_pos < 10 ? desc + 1 : desc), FONT_FIXED | FONT_DOUBLE); + oledDrawStringCenter(OLED_WIDTH / 2, 48, _("of your mnemonic"), FONT_STANDARD); + // 30 is the maximum pixels used for a pixel row in the BIP39 word "abstract" + oledSCA(24 - 2, 24 + 15 + 2, 30); + oledInvert(0, 24 - 2, OLED_WIDTH - 1, 24 + 15 + 2); + oledRefresh(); } recovery_request(); }