fix(core/ui): do not draw header to screen before display.clear()

Previous commit causes Layout.read_content() to be called before actual
rendering. Due to how TextBase.read_content() is implemented this caused
the header to be painted before clearing screen, causing UI test
confusion.

[no changelog]
mmilata/global-layout-notify-after-br
Martin Milata 2 years ago
parent 45fa4bf8b2
commit 0d0dd22b94

@ -1,7 +1,7 @@
from micropython import const
from typing import TYPE_CHECKING
from trezor import ui
from trezor import res, ui
from ...constants import (
PAGINATION_MARGIN_RIGHT,
@ -362,6 +362,9 @@ if __debug__:
length = len(string) - start
self.screen_contents.append(string[start : start + length])
def icon(self, x: int, y: int, icon: bytes, fgcolor: int, bgcolor: int) -> None:
pass
class TextBase(ui.Component):
def __init__(
@ -445,7 +448,7 @@ class TextBase(ui.Component):
self.on_render()
finally:
self.repaint = should_repaint
return [self.header_text or ""] + display_mock.screen_contents
return display_mock.screen_contents
LABEL_LEFT = const(0)
@ -534,3 +537,15 @@ def text_center_trim_right(
ui.display.text(x, y, text[:text_length], font, ui.FG, ui.BG)
x += text_width
ui.display.text(x, y, "...", ui.BOLD, ui.GREY, ui.BG)
def header(
title: str,
icon: str = ui.style.ICON_DEFAULT,
fg: int = ui.style.FG,
bg: int = ui.style.BG,
ifg: int = ui.style.GREEN,
) -> None:
if icon is not None:
ui.display.icon(14, 15, res.load(icon), ifg, bg)
ui.display.text(44, 35, title, ui.BOLD, fg, bg)

@ -14,22 +14,11 @@ from ..common.text import ( # noqa: F401
TEXT_MAX_LINES_NO_HEADER,
Span,
TextBase,
header,
render_text,
)
def header(
title: str,
icon: str = style.ICON_DEFAULT,
fg: int = style.FG,
bg: int = style.BG,
ifg: int = style.GREEN,
) -> None:
if icon is not None:
display.icon(14, 15, res.load(icon), ifg, bg)
display.text(44, 35, title, ui.BOLD, fg, bg)
class Text(TextBase):
def on_render(self) -> None:
if self.repaint:

@ -984,17 +984,17 @@
"TT_bitcoin-test_signtx_taproot.py::test_send_p2tr": "91597e1226f917aa01e0faffa2ba573f3f77521ce6a53fd4f8c4b2a15d8f4b36",
"TT_bitcoin-test_signtx_taproot.py::test_send_two_with_change": "22f2ab9387ba5dfc06f23727fa3332974b70620d813eb61ae37bb482233860c0",
"TT_bitcoin-test_verifymessage.py::test_message_grs": "efba87e334f62f3ee18ce6ac2f6e8ba3738fc53434ad8d4027643d2047945620",
"TT_bitcoin-test_verifymessage.py::test_message_long": "ddd376c7ce7731d990f231a81532dfa13d6a03bc88e5a77278d6eef514b496a2",
"TT_bitcoin-test_verifymessage.py::test_message_long": "8651c9b6d78d9e9bf6ac79080e97671604bbe5394951fce5da3e730815cbb8f9",
"TT_bitcoin-test_verifymessage.py::test_message_testnet": "af4598881e7afbfb81313622d7186cd90e8bdcfdada4a0c0f31ca5f0af5f8d5d",
"TT_bitcoin-test_verifymessage.py::test_message_verify": "74917807cbdc8edc9e2c3e33bc5d8e1e8a712f35898b4a33fe110c73af9ddd92",
"TT_bitcoin-test_verifymessage.py::test_message_verify_bcash": "cf7ffea3154e28c3bd9456c569e70eab9f328c20ff14dfc23e779ac632604651",
"TT_bitcoin-test_verifymessage.py::test_verify_bitcoind": "dc368994deed16caf972c53ef79ede3193d9159397908bcfedc4703bee090e22",
"TT_bitcoin-test_verifymessage.py::test_verify_utf": "452a27dc0cbfd703e9bf980f64aaf1a4d7b2e8bac51a797571a8ba70fc3698d2",
"TT_bitcoin-test_verifymessage_segwit.py::test_message_long": "4fc23422dac54f4793c4da74e519a5509459ba7f45d5cb1e3c09be478f24d60f",
"TT_bitcoin-test_verifymessage_segwit.py::test_message_long": "1e72d1c4142f83068d1418f418a048ea333984f21e3cc25c5db6524e33f468d6",
"TT_bitcoin-test_verifymessage_segwit.py::test_message_testnet": "530fdcd115fe58b19f8b8af1f0af403c327c0f76b921e2a54d811f4a66b64d75",
"TT_bitcoin-test_verifymessage_segwit.py::test_message_verify": "43583ce3fcf46783907e34ac24faee1335ef2a8522053752c62f38cf38ca7a32",
"TT_bitcoin-test_verifymessage_segwit.py::test_verify_utf": "6f07f017ab3947b04ce3556f6f38ee5e9841cd73a04edc9c25f74084ef189706",
"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_long": "0f2a09bf56c97dae28ad4457cb63a7e7cebced6fa3fb614c409fbacc818d89cd",
"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_long": "35e8c95f871c0868988f2383e232cc3e617e1b2079ad4a91c3ae455175561f7c",
"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_testnet": "f36a0eaed6ff6d64c37fc147a05ec24637aea9a81360d5ba14d6c87db35a6e3a",
"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_verify": "912a94f466108c9d6b67a1cc9aa8b6a2a7d29ab9003c39e9f70aa10b0ff7b5e8",
"TT_bitcoin-test_verifymessage_segwit_native.py::test_verify_utf": "faf3fddc43290a424243562f3ed7598d5127b71b1680aee40e56f0b01d22664a",
@ -1330,7 +1330,7 @@
"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters6-result6]": "f6a32113e2edbd33648a8fda20e2cf8c7cfff53d3cf765ff2b945990733a696e",
"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters7-result7]": "5127f94dd3eec514faec78eedfb22151eef1fd787ea26b4da718a85adb4f8523",
"TT_ethereum-test_sign_verify_message.py::test_verify[parameters0-result0]": "f56f261951ed30706d692510ea3a8860397bda9abe199f15eaa536d06e8977b1",
"TT_ethereum-test_sign_verify_message.py::test_verify[parameters1-result1]": "1686bb7cd461671063e19d27b48874d186aa687703600a3b19841843c64ac20b",
"TT_ethereum-test_sign_verify_message.py::test_verify[parameters1-result1]": "dda2e7b0f0e9e50668062a8ae1f7cb17482e5589c9c83cdc3c1957b20cbaeb20",
"TT_ethereum-test_sign_verify_message.py::test_verify[parameters2-result2]": "6cb31eafe466b821cb8b825f00968bf50c322494940aecb94036df9bfcf897ea",
"TT_ethereum-test_sign_verify_message.py::test_verify[parameters3-result3]": "da02cbffb0124e4eaf2dd20d44a6766b25479f49339c7cac55ffa430bd2be8e5",
"TT_ethereum-test_sign_verify_message.py::test_verify[parameters4-result4]": "be1dd2a0901ff4ac6a1578d5609b77a559a0bd95ec5494f27db0571e58e47970",

Loading…
Cancel
Save