From 0a91e343480fec7cc274f353873f8ddf98bcefec Mon Sep 17 00:00:00 2001 From: otsmr Date: Tue, 12 May 2026 23:19:03 +0200 Subject: [PATCH] fix same camera is opened again when return to the camera controller --- lib/app.dart | 2 +- .../camera_preview_controller_view.dart | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/app.dart b/lib/app.dart index 43b63dfb..a43651dd 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -15,10 +15,10 @@ import 'package:twonly/src/visual/themes/dark.dart'; import 'package:twonly/src/visual/themes/light.dart'; import 'package:twonly/src/visual/views/critical_error.view.dart'; import 'package:twonly/src/visual/views/home.view.dart'; -import 'package:twonly/src/visual/views/recovery.view.dart'; import 'package:twonly/src/visual/views/onboarding/onboarding.view.dart'; import 'package:twonly/src/visual/views/onboarding/register.view.dart'; import 'package:twonly/src/visual/views/onboarding/setup.view.dart'; +import 'package:twonly/src/visual/views/recovery.view.dart'; import 'package:twonly/src/visual/views/unlock_twonly.view.dart'; class App extends StatefulWidget { diff --git a/lib/src/visual/views/camera/camera_preview_components/camera_preview_controller_view.dart b/lib/src/visual/views/camera/camera_preview_components/camera_preview_controller_view.dart index a878303f..5f72b655 100644 --- a/lib/src/visual/views/camera/camera_preview_components/camera_preview_controller_view.dart +++ b/lib/src/visual/views/camera/camera_preview_components/camera_preview_controller_view.dart @@ -341,6 +341,9 @@ class _CameraPreviewViewState extends State { await _deInitVolumeControl(); if (!mounted) return true; + // Cache active camera ID since ShareImageEditorView closes the camera and resets state parameters. + final initialCameraId = mc.selectedCameraDetails.cameraId; + final shouldReturn = await Navigator.push( context, @@ -381,7 +384,7 @@ class _CameraPreviewViewState extends State { return true; } await mc.selectCamera( - mc.selectedCameraDetails.cameraId, + initialCameraId, false, ); return false;