Add G2 selectable lists and dashboard fallback#3249
Add G2 selectable lists and dashboard fallback#3249PhilippeFerreiraDeSousa wants to merge 2 commits into
Conversation
📋 PR Review Helper📱 Mobile App Build⏳ Building... (commit 🕶️ ASG Client Build⏳ Waiting for build... 🔀 Test Locallygh pr checkout 3249 |
PR Agent Orchestrator State{
"cycle": 2,
"fixRound": 0,
"totalReviewerRuns": 2,
"consecutiveNoNewReviews": 2,
"openFindings": [],
"resolvedFindings": [],
"nitFindings": [],
"phase": "discovery",
"status": "in_progress",
"lastPair": [],
"stagnationFixRounds": 0,
"lastOpenCount": 0,
"fingerprintReopenCounts": {},
"mutedFingerprints": []
} |
🤖 PR Agent Review — cycle 2✅ No blocking findings · 0 blocking · 0 nits No model reviews ran this cycle. Updated automatically by the PR Agent Orchestrator each review cycle. Nits do not block merge. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 05166ed. Configure here.
| if (eventType == null) { | ||
| Bridge.log("G2: unknown list event type: $listFields") | ||
| return@let | ||
| } |
There was a problem hiding this comment.
Android drops unknown list events
Low Severity
New G2 ListEvent handling returns without emitting a touch event when field 5 is present but not a known OsEventType. The iOS G2 path in the same PR treats that case as a click, so list interactions can work on iOS but be ignored on Android for the same firmware payload.
Reviewed by Cursor Bugbot for commit 05166ed. Configure here.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 05166ede96
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| case "single_tap": | ||
| return "click" | ||
| case "double_click": | ||
| case "double_tap": | ||
| return "double_click" |
There was a problem hiding this comment.
Preserve G2 gesture aliases for local touch subscribers
When G2 emits gestureName: "double_tap" (and similarly single_tap), this rewrites the per-gesture stream to touch_event:double_click/touch_event:click. Local session.input.onTouch(gesture, ...) subscribes to the literal string the miniapp passed, and the cloud SDK/docs use single_tap/double_tap, so a local miniapp subscribing to double_tap will not receive the event and hasTouchSubscriberForGesture("double_tap") will also return false, causing the new dashboard fallback to open over a claimed gesture. Normalize subscriptions the same way or fan out to both the original gestureName and the legacy kind alias.
Useful? React with 👍 / 👎.
05166ed to
4c8ad66
Compare
|
This should be the behavior we want : selectable lists. double tap available to mini apps with no dashboard interference if the mini app listens on it. |


Summary
Validation
Note
Medium Risk
Changes touch the G2 EvenHub page model and event bridge; regressions could affect display rebuilds, mic recovery, or gesture routing on G2 glasses.
Overview
Adds G2 selectable lists end-to-end in the Bluetooth SDK: layouts can use
selectable_list, with list fields parsed into view state and rendered via new EvenHub list protobuf containers on create/rebuild page. List interactions from firmware are handled and forwarded astouch_eventmessages that include container and selection metadata (containerId,containerName,selectedItemName,selectedItemIndex) on Android and iOS.Display lifecycle is updated so list pages coexist with text/image containers (clear/replace/reconcile paths), and non-G2 SGCs fall back to a joined text wall. View-state deduping is tightened (struct equality /
viewStateKey).When
use_native_dashboardis on, G2 no longer callsshowDashboard()on a system double-click in native code (only logs); native-dashboard double-tap is expected to be handled higher in the stack usingtouch_eventand miniapp touch subscription checks. Jest mockshasTouchSubscriberForGesturefor that path.Reviewed by Cursor Bugbot for commit 4c8ad66. Bugbot is set up for automated code reviews on this repo. Configure here.