feat: add two-button navigation to dictionary word select - #2981
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
📜 Recent review details⏰ Context from checks skipped due to timeout. (3)
🧰 Additional context used🧠 Learnings (22)📓 Common learnings📚 Learning: 2026-02-23T22:11:42.181ZApplied to files:
📚 Learning: 2026-03-25T10:28:30.516ZApplied to files:
📚 Learning: 2026-04-17T18:59:20.878ZApplied to files:
📚 Learning: 2026-08-10T20:39:38.043ZApplied to files:
📚 Learning: 2026-02-23T06:18:08.408ZApplied to files:
📚 Learning: 2026-02-27T22:49:59.600ZApplied to files:
📚 Learning: 2026-03-02T10:14:16.036ZApplied to files:
📚 Learning: 2026-04-12T12:28:33.205ZApplied to files:
📚 Learning: 2026-05-24T21:10:19.897ZApplied to files:
📚 Learning: 2026-08-10T19:01:20.991ZApplied to files:
📚 Learning: 2026-04-28T09:44:20.329ZApplied to files:
📚 Learning: 2026-04-05T19:21:32.486ZApplied to files:
📚 Learning: 2026-04-13T23:10:44.397ZApplied to files:
📚 Learning: 2026-04-22T16:29:04.799ZApplied to files:
📚 Learning: 2026-04-22T16:28:42.649ZApplied to files:
📚 Learning: 2026-08-02T12:14:47.878ZApplied to files:
📚 Learning: 2026-07-24T21:15:54.622ZApplied to files:
📚 Learning: 2026-06-27T20:07:32.056ZApplied to files:
📚 Learning: 2026-04-05T19:31:31.692ZApplied to files:
📚 Learning: 2026-04-13T22:45:24.939ZApplied to files:
📚 Learning: 2026-04-05T10:43:16.171ZApplied to files:
🔇 Additional comments (7)
📝 WalkthroughWalkthroughThe change adds persisted dictionary word-navigation mode and speed settings. The reader activity supports four-button and two-button navigation, including configurable hold-to-repeat intervals. Settings visibility depends on dictionary access and the selected navigation mode. ChangesDictionary navigation settings and controls
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant SettingsActivity
participant CrossPointSettings
participant DictionaryWordSelectActivity
participant ButtonNavigator
User->>SettingsActivity: Select navigation mode or speed
SettingsActivity->>CrossPointSettings: Persist setting
User->>DictionaryWordSelectActivity: Open dictionary word selection
DictionaryWordSelectActivity->>CrossPointSettings: Read navigation mode and interval
DictionaryWordSelectActivity->>ButtonNavigator: Configure two-button navigation
ButtonNavigator->>DictionaryWordSelectActivity: Report release or hold
DictionaryWordSelectActivity->>DictionaryWordSelectActivity: Move word or jump rows
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
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 |
Summary
dictWordNavModesetting: existing four-button scheme (Left/Right step words, Up/Down jump rows) vs. a two-button scheme where Up+Left both step to the previous word and Down+Right both step to the next.dictWordNavSpeed(Normal/Fast).Scope Check
CrossPoint is intentionally narrow. See SCOPE.md and ROADMAP.md.
Please confirm:
(or, if one does, I explain why CrossPoint still needs it below).
freeink-sdk/,lib/hal/, the bootloader, OTA, or recovery code, I have coordinated withthe relevant maintainer.
Additional Context
distinct front buttons; this closes that gap with a settings-gated alternative that doesn't change default behavior.
uint8_tsettings fields (~2 bytes permanent RAM). The two-button repeat logic reuses theexisting
ButtonNavigatorhold-to-repeat mechanism (same oneDictionaryDefinitionActivityuses for page turns),with its button-list vectors held as activity members rather than rebuilt per tick, so there's no additional
per-loop heap allocation.
speed settings, and the conditional settings visibility).
AI Usage
While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it
helps set the right context for reviewers.
Did you use AI tools to help write this code? YES