refactor(mobile): replace QR pairing with account sign-in - #3242
Merged
Merged
Conversation
Mobile connect no longer scans a desktop QR code or pastes a pairing link. Android, iOS, and HarmonyOS discover the desktops of the signed-in account and pick one from the account device list, and the settings surfaces are consolidated into one sheet per platform. Removed with the pairing flow: the camera scanners and their dependencies (Android camera/ML Kit, `NSCameraUsageDescription` on iOS, `ohos.permission.CAMERA` and `ohos.permission.READ_PASTEBOARD` on HarmonyOS), the pairing sheets and scanners, and the separate general/remote settings screens. Added in their place: an account login surface plus a device picker on each platform, and current-control and remote-permission sections inside the settings sheet. HarmonyOS i18n catalogues, native string resources, the iOS project file, and the HarmonyOS architecture contract's required presentation files move with the same change. Co-authored-by: OpenBitFun <318544290+bitfun-ai@users.noreply.github.com>
wgqqqqq
marked this pull request as ready for review
September 28, 2026 09:36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
camera-*and ML Kit dependencies plus theCAMERAmanifest entries, iOSNSCameraUsageDescription, and HarmonyOSohos.permission.CAMERA. HarmonyOSohos.permission.READ_PASTEBOARDgoes too, because the pasteboard read path and its runtime permission request were the pairing-link paste;ClipboardServicekeeps only the mini-appwriteTextpath, which needs no permission.Deleted:
InlineQrScanner/InlineQrDecoderTest/pairing-qr.png/AccountScreen/ConnectView/GeneralSettingsScreen/OtherConnectionSection/SignedOutConnectionActions(Android),PairingSheet/QRCodeScannerView(iOS),ConnectManualPairingOverlay/RemoteControlSettingsSheet/InlineQrScanner/QrScanService/ConnectScanDecisionPolicy/RemoteControlSettingsPagePolicy/welcome_scan.svg(HarmonyOS).Added:
AccountLoginScreen.kt,AccountDevicePickerSheet.swift,AccountLoginSheet.ets,CurrentControlSection.ets,RemotePermissionSection.ets,SettingsPagePolicy.ets.Validation
Run on macOS against the pushed commit; the Android and HarmonyOS toolchains were the bundled JBRs from Android Studio / DevEco Studio.
git diff --cached --check— passedpnpm run mobile:ui:check— passedpnpm run theme:color-audit:all— passed (24 surfaces)pnpm run harmony:architecture— passedcd src/apps/mobile/ios && ./Testing/run-pure-swift-tests.sh— passedcd src/apps/mobile/android && ./gradlew :app:assembleDebug :app:compileDebugAndroidTestKotlin :app:testDebugUnitTest— passedcd src/apps/mobile/harmonyos && node --test miniapps/*.test.cjs— 6 passed, 0 failedcd src/apps/mobile/harmonyos && source scripts/ohos-env.sh && "$HVIGORW" --mode module -p module=entry@default -p ohos.test.type=LocalTest test --no-daemon—Tests run: 511, Failure: 0, Error: 0, Pass: 511Not green, and pre-existing on the base commit
d4e96d430— the same commands fail identically in a clean worktree of that commit, so they are not caused by this branch:cd src/apps/mobile/shared && ./gradlew jvmTest— 503 tests, 1 failed:RemoteSessionStoreTest.imageSendFailureDoesNotConsumeAttachmentsAndAckKeepsNewTypingcd src/apps/mobile/harmonyos && node --test tools/tests/*.test.cjs— 194 tests, 1 failed:sidebar final entry hierarchy keeps modes in workspace plus and tools in the footerpnpm run mobile:architecture— 4 violations (sharedReachesPlatformTrees,defaultArgsInFeatureApi);AppSidebar.etsalready lackedworkspaceTools.titleatd4e96d430, and the reported files are untouched hereRisks
AGENTS.mdwere not exercised on a device or a second host.Generated with OpenBitFun