From 6dc442615132d65b8a7f1eaef590e7591999f8bd Mon Sep 17 00:00:00 2001 From: grdddj Date: Thu, 28 Apr 2022 12:19:04 +0200 Subject: [PATCH] feat(ui): setup homescreen and label for model R [no changelog] --- core/assets/homescreen_model_1.png | Bin 0 -> 9275 bytes core/assets/homescreen_model_r.png | Bin 0 -> 11003 bytes core/src/apps/homescreen/homescreen.py | 15 ++++++++++-- core/src/trezor/res/homescreen_model_1.toif | Bin 0 -> 409 bytes core/src/trezor/res/homescreen_model_r.toif | Bin 0 -> 603 bytes core/src/trezor/res/resources.py | 5 ++++ core/src/trezor/ui/__init__.py | 25 +++++++++++++++----- python/src/trezorlib/toif.py | 3 +++ 8 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 core/assets/homescreen_model_1.png create mode 100644 core/assets/homescreen_model_r.png create mode 100644 core/src/trezor/res/homescreen_model_1.toif create mode 100644 core/src/trezor/res/homescreen_model_r.toif diff --git a/core/assets/homescreen_model_1.png b/core/assets/homescreen_model_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d115ec7cfcad411e7b8c3cb3556576ea232b6a6b GIT binary patch literal 9275 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 literal 0 HcmV?d00001 diff --git a/core/assets/homescreen_model_r.png b/core/assets/homescreen_model_r.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2cc72bdd6d28b316dea5e37027217ad60ca1b6 GIT binary patch literal 11003 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 DOL)lL literal 0 HcmV?d00001 diff --git a/core/src/trezor/res/homescreen_model_r.toif b/core/src/trezor/res/homescreen_model_r.toif new file mode 100644 index 0000000000000000000000000000000000000000..1d2a2dd5cd05de5833840c62441fd5dc1e33bbe4 GIT binary patch literal 603 zcmV-h0;K&^Pf2H709*i10ssK*l0QsSK^(`g_*!vmz-ZjS>VOl_Fepnkv6Q&9sR=c4 z(1d|O2Zs(dEGFPU1&ra}PzL`bl88FMV2sM5k%zB!GlC5rHL>N*P~QEt(0jdmclX|7 zQ}RCB{qB=res|v=LKa#t550J&X@g$G_WD!+o3$j!v@YJHhnhs__|wJbn~+2?zsIBpi7u=Z_p z3@SRs{M2vk*ptEsT_DwMW^jf4Up3;Q93ZLx6c1=Hn;0O^UlIq58T%-)AG7u;V&9>w zCyD)#wU5>7_?{cP`HV#2(o@b`NVc@?;^38iS?2`Wg`7Sk=xXh)p;ABI&+bij}NUh z4B7@z(?N^em! bytes: return b'TOIg\x18\x00\x18\x00\x97\x00\x00\x00E\xcf\xb1\r\xc20\x10\x85a\xdb(\x82\x08!\xb9\xa5\xa3\xa2\x85\r`\x03\xd8\x00\xc4\x04\x8c\xc0\x06\x88\x92\x8al\xc0\nl\x106\xc8\x08i@ @\xfe\xb1\x9dK\xfc\x1a\x7f\xb6N\xe7;\xa5B\x8cJ9\'\xe6\xef\xe4Kr\x9fo\xe7\x15L\x84\xba\x82B<\x00\x9e\xe2\x99w[t\x0c\xbe5\xae\x82_\x91\xbd@\\t\x16\xcd\xb2\xf9\tW\xc3^Z>\x16p\x90\xf7"\x17\xfb\xfa\xb9\x91\x1a\x83\xb3\xaaf\x1d\x1b\x95X]\xfb{\xc8\x86m\x86l0\xe4>jg\xd0\xe5\xe7\xfa\xb32\xe8\x18N\xddb\xd3]<\xfe' if name == "trezor/res/header_icons/wrong.toif": return b"TOIg\x18\x00\x18\x00\xaa\x00\x00\x00c`\xc0\x05\xaa\x1c@$\xcbr !v~3\x88\xad\xf56\x91\x81\xa1\xf7\xff/\x05\x06\x06\xa6\xf5\xffo00\xec\xff\xff\x7f\x11P\xf8\xff\xff\xdf\x0c\x0c\xd1@R\x01(\xfc\x7f+\x03\x033Pb\x02'P\xc0\x80\x01,\xfdr\xde\xff\xff`\x13\x98\x80\x12Pa\x06\x06\xab\xf7\xff\xff\xff[\x0c\xb1\x8cq\xfe\xff\xff\xbf\x04\xa06\x03\xd9?\xa1LM\x90\x9aI\x10%\xebAzA\x96\x83\xcd\xfc\xb5\x0el9\xc8%\xff\x17JA$\xbc@f\x83,_\xc2\xc0\xb0\x1el\xa56\xd8m\xbd`+\x81\x96\xdf\x04\xfa\xe5>\xd8%\xd6\x7f\x0b\x81Fv\x07\x80\xd8\xac;\x04p\x86\x02\x00" + if name == "trezor/res/homescreen_model_1.toif": + return b'TOIg@\x00$\x00\x8d\x01\x00\x00\xdd\x92\xbfO\xc2@\x14\xc7\xdb\xf8\x0f@\xe1\x1fh\xe5\x0f\x90\x1f\t3\x90:8W4q\xb5\xc0n\xa4\xc8j\x84`t\x96\x808\x99\x10\x82qs\xa0i\x9c\xd5Zw\x93\xf6\x9c\x05\xdb\xfe\x03Z\xbc\xde\xb5G\xaf&NN~\xa7{\xfd\xbc\xf7\xed{w\x8fa\xb08\xb11\xd0\x80\x03e\xeb\x93\x8e\xc43\xb4R\x8d\xa9\xe1,\x039\xa6\xda\xc9R8\xd3^Q\x9c1.Gp\xba\xfd\xb2\x8c\xe9c\\"\x98\xdd\xc5\xd8\xb3\x9f\xa1\x80\x8b\x13N\x12\xa4\xfc\x12}\xb2\x9f\xfa\xcdZ\xad\xde\xbb\x01(\xf9\x91\x18\x14Q\xb97\xdbG]s\x9bC\x94\xfey\x1c\xdao\xbd\xf9\xf1\xe2 0d\x8b\xf7~\xfcu\x1d\xc6{(\x7fN\xfc\xd2W\xc8\xef\xce\xe7\x9c \x08\x98\xbf\x97\x85@\x99\x11\xe6\xf0\xc8\xd7\x14E9C|\xd1U\x02\xb5\x90\xbf\xf7\x00\x8fM\xcd\xb2,\x80\xa7\xb3\x88\xf0\x846<\xe9`\xf9\xab\xec\xbf\xe1\xe8bi\x81(\x7f\x95\xb7\xe3\x1aQ<\x9b\x8c)E\xf3\x8d\xd8\xbe0k\xe7\xff\x8a\x97\xe2\xdb\xfd\xee\x93_~w\xdf\x1fB\x16Z/\x0f\xbdx\xa7i_\xde\xde\xbf\xda\x85\x1ch\x8a\x8e\x95\xa0\x8e\xb1\x90n\xb3\x95\xfd\x99\xaf@a\xcc\xc6m\xe4\x139\x1dX\xd4\x9bR9\xf0\x1286nH\xe4#\xf3 `="\xb6o\xe9"\x1b\x7f\x16\xca\x1d%\x10b<\x12\xcd\xf1\x01$\xfc\xee\xe4\xed^\x90\xb2\xcc\xb7^\x91\xdbU\xae\xf99\xfaz\xab\x98\xdf\xa2\xcfO-\xb2o\x82\x9a3\x1d\xee\x0e\x85\x07^5*\xbf\x82\x96\xc8\xcd\xc4\xf1j}\x99Z\x87\xcd\x1f\xdd\xb5,@\x87\xd9\xe7{\xa38n\x16\x9f\xb0\xf6ms\x0c*:\xc5\xfc\xd4o\xec\xd8\x93\xc2\x07] \xd5mfp\x85\xfc_5\xe2\xa2\x1c \xa9\xff\x14\x0fh0\x9b\x18 \xcf_\x12\x07\x8c\x19\xfb(\xb1\x1f\xb3\xf6)b\xdf\xa1\xab\'\x89\xfd\x90\xb5\x8f\xd5\xeb\xf8\x9e\x1b\xbb\xf9\x90\xd8\xa1p\x8d\x18\xb1\xa7\xc2\x0c\xfd\xc4\x1e\xd9;v\x0fk5\xf2d!\x8a\x1a\x83\xa5\xbe\xfa\x1a\x0e\xc0\x8eg\xff\x17vY\x93R\xe0\xed\x8f-\xa7%\xb4_\xe1\xed%$\xa5\xd7\xb3=\xdb\xb3=\xfb_\xb1\x97\x0fd\x7f\xea\x92\xc9-\xd7y\x1b\xab\xc96\x91\xdb\xd4\x93\xd5y\x1b\xa0:s\x91\x97\x8f\x0f\xad4\x0c\xda\x06P\xd3A\x8b\xdc\x97\xa5\xefY\x1b\xcasq\xda\xf5g\n`c\x03^\x1bm\xb4O-\xea`k\x03T\xde$\xf6]%\xbbi\xbd\xe3m\xc0\xc5\xa9\x9a\xdc\xff^\xe7\xaev&\x81\xa7\xa2F\x94\xdc\xa6\xe0b;\xb6\xa8\x0b\xca\xe5\x82\xa0\x08\x1b#\xe8\xec\xdd\x12\xb8\xc2x\x9e\xac\x85\x15\x9dw#\xaf\x0fv\xee\xbf\xfeL\xca\xb1\xbd1s\xc9\xfcX_\xcf\x03\x87\xc6I&d\xdf\xb5\x82\xdc-O\xb7[\xd7G\xc9I\xc6\xc1kq\xd1n\x9e\xcf\x0b>\x13\x17\x9fI\xd6^\x10\xc9\xdf\xa0\x90\x94\x18\x1b7\xfe1\x1dD6\xf8\xc7\xa8\xd7V\x16\x12\xc8\x81\x81\x1ci\xaf\x8e"g\x94\xcc^\xfb\xdd\xd9\x04r\x83/\x9a\xd5A\x1d\x0c"\x97\x84RT\xd04\x7f\x00' if name == "trezor/res/left.toif": return b'TOIg\x10\x00\x10\x00=\x00\x00\x00c``\xe0X\xc0\x00\x06\xf9\xbf\x05@\x14\xdb\xff\xff`:\xff\xffC\x08\xf7\x0fD\xf6\xffcFAAA\xa0\xec\xbf\xff\xff\xff\xff\xad\xff\x0f\x06\xff`4L\x1c\xa6\x0e\xae\x0ff\x0e\xdc\\\x98=\x10{\x01' if name == "trezor/res/lock.toif": diff --git a/core/src/trezor/ui/__init__.py b/core/src/trezor/ui/__init__.py index b94b73490..4e3fe43f0 100644 --- a/core/src/trezor/ui/__init__.py +++ b/core/src/trezor/ui/__init__.py @@ -143,18 +143,31 @@ def header( display.text(44, 35, title, BOLD, fg, bg) +# Common for both header functions +MODEL_HEADER_HEIGHTS = {"1": 12, "R": 15, "T": 30} +MODEL_Y_BASELINES = {"1": 10, "R": 11, "T": 22} + + def header_warning(message: str, clear: bool = True) -> None: - display.bar(0, 0, WIDTH, 30, style.YELLOW) - display.text_center(WIDTH // 2, 22, message, BOLD, style.BLACK, style.YELLOW) + height = MODEL_HEADER_HEIGHTS[utils.MODEL] + y_baseline = MODEL_Y_BASELINES[utils.MODEL] + + display.bar(0, 0, WIDTH, height, style.YELLOW) + display.text_center( + WIDTH // 2, y_baseline, message, BOLD, style.BLACK, style.YELLOW + ) if clear: - display.bar(0, 30, WIDTH, HEIGHT - 30, style.BG) + display.bar(0, height, WIDTH, HEIGHT - height, style.BG) def header_error(message: str, clear: bool = True) -> None: - display.bar(0, 0, WIDTH, 30, style.RED) - display.text_center(WIDTH // 2, 22, message, BOLD, style.WHITE, style.RED) + height = MODEL_HEADER_HEIGHTS[utils.MODEL] + y_baseline = MODEL_Y_BASELINES[utils.MODEL] + + display.bar(0, 0, WIDTH, height, style.RED) + display.text_center(WIDTH // 2, y_baseline, message, BOLD, style.WHITE, style.RED) if clear: - display.bar(0, 30, WIDTH, HEIGHT - 30, style.BG) + display.bar(0, height, WIDTH, HEIGHT - height, style.BG) def draw_simple(t: "Component") -> None: diff --git a/python/src/trezorlib/toif.py b/python/src/trezorlib/toif.py index 2c397b7f5..d1e50fd31 100644 --- a/python/src/trezorlib/toif.py +++ b/python/src/trezorlib/toif.py @@ -153,6 +153,9 @@ def from_image( blend = Image.alpha_composite(img_background, image) image = blend.convert("RGB") + if image.mode == "1": + image = image.convert("L") + if image.mode == "L": toif_mode = firmware.ToifMode.grayscale if image.size[0] % 2 != 0: