Skip to content

fix(mobile): align native login panels and QR connection flows - #2966

Merged
wgqqqqq merged 2 commits into
GCWing:mainfrom
wgqqqqq:wgq/mobile-harmony-ui-parity
Sep 11, 2026
Merged

wgqqqqq merged 2 commits into
GCWing:mainfrom
wgqqqqq:wgq/mobile-harmony-ui-parity

Conversation

@wgqqqqq

@wgqqqqq wgqqqqq commented Sep 11, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Align native Android, iOS, and HarmonyOS connection flows, including compact GitHub login panels and app-owned QR scanning on Android.

  • Present login as a bottom-aligned, content-sized panel: 280 logical units high by default, 560 maximum width, 8 outer margin and 28 corner radius. Share geometry through the mobile design contract and generated native tokens.
  • Align title, supporting copy, action positions, close glyphs and button appearance across all three platforms. Grow or scroll for accessibility text and errors; retain native modal dismissal and an iOS 16.0–16.3 sheet fallback.
  • Replace Android's external Google scanner UI with an inline CameraX / bundled ML Kit scanner. Release the camera for manual pairing and dismissal, resume on return, and handle camera permission changes.
  • Preserve the connection chooser and direct-scan entry points, and remove the duplicate shared account-state constructor that blocked builds.

Type and Areas

Type: UI/UX, bug fix, tests

Areas: Native Android, iOS, HarmonyOS, mobile design system, shared mobile account state

Motivation / Impact

The same connection action previously opened different layouts across mobile platforms. GitHub login also occupied nearly the whole screen despite having only a short explanation and one action. All three now use the same compact panel geometry; Android QR scanning stays inside the app and follows the existing native scanner layout.

Measured native screenshots at a 402 × 874 logical viewport show a 386 × 280 login panel on all three platforms. Wide layouts use 560 × 280 panels. System safe-area offsets and native font rasterization remain platform-specific; this is not a claim of identical full-screen pixels.

Verification

Passed during implementation:

  • pnpm run mobile:ui:check
  • pnpm run mobile:architecture
  • pnpm run theme:color-audit:all — all 23 selected surfaces
  • Android: ./gradlew :app:assembleDebug :app:testDebugUnitTest
  • Android: ./gradlew :app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.openbitfun.mobile.app.ConnectionSheetChromeTest — 3 tests, including phone/wide panel geometry, action positions, CJK line boxes and click handling
  • Android: focused InlineQrDecoderTest — bundled decoder recognizes a generated QR fixture and rejects a blank image
  • iOS: xcodebuild -project OpenBitFun.xcodeproj -scheme OpenBitFun -destination 'platform=iOS Simulator,name=iPhone 17 Pro' CODE_SIGNING_ALLOWED=YES CODE_SIGNING_IDENTITY=- build
  • HarmonyOS: after sourcing scripts/ohos-env.sh, "$HVIGORW" --mode module -p product=default -p module=entry@default assembleHap --no-daemon
  • git diff --check

Manual simulator checks: Android phone/wide layouts and 1.5× text; iPhone/iPad and accessibility-large text; HarmonyOS folded/unfolded transitions while the login panel is open; dismissal/back navigation; camera permission-denied UI; Android camera active → released during manual pairing → resumed → released on close.

Reviewer Notes

Changes affect the local native presentation of remote-control entry points. Real GitHub authorization and end-to-end remote workspace, Peer Device, and Detached Dispatch connections were not exercised. No credentials, user data migrations or wire-protocol changes are included. Local screenshot reports are intentionally not committed.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

@wgqqqqq wgqqqqq changed the title feat(mobile): align native connection flows fix(mobile): align native login panels and QR connection flows Sep 11, 2026
@wgqqqqq
wgqqqqq merged commit e0b6575 into GCWing:main Sep 11, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant