From 48be46cf476b18c81ee984b5206ac984ddd8a5f3 Mon Sep 17 00:00:00 2001 From: otsmr Date: Thu, 9 Jul 2026 20:43:37 +0200 Subject: [PATCH] pop until the users was verified --- .../main_camera_controller.dart | 2 ++ .../visual/views/camera/camera_qr_scanner.view.dart | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/src/visual/views/camera/camera_preview_components/main_camera_controller.dart b/lib/src/visual/views/camera/camera_preview_components/main_camera_controller.dart index 53238250..551f0869 100644 --- a/lib/src/visual/views/camera/camera_preview_components/main_camera_controller.dart +++ b/lib/src/visual/views/camera/camera_preview_components/main_camera_controller.dart @@ -54,6 +54,7 @@ class ScannedNewProfile { class MainCameraController { void Function()? setState; + void Function(Contact contact)? onVerificationSuccessDismissed; CameraController? cameraController; ScreenshotController screenshotController = ScreenshotController(); SelectedCameraDetails selectedCameraDetails = SelectedCameraDetails(); @@ -556,6 +557,7 @@ class MainCameraController { final context = cameraPreviewKey.currentContext; if (verificationOk && context != null && context.mounted) { await VerificationSuccessDialog.show(context, contact); + onVerificationSuccessDismissed?.call(contact); } } continue; diff --git a/lib/src/visual/views/camera/camera_qr_scanner.view.dart b/lib/src/visual/views/camera/camera_qr_scanner.view.dart index ce5b550a..d23b1b7d 100644 --- a/lib/src/visual/views/camera/camera_qr_scanner.view.dart +++ b/lib/src/visual/views/camera/camera_qr_scanner.view.dart @@ -31,6 +31,17 @@ class QrCodeScannerViewState extends State { _mainCameraController.setState = () { if (mounted) setState(() {}); }; + if (widget.openToVerify && widget.contact != null) { + _mainCameraController.onVerificationSuccessDismissed = (contact) { + if (mounted) { + Navigator.popUntil(context, (route) { + final name = route.settings.name; + if (name == null) return true; + return !name.contains('qr_scanner') && !name.contains('verifybadge'); + }); + } + }; + } Permission.camera.isGranted.then((hasPermission) { if (hasPermission && mounted) { unawaited(_mainCameraController.selectCamera(0, true));