mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-22 22:38:08 +00:00
trezor.ui: reset device redesign
This commit is contained in:
parent
2725792528
commit
38c37da0c3
@ -24,8 +24,7 @@ async def layout_apply_settings(session_id, msg):
|
|||||||
await require_confirm(session_id, Text(
|
await require_confirm(session_id, Text(
|
||||||
'Change label', ui.ICON_RESET,
|
'Change label', ui.ICON_RESET,
|
||||||
'Do you really want to', 'change label to',
|
'Do you really want to', 'change label to',
|
||||||
ui.BOLD, '%s' % msg.label,
|
ui.BOLD, '%s' % msg.label))
|
||||||
ui.NORMAL, '?'))
|
|
||||||
|
|
||||||
if msg.language is not None:
|
if msg.language is not None:
|
||||||
await require_confirm(session_id, Text(
|
await require_confirm(session_id, Text(
|
||||||
|
@ -16,7 +16,7 @@ async def layout_recovery_device(session_id, message):
|
|||||||
msg = 'Please enter ' + nth(message.word_count) + ' word'
|
msg = 'Please enter ' + nth(message.word_count) + ' word'
|
||||||
|
|
||||||
ui.display.clear()
|
ui.display.clear()
|
||||||
ui.header('Recovering device', ui.ICON_RECOVERY, ui.BLACK, ui.LIGHT_GREEN)
|
ui.header('Recovery device', ui.ICON_RECOVERY, ui.BLACK, ui.LIGHT_GREEN)
|
||||||
ui.display.text(10, 74, msg, ui.BOLD, ui.WHITE, ui.BLACK)
|
ui.display.text(10, 74, msg, ui.BOLD, ui.WHITE, ui.BLACK)
|
||||||
ui.display.text(10, 104, 'of your mnemonic.', ui.BOLD, ui.WHITE, ui.BLACK)
|
ui.display.text(10, 104, 'of your mnemonic.', ui.BOLD, ui.WHITE, ui.BLACK)
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ async def layout_reset_device(session_id, msg):
|
|||||||
|
|
||||||
|
|
||||||
async def show_mnemonic_by_word(session_id, mnemonic):
|
async def show_mnemonic_by_word(session_id, mnemonic):
|
||||||
from trezor.ui.text import Text, RecoveryWordText
|
from trezor.ui.text import Text
|
||||||
from trezor.messages.ButtonRequestType import ConfirmWord
|
from trezor.messages.ButtonRequestType import ConfirmWord
|
||||||
from apps.common.confirm import confirm
|
from apps.common.confirm import confirm
|
||||||
|
|
||||||
@ -74,23 +74,23 @@ async def show_mnemonic_by_word(session_id, mnemonic):
|
|||||||
if __debug__:
|
if __debug__:
|
||||||
global current_word
|
global current_word
|
||||||
|
|
||||||
for index, word in enumerate(words):
|
index = 0
|
||||||
current_word = word
|
recovery = True
|
||||||
content = Container(
|
|
||||||
Text('Recovery seed setup', ui.ICON_RESET, 'Write down seed word'),
|
|
||||||
RecoveryWordText(index + 1, word))
|
|
||||||
await confirm(session_id,
|
|
||||||
content,
|
|
||||||
ConfirmWord)
|
|
||||||
|
|
||||||
for index, word in enumerate(words):
|
while index < len(words):
|
||||||
|
word = words[index]
|
||||||
current_word = word
|
current_word = word
|
||||||
content = Container(
|
|
||||||
Text('Recovery seed setup', ui.ICON_RESET, 'Confirm seed word'),
|
|
||||||
RecoveryWordText(index + 1, word))
|
|
||||||
await confirm(session_id,
|
await confirm(session_id,
|
||||||
content,
|
Text(
|
||||||
ConfirmWord)
|
'Recovery seed setup', ui.ICON_RESET,
|
||||||
|
ui.NORMAL, 'Write down seed word' if recovery else 'Confirm seed word', ' ',
|
||||||
|
ui.BOLD, '%d. %s' % (index + 1, word)),
|
||||||
|
ConfirmWord,
|
||||||
|
'Next', None)
|
||||||
|
index += 1
|
||||||
|
if index == len(words) and recovery:
|
||||||
|
recovery = False
|
||||||
|
index = 0
|
||||||
|
|
||||||
|
|
||||||
async def show_mnemonic(mnemonic):
|
async def show_mnemonic(mnemonic):
|
||||||
|
@ -6,42 +6,48 @@ from .button import CONFIRM_BUTTON, CONFIRM_BUTTON_ACTIVE
|
|||||||
from .button import CANCEL_BUTTON, CANCEL_BUTTON_ACTIVE
|
from .button import CANCEL_BUTTON, CANCEL_BUTTON_ACTIVE
|
||||||
from .loader import Loader
|
from .loader import Loader
|
||||||
|
|
||||||
|
|
||||||
CONFIRMED = const(1)
|
CONFIRMED = const(1)
|
||||||
CANCELLED = const(2)
|
CANCELLED = const(2)
|
||||||
|
|
||||||
|
|
||||||
class ConfirmDialog(Widget):
|
class ConfirmDialog(Widget):
|
||||||
|
|
||||||
def __init__(self, content=None, confirm='Confirm', cancel='Cancel'):
|
def __init__(self, content=None, confirm='Confirm', cancel='Cancel'):
|
||||||
self.content = content
|
self.content = content
|
||||||
self.confirm = Button((121, 240 - 48, 119, 48), confirm,
|
if cancel is not None:
|
||||||
normal_style=CONFIRM_BUTTON,
|
self.confirm = Button((121, 240 - 48, 119, 48), confirm,
|
||||||
active_style=CONFIRM_BUTTON_ACTIVE)
|
normal_style=CONFIRM_BUTTON,
|
||||||
self.cancel = Button((0, 240 - 48, 119, 48), cancel,
|
active_style=CONFIRM_BUTTON_ACTIVE)
|
||||||
normal_style=CANCEL_BUTTON,
|
self.cancel = Button((0, 240 - 48, 119, 48), cancel,
|
||||||
active_style=CANCEL_BUTTON_ACTIVE)
|
normal_style=CANCEL_BUTTON,
|
||||||
|
active_style=CANCEL_BUTTON_ACTIVE)
|
||||||
|
else:
|
||||||
|
self.cancel = None
|
||||||
|
self.confirm = Button((0, 240 - 48, 240, 48), confirm,
|
||||||
|
normal_style=CONFIRM_BUTTON,
|
||||||
|
active_style=CONFIRM_BUTTON_ACTIVE)
|
||||||
|
|
||||||
def render(self):
|
def render(self):
|
||||||
self.confirm.render()
|
self.confirm.render()
|
||||||
self.cancel.render()
|
if self.cancel is not None:
|
||||||
|
self.cancel.render()
|
||||||
|
|
||||||
def touch(self, event, pos):
|
def touch(self, event, pos):
|
||||||
if self.confirm.touch(event, pos) == BTN_CLICKED:
|
if self.confirm.touch(event, pos) == BTN_CLICKED:
|
||||||
return CONFIRMED
|
return CONFIRMED
|
||||||
if self.cancel.touch(event, pos) == BTN_CLICKED:
|
|
||||||
return CANCELLED
|
if self.cancel is not None:
|
||||||
|
if self.cancel.touch(event, pos) == BTN_CLICKED:
|
||||||
|
return CANCELLED
|
||||||
|
|
||||||
async def __iter__(self):
|
async def __iter__(self):
|
||||||
return await loop.Wait((super().__iter__(), self.content))
|
return await loop.Wait((super().__iter__(), self.content))
|
||||||
|
|
||||||
|
|
||||||
class HoldToConfirmDialog(Widget):
|
class HoldToConfirmDialog(Widget):
|
||||||
|
|
||||||
def __init__(self, content=None, hold='Hold to confirm', *args, **kwargs):
|
def __init__(self, content=None, hold='Hold to confirm', *args, **kwargs):
|
||||||
self.button = Button((0, 240 - 48, 240, 48), hold,
|
self.button = Button((0, 240 - 48, 240, 48), hold,
|
||||||
normal_style=CONFIRM_BUTTON,
|
normal_style=CONFIRM_BUTTON,
|
||||||
active_style=CONFIRM_BUTTON_ACTIVE)
|
active_style=CONFIRM_BUTTON_ACTIVE)
|
||||||
self.content = content
|
self.content = content
|
||||||
self.loader = Loader(*args, **kwargs)
|
self.loader = Loader(*args, **kwargs)
|
||||||
|
|
||||||
|
@ -32,25 +32,3 @@ class Text(ui.Widget):
|
|||||||
|
|
||||||
def send(self, event, pos):
|
def send(self, event, pos):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class RecoveryWordText(ui.Widget):
|
|
||||||
|
|
||||||
def __init__(self, number, word):
|
|
||||||
self.number = ('%d.' % number)
|
|
||||||
self.word = word
|
|
||||||
|
|
||||||
def render(self):
|
|
||||||
offset_y = 96
|
|
||||||
style = ui.BOLD
|
|
||||||
fg = ui.WHITE
|
|
||||||
bg = ui.BLACKISH
|
|
||||||
ui.display.bar(0, offset_y - TEXT_LINE_HEIGHT, 240, TEXT_LINE_HEIGHT + 10, bg)
|
|
||||||
ui.display.text(TEXT_MARGIN_LEFT, offset_y, self.number, style, fg, bg)
|
|
||||||
if len(self.number) < 3:
|
|
||||||
ui.display.text(TEXT_MARGIN_LEFT + 20, offset_y, self.word, style, fg, bg)
|
|
||||||
else:
|
|
||||||
ui.display.text(TEXT_MARGIN_LEFT + 30, offset_y, self.word, style, fg, bg)
|
|
||||||
|
|
||||||
def send(self, event, pos):
|
|
||||||
pass
|
|
||||||
|
Loading…
Reference in New Issue
Block a user