1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-07-30 10:28:14 +00:00
Commit Graph

1276 Commits

Author SHA1 Message Date
Roman Zeyde
c6d8fd6c77 feat(core): support scrollable menus in Delizia
[no changelog]
2025-07-10 11:35:26 +03:00
Roman Zeyde
8e1d90f27e feat(core): add Delizia menu up/down icons
[no changelog]
2025-07-10 11:35:26 +03:00
Lukas Bielesch
34921907b0 fix(core/eckhart): fix slip39 overflow bug
[no changelog]
2025-07-09 09:51:25 +02:00
Ioan Bizău
00d8683e77 feat(delizia): allow external menu on confirm_value
[no changelog]
2025-07-08 09:59:26 +02:00
Ioan Bizău
566f6fe7cb refactor(delizia): use external menu on confirm_action
[no changelog]
2025-07-07 15:54:07 +02:00
Roman Zeyde
2c50db3cde fix(core): allow menu details to be generic awaitables
Also, remove `ButtonRequest`-related code from `show_menu()`
and fix `show_properties()` return value type annotation.

[no changelog]
2025-07-07 14:55:13 +03:00
Roman Zeyde
75596715de refactor(core): use new-style menu for set_brightness Delizia flow
[no changelog]
2025-07-07 14:55:13 +03:00
Roman Zeyde
4ebe1de056 fix(core): don't ignore ActionCancelled exception from menu
In Delizia, it should be possible to cancel the flow using the menu.

[no changelog]
2025-07-07 14:55:13 +03:00
Roman Zeyde
5f2da19424 chore(core): remove Cargo.lock generated by rust-analyzer
[no changelog]
2025-07-07 12:03:26 +03:00
Roman Zeyde
c563595f8d feat(core): implement UIDelizia::select_menu()
[no changelog]
2025-07-04 15:45:11 +03:00
Roman Zeyde
36ad0cf7ce feat(core): implement UIDelizia::show_properties()
[no changelog]
2025-07-04 15:45:11 +03:00
Roman Zeyde
4222ca4b01 fix(core): add optional cancel text to FirmwareUI::select_menu()
Also, rename `page_counter` to `current`.

[no changelog]
2025-07-04 15:45:11 +03:00
Roman Zeyde
1ee00763e0 feat(core): add a helper for creating single-page flow on Delizia
[no changelog]
2025-07-04 15:45:11 +03:00
Roman Zeyde
62f71b41a7 refactor(core): use explicit Properties type for menus
In Delizia, `paragraphs` and `data` will not be using the same layout.

[no changelog]
2025-07-04 15:42:38 +03:00
Roman Zeyde
7996599d4d chore(core): avoid unused variable warning when building without BLE
[no changelog]
2025-07-04 15:38:54 +03:00
Roman Zeyde
de536bcdce chore(core): remove unused ShowInfoParams field
[no changelog]
2025-07-04 15:38:54 +03:00
Martin Milata
5194e1e10b feat(common): allow multiple wire id enums
[no changelog]
2025-07-03 00:09:25 +02:00
tychovrahe
03fd6a5de8 feat(core/bootloader): prepare wireless setup bootloader workflow
[no changelog]
2025-07-02 15:10:42 +02:00
tychovrahe
ac5fa0a5d8 fix(core): add timeout to nrf uart communication
[no changelog]
2025-07-02 14:41:21 +02:00
Roman Zeyde
47265ce850 test(core): expose whether Caesar Flow has a menu via LayoutContent
It is used to improve UI tests' coverage for new info menus.

[no changelog]
2025-07-02 12:09:42 +03:00
Roman Zeyde
f6ec199732 fix(core): return SimpleChoice items' count in ButtonRequest.pages
[no changelog]
2025-07-02 12:09:42 +03:00
tychovrahe
ab4d9d49bd feat(nordic,core): enable multiple BLE connection to allow easy connection switching
[no changelog]
2025-07-01 21:18:10 +02:00
tychovrahe
62fbc019b9 fix(core): improve reliability of nrf update
[no changelog]
2025-07-01 19:25:48 +02:00
tychovrahe
f966119817 fix(core/bootloader): close booloader BLE pairing mode dialog on disconnect
[no changelog]
2025-07-01 12:24:35 +02:00
Roman Zeyde
a4ea85bd75 feat(core): support external menu for Caesar confirm_summary
[no changelog]
2025-07-01 11:15:11 +03:00
Roman Zeyde
67f2883718 feat(core): implement multi-line selection layout for Caesar
Also refactor choice-related layout logic, while avoiding UI fixture diffs.

