fix(eckhart): improve haptics in scrollable menu#6551
Conversation
|
| model | device_test | click_test | persistence_test |
|---|---|---|---|
| T2T1 | test(all) main(all) ![]() |
test(all) main(all) ![]() |
test(all) main(all) ![]() |
| T3B1 | test(all) main(all) ![]() |
test(all) main(all) ![]() |
test(all) main(all) ![]() |
| T3T1 | test(all) main(all) ![]() |
test(all) main(all) ![]() |
test(all) main(all) ![]() |
| T3W1 | test(all) main(all) ![]() |
test(all) main(all) ![]() |
test(all) main(all) ![]() |
Latest CI run: 23186910242
There was a problem hiding this comment.
Pull request overview
This PR adjusts haptic feedback behavior in the Eckhart UI layout so that when a vertical menu is scrollable, haptics are triggered on the confirmed click (TouchEnd) instead of on initial touch (TouchStart), reducing vibration while scrolling.
Changes:
- Introduces a
HapticModeenum for buttons and updates button event handling to supportOnPress,OnClick, andOff. - Adds
VerticalMenu::set_haptic_mode()to apply haptic behavior across all menu buttons. - Switches scrollable menus to
HapticMode::OnClickduringVerticalMenuScreeninitialization.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| core/embed/rust/src/ui/layout_eckhart/firmware/vertical_menu_screen.rs | Sets click-only haptics for scrollable menus during screen initialization. |
| core/embed/rust/src/ui/layout_eckhart/firmware/vertical_menu.rs | Adds a helper to set haptic mode for all buttons in a menu. |
| core/embed/rust/src/ui/layout_eckhart/component/mod.rs | Re-exports HapticMode from the button module. |
| core/embed/rust/src/ui/layout_eckhart/component/button.rs | Replaces boolean haptics with HapticMode and updates haptic triggering logic. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- if the menu is scrollable (i.e. buttons don't fit on the page) the haptics is postponed to the actual click (TouchEnd) rather than placing the finger there (TouchStart)
cc47cdc to
4bdf7b2
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
WalkthroughThis pull request refactors the haptic feedback system in the button component by replacing a boolean Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Tip CodeRabbit can use TruffleHog to scan for secrets in your code with verification capabilities.Add a TruffleHog config file (e.g. trufflehog-config.yml, trufflehog.yml) to your project to customize detectors and scanning behavior. The tool runs only when a config file is present. |
|
Postponing changelog to this PR: #6553 |
|
Tested on TS7 with 2.11.1 FW. On a long scrollable menu such as Settings > Device (after the device is seeded) haptics only trigger after touch is released from a menu item. Scrolling is undisturbed by haptics. Short menus and buttons behave as before. |




































Notes for QA
Test that longer submenu in T3W1 device menu does not produce unpleasant haptic feedback while scrolling.