diff --git a/firmware/layout2.c b/firmware/layout2.c index 64a8fa203..0b7ecced5 100644 --- a/firmware/layout2.c +++ b/firmware/layout2.c @@ -83,6 +83,10 @@ void layoutHome(void) oledDrawBitmap(40, 0, &bmp_logo64); } } + if (storage_needsBackup()) { + oledBox(0, 0, 127, 8, false); + oledDrawStringCenter(0, "NEEDS BACKUP!"); + } oledRefresh(); // Reset lock screen timeout diff --git a/firmware/reset.c b/firmware/reset.c index d200fc0e3..ff2dd3918 100644 --- a/firmware/reset.c +++ b/firmware/reset.c @@ -110,7 +110,7 @@ static char current_word[10], current_word_display[11]; void reset_backup(void) { - if (!storage.has_needs_backup || !storage.needs_backup) { + if (!storage_needsBackup()) { fsm_sendFailure(FailureType_Failure_UnexpectedMessage, _("Seed already backed up")); return; } else { diff --git a/firmware/storage.c b/firmware/storage.c index 0976c44fe..ad3aea4d2 100644 --- a/firmware/storage.c +++ b/firmware/storage.c @@ -580,6 +580,12 @@ bool storage_isInitialized(void) return storage.has_node || storage.has_mnemonic; } +bool storage_needsBackup(void) +{ + return storage.has_needs_backup && storage.needs_backup; +} + + uint32_t storage_nextU2FCounter(void) { uint32_t *ptr = ((uint32_t *) FLASH_STORAGE_U2FAREA) + (storage_u2f_offset / 32); diff --git a/firmware/storage.h b/firmware/storage.h index 89e2cfc4f..d72b4d33d 100644 --- a/firmware/storage.h +++ b/firmware/storage.h @@ -68,6 +68,8 @@ void storage_setU2FCounter(uint32_t u2fcounter); bool storage_isInitialized(void); +bool storage_needsBackup(void); + extern Storage storage; extern char storage_uuid_str[25];