[no changelog]
2025-07-01 11:15:11 +03:00
Roman Zeyde
958418976e feat(core): implement hierarchical information menus for Caesar
[no changelog]
2025-07-01 11:15:09 +03:00
Roman Zeyde
2818bb3e5f chore(core): remove unused ChoiceItem::with_font() method
[no changelog]
2025-07-01 11:14:36 +03:00
Roman Zeyde
f7e9148218 feat(core): allow splitting text into lines according to max_width
It will be used by multi-line select menus.

[no changelog]
2025-07-01 11:14:36 +03:00
Roman Zeyde
31482b0825 feat(core): add Rect::split_center_by_height() method
[no changelog]
2025-07-01 11:14:36 +03:00
Lukas Bielesch
da5b526630 chore(core/eckhart): unify action bar cancel styles
[no changelog]
2025-07-01 08:10:23 +02:00
Lukas Bielesch
b6a447460b fix(rust): fix clippy warnings
[no changelog]
2025-07-01 08:10:23 +02:00
Lukas Bielesch
367bf53ff2 feat(core/delizia): add provider address in eth approve
when approving known contract, the provider address can be shown in the menu
2025-06-30 23:49:47 +02:00
Lukas Bielesch
4d2c676f3c chore(core/eckhart): Update ETH approve flow
[no changelog]
2025-06-30 23:49:47 +02:00
Lukas Bielesch
4c709bdb53 chore(core/eckhart): increase font for keypad input
- passphrase, pin, mnemonic keyboards
[no changelog]
2025-06-30 22:55:42 +02:00
Lukas Bielesch
a56c5448e9 chore(core): new FwUI function for public key 2025-06-30 10:42:08 +02:00
Lukas Bielesch
59d5f14ad7 chore(core): increase ParagraphVecLong size 2025-06-30 10:42:08 +02:00
Lukas Bielesch
aa74ab922d chore(core/eckhart): update show_address flow 2025-06-30 10:42:08 +02:00
Roman Zeyde
e33d1938e6 chore(core): remove unused import in bl_confirm.rs
[no changelog]
2025-06-26 13:38:45 +03:00
Roman Zeyde
17c866fb7c chore(core): remove unused ChoiceItem method
[no changelog]
2025-06-26 13:38:45 +03:00
tychovrahe
3fa5d4e71a feat(core/bootloader): add restart button after unlock/wipe device success
[no changelog]
2025-06-26 09:37:44 +02:00
cepetr
b35c7b40ba fix(core): fix rtc wake-up from suspend mode
[no changelog]
2025-06-25 10:54:20 +02:00
tychovrahe
243f04fbf2 fix(core): remove unnecessary fading
[no changelog]
2025-06-24 19:17:17 +02:00
tychovrahe
e281f145b3 fix(core): remove boot stage 1 from Eckhart UI
[no changelog]
2025-06-24 19:17:17 +02:00
Lukas Bielesch
2a6189c3ae chore(translations): add missing foreign translations
- fix typo in translation key
[no changelog]
2025-06-24 16:36:01 +02:00
tychovrahe
9f2dec6169 refactor(core): update bootloader from coreapp, using syscalls (and smcalls)
[no changelog]
2025-06-24 14:58:11 +02:00
Lukas Bielesch
a403524f72 chore(core): add compulsory data param to props
[no changelog]
2025-06-24 12:08:42 +02:00
Lukas Bielesch
5ade9204e4 feat(core): add new data mono fonts
[no changelog]
2025-06-24 12:08:42 +02:00
Ioan Bizău
320ee7b044 refactor(core): separate BLE and THP pairing code screens
[no changelog]
2025-06-24 10:27:17 +02:00
Ioan Bizău
785f52f082 refactor(eckhart): move pairing cancel button to menu
[no changelog]
2025-06-24 10:27:17 +02:00
Lukas Bielesch
a7f6bf5bda chore(core/eckhart): update warnings 2025-06-23 15:48:23 +02:00
Lukas Bielesch
f32d747f88 chore(core): promote multiple_accounts_warning to danger
- for eckhart and delizia layouts
2025-06-23 15:48:23 +02:00
Lukas Bielesch
5272f2af8f chore(core/eckhart): fix send title
[no changelog]
2025-06-23 15:48:23 +02:00
obrusvit
3bf0aaf08e feat(eckhart): implement hold_danger
[no changelog]
2025-06-23 12:03:25 +02:00
obrusvit
ee8bba40b2 feat(core): allow ProgressLayout with danger
- adds `danger` parameter to `show_progress` which can be used by
individual layout implementations to render a loader with a sever color
- this feature is used for wipe device handler
- this feature is implemented for Eckhart layout in this commit

