From 4f89c25bade001c1059ae0f7e481f0eb1d815f44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Mon, 28 Sep 2026 16:33:15 +0800 Subject: [PATCH] fix(app): lock capture page portrait; gate zoom badge on 2 pointers; drop dead getter - MainActivity locked to portrait: the capture page top bar / bottom controls and the preview aspect swap all assume portrait; landscape misaligns the preview ratio and control layers. - Zoom badge now requires details.pointerCount >= 2 on onScaleStart so a single stationary tap no longer pops a 1.0x badge for 1s; base-zoom rebasing stays unconditional (single-finger-into-pinch still resumes from the current level). - Removed unused CameraPluginSource.currentZoom getter. Co-Authored-By: Claude Code --- apps/mobile/android/app/src/main/AndroidManifest.xml | 3 +++ apps/mobile/lib/pages/capture_page.dart | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/mobile/android/app/src/main/AndroidManifest.xml b/apps/mobile/android/app/src/main/AndroidManifest.xml index b439366..8a45a1c 100644 --- a/apps/mobile/android/app/src/main/AndroidManifest.xml +++ b/apps/mobile/android/app/src/main/AndroidManifest.xml @@ -30,11 +30,14 @@ + _zoomLevel; - @override bool get supportsFlash => true; @@ -377,7 +374,10 @@ class _CapturePageState extends ConsumerState _pinchBaseZoom = _lastSentZoom .clamp(source.minZoom, source.maxZoom) .toDouble(); - _showZoomBadge(_pinchBaseZoom!); + // 单指轻点同样触发 onScaleStart——倍数徽标仅在真捏合(≥2 指)时显示, + // 避免轻点预览也弹 1.0×;基线重定保持无条件(单指转捏合、抬起再捏合 + // 均从当前倍数续接)。 + if (details.pointerCount >= 2) _showZoomBadge(_pinchBaseZoom!); } void _onPinchUpdate(ScaleUpdateDetails details) {