2018-02-05 14:13:33 +00:00
|
|
|
from trezor import ui
|
|
|
|
|
|
|
|
|
|
|
|
def pin_to_int(pin: str) -> int:
|
2018-07-03 14:20:58 +00:00
|
|
|
return int("1" + pin)
|
2017-12-15 20:06:29 +00:00
|
|
|
|
2017-12-15 20:11:46 +00:00
|
|
|
|
2019-04-11 10:32:37 +00:00
|
|
|
_previous_progress = None
|
|
|
|
|
|
|
|
|
2019-02-22 20:53:37 +00:00
|
|
|
def show_pin_timeout(seconds: int, progress: int, message: str) -> bool:
|
2019-04-11 10:32:37 +00:00
|
|
|
global _previous_progress
|
|
|
|
|
2018-02-24 20:02:14 +00:00
|
|
|
if progress == 0:
|
2019-04-11 10:32:37 +00:00
|
|
|
if progress != _previous_progress:
|
|
|
|
# avoid overdraw in case of repeated progress calls
|
|
|
|
ui.display.clear()
|
2018-07-03 14:20:58 +00:00
|
|
|
ui.display.text_center(
|
2019-02-22 20:53:37 +00:00
|
|
|
ui.WIDTH // 2, 37, message, ui.BOLD, ui.FG, ui.BG, ui.WIDTH
|
2018-07-03 14:20:58 +00:00
|
|
|
)
|
2019-04-23 17:15:42 +00:00
|
|
|
ui.display.loader(progress, False, 0, ui.FG, ui.BG)
|
2018-02-24 20:02:14 +00:00
|
|
|
if seconds == 0:
|
2018-07-03 14:20:58 +00:00
|
|
|
ui.display.text_center(
|
|
|
|
ui.WIDTH // 2, ui.HEIGHT - 22, "Done", ui.BOLD, ui.FG, ui.BG, ui.WIDTH
|
|
|
|
)
|
2018-02-25 13:43:41 +00:00
|
|
|
elif seconds == 1:
|
2018-07-03 14:20:58 +00:00
|
|
|
ui.display.text_center(
|
|
|
|
ui.WIDTH // 2,
|
|
|
|
ui.HEIGHT - 22,
|
|
|
|
"1 second left",
|
|
|
|
ui.BOLD,
|
|
|
|
ui.FG,
|
|
|
|
ui.BG,
|
|
|
|
ui.WIDTH,
|
|
|
|
)
|
2018-02-24 20:02:14 +00:00
|
|
|
else:
|
2018-07-03 14:20:58 +00:00
|
|
|
ui.display.text_center(
|
|
|
|
ui.WIDTH // 2,
|
|
|
|
ui.HEIGHT - 22,
|
|
|
|
"%d seconds left" % seconds,
|
|
|
|
ui.BOLD,
|
|
|
|
ui.FG,
|
|
|
|
ui.BG,
|
|
|
|
ui.WIDTH,
|
|
|
|
)
|
2017-12-15 20:06:29 +00:00
|
|
|
ui.display.refresh()
|
2019-04-11 10:32:37 +00:00
|
|
|
|
|
|
|
_previous_progress = progress
|
2019-02-07 11:01:08 +00:00
|
|
|
return False
|