[no changelog]
2025-06-23 12:03:25 +02:00
obrusvit
c73351f6df refactor(core): update some Eckhart FW text styles
[no changelog]
2025-06-23 10:16:32 +02:00
obrusvit
41bc018eb9 feat(core): update Eckhart bootloader
- Menu: reorg buttons, labels, styling
- ErrorScreen: show "Wait for device restart" in the bar area and move
footer message above that
- UpdateScreen

[no changelog]
2025-06-23 10:16:32 +02:00
tychovrahe
1312054ba9 fix(core): fix install fw confirm title issue 2025-06-20 16:11:08 +02:00
Roman Zeyde
7c45ce6522 chore(core): fix "trezor" -> "Trezor"
Also, remove duplicated `coinjoin__title_do_not_disconnect` string.

[no changelog]
2025-06-20 14:40:13 +03:00
Roman Zeyde
4633611d1b test(core): don't wait on StatusScreen if animation is disabled
[no changelog]
2025-06-20 14:07:52 +03:00
Roman Zeyde
f331b133e3 feat(core): join active workflows before restart
It should support asynchronous "success" confirmation layouts
for address, public key and signature confirmation flows.

[no changelog]
2025-06-20 14:07:52 +03:00
Roman Zeyde
23cde4ed72 Revert "feat(core): send address & public key response before showing StatusScreen"
This reverts commit 946fc89449.
2025-06-20 14:07:52 +03:00
Roman Zeyde
97b8833746 chore(core): use ERROR_NOT_IMPLEMENTED in Eckhart's ui_firmware.rs
[no changelog]
2025-06-19 07:48:45 +03:00
Martin Milata
c16d375abc refactor(core): eckhart: add close button to THP pairing UI
[no changelog]
2025-06-18 13:11:12 +02:00
Roman Zeyde
8fbe005186 refactor(core): wrap coverage data map with spin::RwLock
It allows us to avoid the `unsafe` blocks (due to `static mut` references).

[no changelog]
2025-06-17 17:09:30 +03:00
Roman Zeyde
365116be52 refactor(core): use Qstr instead of StrBuffer in coverage::Key
It allows `coverage::Key` to be `Send` & `Sync` - otherwise,
wrapping coverage data with a `spin::Mutex` will fail due to:
```
error[E0277]: `*const u8` cannot be sent between threads safely
   --> src/coverage/mod.rs:49:23
    |
49  | static COVERAGE_DATA: Mutex<FnvIndexMap<Key, u64, { 1024 * 1024 }>> =
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*const u8` cannot be sent between threads safely
    |
    = help: within `IndexMap<Key, u64, hash32::BuildHasherDefault<hash32::fnv::Hasher>, 1048576>`, the trait `Send` is not implemented for `*const u8`
