diff --git a/ports/stm32/boards/Passport/modules/actions.py b/ports/stm32/boards/Passport/modules/actions.py index 7788b57..ac078a5 100644 --- a/ports/stm32/boards/Passport/modules/actions.py +++ b/ports/stm32/boards/Passport/modules/actions.py @@ -22,7 +22,7 @@ import common from common import settings, system, noise, dis from utils import (UXStateMachine, imported, pretty_short_delay, xfp2str, to_str, truncate_string_to_width, set_next_addr, scan_for_address, get_accounts, run_chooser, - make_account_name_num, is_valid_address, save_next_addr, needs_microsd, format_btc_address) + make_account_name_num, is_valid_address, save_next_addr, needs_microsd, format_btc_address, get_backups_folder_path) from wallets.utils import get_export_mode, get_addr_type_from_address, get_deriv_path_from_addr_type_and_acct from ux import (the_ux, ux_confirm, ux_enter_pin, ux_enter_text, ux_scan_qr_code, ux_shutdown, @@ -927,7 +927,7 @@ async def verify_microsd_backup(*A): with imported('export') as exp: fn = await file_picker('Select the backup to verify.', - suffix='.7z', max_size=exp.MAX_BACKUP_FILE_SIZE, folder_path='/sd/backups') + suffix='.7z', max_size=exp.MAX_BACKUP_FILE_SIZE, folder_path=get_backups_folder_path()) if fn: # do a limited CRC-check over encrypted file @@ -965,7 +965,7 @@ async def restore_microsd_backup(*A): # Choose a backup file -- must be in 7z format fn = await file_picker('Select the backup to restore and then enter the six-word password.', - suffix='.7z', max_size=10000, folder_path='/sd/backups') + suffix='.7z', max_size=10000, folder_path=get_backups_folder_path()) if fn: with imported('export') as exp: diff --git a/ports/stm32/boards/Passport/modules/export.py b/ports/stm32/boards/Passport/modules/export.py index c135d8d..6b9ab62 100644 --- a/ports/stm32/boards/Passport/modules/export.py +++ b/ports/stm32/boards/Passport/modules/export.py @@ -23,7 +23,8 @@ import version from ubinascii import hexlify as b2a_hex from ubinascii import unhexlify as a2b_hex from uio import StringIO -from utils import imported, xfp2str, get_bytewords_for_buf, to_str, run_chooser, ensure_folder_exists, file_exists, is_dir, get_accounts +from utils import (imported, xfp2str, get_bytewords_for_buf, to_str, run_chooser, ensure_folder_exists, file_exists, + is_dir, get_accounts, get_backups_folder_path) from ux import ux_confirm, ux_show_story from common import noise @@ -472,12 +473,6 @@ async def view_backup_password(*a): ch = await ux_show_story(msg, title='Password', sensitive=True, right_btn='OK') stash.blank_object(msg) -def get_backups_folder_path(card): - # from common import settings - # xfp = xfp2str(settings.get('xfp', 0)) - # return '{}/backups-{}'.format(card.get_sd_root(), xfp) - return '{}/backups'.format(card.get_sd_root()) - async def write_complete_backup(words, auto_backup=False, is_first_backup=False): # Just do the writing from common import dis, pa, settings, system @@ -516,6 +511,8 @@ async def write_complete_backup(words, auto_backup=False, is_first_backup=False) filesize = len(body)+10 while True: + base_filename = '' + try: with CardSlot() as card: backups_path = get_backups_folder_path(card) @@ -523,7 +520,8 @@ async def write_complete_backup(words, auto_backup=False, is_first_backup=False) # Make a unique filename while True: - fname = '{}/passport-backup-{}.7z'.format(backups_path, backup_num) + base_filename = 'passport-backup-{}.7z'.format(backup_num) + fname = '{}/{}'.format(backups_path, base_filename) # Ensure filename doesn't already exist if not file_exists(fname): @@ -564,9 +562,9 @@ async def write_complete_backup(words, auto_backup=False, is_first_backup=False) backup_num += 1 settings.set('backup_num', backup_num) - if not auto_backup: - dis.fullscreen('Backup Successful!') - await sleep_ms(2000) + if not auto_backup: # /backups/passport-backup-3.7z + await ux_show_story('Saved backup to\n\n{}\n\nin /backups folder.'.format(base_filename), + title='Success', left_btn='NEXT', center=True, center_vertically=True) if await ux_confirm('Do you want to make an additional backup?\n\nIf so, insert another microSD card.', title='Backup'): diff --git a/ports/stm32/boards/Passport/modules/utils.py b/ports/stm32/boards/Passport/modules/utils.py index 04cd446..59549e5 100644 --- a/ports/stm32/boards/Passport/modules/utils.py +++ b/ports/stm32/boards/Passport/modules/utils.py @@ -821,4 +821,10 @@ def format_btc_address(address, addr_type): return '\n'.join([address[i:i+width] for i in range(0, len(address), width)]) +def get_backups_folder_path(card): + # from common import settings + # xfp = xfp2str(settings.get('xfp', 0)) + # return '{}/backups-{}'.format(card.get_sd_root(), xfp) + return '{}/backups'.format(card.get_sd_root()) + # EOF