note: required because it appears within the type `StrBuffer`
```

[no changelog]
2025-06-17 17:09:30 +03:00
Roman Zeyde
f4e65fd8e3 fix(core): don't enter/exit menu via horizontal swipe on Delizia
Following #5189.
2025-06-16 18:29:56 +03:00
Roman Zeyde
0d87266bfc fix(core): don't enter/exit menu via horizontal swipe on Bolt 2025-06-16 18:29:56 +03:00
Roman Zeyde
6d35f047b8 chore(core): inline SwipeFlow::render_state
[no changelog]
2025-06-16 17:35:07 +03:00
Roman Zeyde
6eb0458b7c chore(core): remove unused SwipeFlow field
[no changelog]
2025-06-16 17:35:07 +03:00
Roman Zeyde
2a29e4ea47 fix(core): correct a small typo in screen_update()
[no changelog]
2025-06-16 10:52:58 +03:00
obrusvit
af02e5e6a2 feat(eckhart): improve Homescreen styling
- correct Homebar icons
- colors and gradients
- LED usage
- Hint changes: add pad and cleanup some unused code

[no changelog]
2025-06-13 19:36:51 +02:00
obrusvit
2196a5f785 refactor(core): cleanup homescreen params
- rename FirmwareUI::show_homescreen param name from `hold` to
  `lockable` because hold or hold_to_lock no longer covers all layouts
- cleanup uPy notification params

[no changelog]
2025-06-13 19:36:51 +02:00
Lukas Bielesch
5104872010 chore(core/eckhart): extend pin/pp touch area
[no changelog]
2025-06-13 19:15:26 +02:00
Lukas Bielesch
ecbb71232e chore(rust): increase max text ops
[no changelog]
2025-06-13 11:22:55 +02:00
Lukas Bielesch
023c8fc140 chore(core/eckhart): update check recovery flow
[no changelog]
2025-06-13 11:22:55 +02:00
Lukas Bielesch
3fa185703e feat(core): use OpTextLayout::add_ functions to reduce stack usage 2025-06-12 10:07:23 +02:00
obrusvit
f0865e3b10 feat(eckhart): fuel gauge UI
- fuel gauge (battery state) with icons for charging/discharging state
and soc percentage
- on attach on Homescreen ActionBar
- permanently on the first DeviceMenu subscreen
- temporarily in the Header on charging state update

[no changelog]
2025-06-11 23:39:28 +02:00
obrusvit
17d6dd4a55 chore(core): remove battery from show_device_menu
- the battery status changes are now propagated into Components by
Event::PM

[no changelog]
2025-06-11 23:39:28 +02:00
obrusvit
f04edf3a28 feat(core): battery updates in FW event loop
[no changelog]
2025-06-11 23:39:28 +02:00
cepetr
e8a5d11e5d fix(core): fix rsod message alignment on bolt
[no changelog]
2025-06-11 11:49:42 +02:00
tychovrahe
ce3eae95a4 feat(core/bootloader): menu item reboot always active 2025-06-11 09:57:47 +02:00
Roman Zeyde
30840d7cbf perf(core): rewrite trezor.log and trezor.wire_log in Rust
Requires https://github.com/trezor/micropython/pull/26.

[no changelog]
2025-06-11 10:26:09 +03:00
Roman Zeyde
a9f59f6dd6 style(core): fix a few Rust lints
[no changelog]
2025-06-11 09:58:08 +03:00
Roman Zeyde
a7849ab838 perf(core): use 16-bit duration for Button long-press duration
Also, use zero duration to disable long-press mechanism.

[no changelog]
2025-06-09 20:27:09 +03:00
Roman Zeyde
0b4c44e32f refactor(core): use an enum for Button's radius/gradient
[no changelog]
2025-06-09 20:21:28 +03:00
Roman Zeyde
a6f99a65b4 perf(core): don't use Option<Insets> to save memory
Otherwise, the compiler adds 2 bytes per `Button` struct.

[no changelog]
2025-06-09 20:21:28 +03:00
Roman Zeyde
5dbf726160 perf(core): change TextAndSubtext::subtext_style to a reference
It should significantly reduce the size of `heapless::Vec<ui::layout_eckhart::component::button::Button, 100>`.

[no changelog]
2025-06-09 20:21:28 +03:00
obrusvit
018330f3c2 chore(eckhart): remove hold to lock animation
- hold to lock animation will not be used on the Homescreen
- the locking functionality is kept for debug purposes and is increased
to 3 seconds

[no changelog]
2025-06-09 17:59:47 +02:00
tychovrahe
3324af7b50 refactor(core): unify CommonUI screen definition
[no changelog]
2025-06-09 17:48:56 +02:00
Roman Zeyde
14909e37ed style(core): prefix unused parameters with _
[no changelog]
2025-06-09 17:20:05 +02:00
tychovrahe
01465aac7c feat(core): update NRF application from firmware
[no changelog]
2025-06-09 17:12:31 +02:00
tychovrahe
ccb28f4aab refactor(core): move c string conversion out of UI code
[no changelog]
2025-06-09 17:12:31 +02:00
tychovrahe
4e31a9e20a fix(core/rust): make rust crate compilable without UI
[no changelog]
2025-06-09 17:12:31 +02:00
tychovrahe
dda281e78a chore(core): fix clippy errors
[no changelog]
2025-06-09 17:12:31 +02:00
tychovrahe
6aa981da45 chore(core): update rust
[no changelog]
2025-06-09 17:12:31 +02:00
obrusvit
2dfae34b39 fix(eckhart): aligned screen border top arc
[no changelog]
2025-06-09 17:09:19 +02:00
Lukas Bielesch
8cfa6a3693 chore(eckhart): update shamir wallet creation
[no changelog]
2025-06-09 08:52:32 +02:00
Lukas Bielesch
468ddaab9d chore(eckhart): simplify updatable info screen
[no changelog]
2025-06-09 08:52:32 +02:00
Lukas Bielesch
13a020202e chore(eckhart): update pin flows for Eckhart UI
[no changelog]
2025-06-08 18:19:32 +02:00