khoren93 / flutter_zxing

Flutter plugin for scanning and generating QR codes using the ZXing library, supporting Android, iOS, and desktop platforms
https://pub.dev/packages/flutter_zxing
MIT License
98 stars 56 forks source link

calling Navigator.popUntil() #153

Open trashcoder opened 2 months ago

trashcoder commented 2 months ago

In my Widget which calls the ReaderWidget i have a logon page Button. When the user clicks this button, he is navigated to a logon oage. After Logging in the user can create a qr-code. But when he navigates back, i don't want to call the login page. Instead i want the user to go back to the Reader Widget page. So i use Navigator.popUntil(context, "QRCodeScanner"); . But then the ReaderWidget closes the camera connection. See log below:


D/EGL_emulation( 6219): app_time_stats: avg=221.88ms min=14.72ms max=4123.80ms count=20
I/flutter ( 6219): Zurück1
I/flutter ( 6219): Activating QR-Code Scanner
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=270, isOppositeFacing=false, result=270
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/DynamicRangeResolver( 6219): Resolved dynamic range for use case androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9 to no compatible HDR dynamic ranges.
D/DynamicRangeResolver( 6219): DynamicRange@7a293e7{encoding=UNSPECIFIED, bitDepth=0}
D/DynamicRangeResolver( 6219): ->
D/DynamicRangeResolver( 6219): DynamicRange@1500da6{encoding=SDR, bitDepth=8}
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/DeferrableSurface( 6219): Surface created[total_surfaces=1, used_surfaces=0](androidx.camera.core.processing.SurfaceEdge$SettableSurface@b0a04e1}
D/DeferrableSurface( 6219): Surface created[total_surfaces=2, used_surfaces=0](androidx.camera.core.SurfaceRequest$2@5c10e1d}
D/DeferrableSurface( 6219): New surface in use[total_surfaces=2, used_surfaces=1](androidx.camera.core.SurfaceRequest$2@5c10e1d}
D/DeferrableSurface( 6219): use count+1, useCount=1 androidx.camera.core.SurfaceRequest$2@5c10e1d
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/ImageCapture( 6219): createPipeline(cameraId: 10, streamSpec: StreamSpec{resolution=1280x720, dynamicRange=DynamicRange@1500da6{encoding=SDR, bitDepth=8}, expectedFrameRateRange=[0, 0], implementationOptions=androidx.camera.camera2.impl.Camera2ImplConfig@7e01bde})
D/DeferrableSurface( 6219): Surface created[total_surfaces=3, used_surfaces=1](androidx.camera.core.impl.ImmediateSurface@e9db1bf}
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use case androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474 ACTIVE
D/UseCaseAttachState( 6219): Active and attached use case: [] for camera: 10
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/DeferrableSurface( 6219): Surface created[total_surfaces=4, used_surfaces=1](androidx.camera.core.impl.ImmediateSurface@854e3d5}
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use case androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423 ACTIVE
D/UseCaseAttachState( 6219): Active and attached use case: [] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use case androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474 ACTIVE
D/UseCaseAttachState( 6219): Active and attached use case: [] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use case androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208 INACTIVE
D/UseCaseAttachState( 6219): Active and attached use case: [] for camera: 10
D/UseCaseAttachState( 6219): Active and attached use case: [] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use cases [androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423, androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208] now ATTACHED
D/UseCaseAttachState( 6219): All use case: [androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423, androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208] for camera: 10
D/CameraOrientationUtil( 6219): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/UseCaseAttachState( 6219): Active and attached use case: [androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423] for camera: 10
I/flutter ( 6219): Neuer CameraController
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Resetting Capture Session
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Releasing session in state INITIALIZED
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Attempting to force open the camera.
D/CameraStateRegistry( 6219): tryOpenCamera(Camera@1a43955[id=10]) [Available Cameras: 1, Already Open: false (Previous state: CLOSED)] --> SUCCESS
D/CameraStateRegistry( 6219): Recalculating open cameras:
D/CameraStateRegistry( 6219): Camera                                       State                 
D/CameraStateRegistry( 6219): -------------------------------------------------------------------
D/CameraStateRegistry( 6219): Camera@1a43955[id=10]                        OPENING               
D/CameraStateRegistry( 6219): Camera@80b0012[id=1]                         UNKNOWN               
D/CameraStateRegistry( 6219): -------------------------------------------------------------------
D/CameraStateRegistry( 6219): Open count: 1 (Max allowed: 1)
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Opening camera.
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Transitioning camera internal state: INITIALIZED --> OPENING
D/CameraStateMachine( 6219): New public camera state CameraState{type=OPENING, error=null} from OPENING and null
D/CameraStateMachine( 6219): Publishing new public camera state CameraState{type=OPENING, error=null}
D/UseCaseAttachState( 6219): All use case: [androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423, androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use case androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423 ACTIVE
D/UseCaseAttachState( 6219): Active and attached use case: [androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use case androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474 ACTIVE
D/UseCaseAttachState( 6219): Active and attached use case: [androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use case androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208 INACTIVE
D/UseCaseAttachState( 6219): Active and attached use case: [androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use case androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208 ACTIVE
D/UseCaseAttachState( 6219): Active and attached use case: [androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423, androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} CameraDevice.onOpened()
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Transitioning camera internal state: OPENING --> OPENED
D/CameraStateRegistry( 6219): Recalculating open cameras:
D/CameraStateRegistry( 6219): Camera                                       State                 
D/CameraStateRegistry( 6219): -------------------------------------------------------------------
D/CameraStateRegistry( 6219): Camera@1a43955[id=10]                        OPEN                  
D/CameraStateRegistry( 6219): Camera@80b0012[id=1]                         UNKNOWN               
D/CameraStateRegistry( 6219): -------------------------------------------------------------------
D/CameraStateRegistry( 6219): Open count: 1 (Max allowed: 1)
D/CameraStateMachine( 6219): New public camera state CameraState{type=OPEN, error=null} from OPEN and null
D/CameraStateMachine( 6219): Publishing new public camera state CameraState{type=OPEN, error=null}
D/UseCaseAttachState( 6219): All use case: [androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423, androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208] for camera: 10
D/UseCaseAttachState( 6219): Active and attached use case: [androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423, androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208] for camera: 10
D/SyncCaptureSessionBase( 6219): [androidx.camera.camera2.internal.SynchronizedCaptureSessionBaseImpl@4f0b5] getSurface...done
D/CaptureSession( 6219): Opening capture session.
D/DeferrableSurface( 6219): use count+1, useCount=2 androidx.camera.core.SurfaceRequest$2@5c10e1d
D/DeferrableSurface( 6219): New surface in use[total_surfaces=4, used_surfaces=2](androidx.camera.core.impl.ImmediateSurface@e9db1bf}
D/DeferrableSurface( 6219): use count+1, useCount=1 androidx.camera.core.impl.ImmediateSurface@e9db1bf
D/DeferrableSurface( 6219): New surface in use[total_surfaces=4, used_surfaces=3](androidx.camera.core.impl.ImmediateSurface@854e3d5}
D/DeferrableSurface( 6219): use count+1, useCount=1 androidx.camera.core.impl.ImmediateSurface@854e3d5
D/CaptureSession( 6219): Attempting to send capture request onConfigured
D/CaptureSession( 6219): Issuing request for session.
D/Camera2CaptureRequestBuilder( 6219): createCaptureRequest
D/CaptureSession( 6219): CameraCaptureSession.onConfigured() mState=OPENED
D/CaptureSession( 6219): CameraCaptureSession.onReady() OPENED
I/BpBinder( 6219): onLastStrongRef automatically unlinking death recipients: 
W/WindowOnBackDispatcher( 6219): sendCancelIfRunning: isInProgress=falsecallback=io.flutter.embedding.android.FlutterActivity$1@a0c9fce
D/DeferrableSurface( 6219): surface closed,  useCount=2 closed=true androidx.camera.core.SurfaceRequest$2@5c10e1d
D/DeferrableSurface( 6219): surface closed,  useCount=0 closed=true androidx.camera.core.processing.SurfaceEdge$SettableSurface@b0a04e1
D/DeferrableSurface( 6219): Surface terminated[total_surfaces=3, used_surfaces=3](androidx.camera.core.processing.SurfaceEdge$SettableSurface@b0a04e1}
D/DeferrableSurface( 6219): use count-1,  useCount=1 closed=true androidx.camera.core.SurfaceRequest$2@5c10e1d
E/BufferQueueProducer( 6219): [SurfaceTexture-0-6219-89](id:184b00000166,api:4,p:452,c:6219) dequeueBuffer: BufferQueue has been abandoned
D/ImageCapture( 6219): clearPipeline
D/DeferrableSurface( 6219): surface closed,  useCount=1 closed=true androidx.camera.core.impl.ImmediateSurface@e9db1bf
D/DeferrableSurface( 6219): surface closed,  useCount=1 closed=true androidx.camera.core.impl.ImmediateSurface@854e3d5
E/BufferQueueProducer( 6219): [SurfaceTexture-0-6219-89](id:184b00000166,api:4,p:452,c:6219) queueBuffer: BufferQueue has been abandoned
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Use cases [androidx.camera.core.Preview-a8afd12a-b3eb-4d80-bd57-50c716ebbbb9161342423, androidx.camera.core.ImageCapture-22641aed-4ff6-4a50-9a51-b443966d0ef4116597474, androidx.camera.core.ImageAnalysis-5e05d8e9-1bc6-4004-a50e-8edb8e44f702127228208] now DETACHED for camera
D/UseCaseAttachState( 6219): All use case: [] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Resetting Capture Session
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Releasing session in state OPENED
D/UseCaseAttachState( 6219): Active and attached use case: [] for camera: 10
D/UseCaseAttachState( 6219): Active and attached use case: [] for camera: 10
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Closing camera.
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Transitioning camera internal state: OPENED --> CLOSING
D/CameraStateRegistry( 6219): Recalculating open cameras:
D/CameraStateRegistry( 6219): Camera                                       State                 
D/CameraStateRegistry( 6219): -------------------------------------------------------------------
D/CameraStateRegistry( 6219): Camera@1a43955[id=10]                        CLOSING               
D/CameraStateRegistry( 6219): Camera@80b0012[id=1]                         UNKNOWN               
D/CameraStateRegistry( 6219): -------------------------------------------------------------------
D/CameraStateRegistry( 6219): Open count: 1 (Max allowed: 1)
D/CameraStateMachine( 6219): New public camera state CameraState{type=CLOSING, error=null} from CLOSING and null
D/CameraStateMachine( 6219): Publishing new public camera state CameraState{type=CLOSING, error=null}
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Resetting Capture Session
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Releasing session in state CLOSING
D/CaptureSession( 6219): onSessionFinished()
E/BufferQueueProducer( 6219): [SurfaceTexture-0-6219-89](id:184b00000166,api:4,p:452,c:6219) queueBuffer: BufferQueue has been abandoned
E/BufferQueueProducer( 6219): [SurfaceTexture-0-6219-89](id:184b00000166,api:4,p:452,c:6219) cancelBuffer: BufferQueue has been abandoned
E/BufferQueueProducer( 6219): [SurfaceTexture-0-6219-89](id:184b00000166,api:4,p:452,c:6219) cancelBuffer: BufferQueue has been abandoned
D/UseCaseAttachState( 6219): Active and attached use case: [] for camera: 10
D/DeferrableSurface( 6219): use count-1,  useCount=0 closed=true androidx.camera.core.SurfaceRequest$2@5c10e1d
D/DeferrableSurface( 6219): Surface no longer in use[total_surfaces=3, used_surfaces=2](androidx.camera.core.SurfaceRequest$2@5c10e1d}
D/DeferrableSurface( 6219): Surface terminated[total_surfaces=2, used_surfaces=2](androidx.camera.core.SurfaceRequest$2@5c10e1d}
D/DeferrableSurface( 6219): use count-1,  useCount=0 closed=true androidx.camera.core.impl.ImmediateSurface@e9db1bf
D/DeferrableSurface( 6219): Surface no longer in use[total_surfaces=2, used_surfaces=1](androidx.camera.core.impl.ImmediateSurface@e9db1bf}
D/DeferrableSurface( 6219): Surface terminated[total_surfaces=1, used_surfaces=1](androidx.camera.core.impl.ImmediateSurface@e9db1bf}
D/DeferrableSurface( 6219): use count-1,  useCount=0 closed=true androidx.camera.core.impl.ImmediateSurface@854e3d5
D/DeferrableSurface( 6219): Surface no longer in use[total_surfaces=1, used_surfaces=0](androidx.camera.core.impl.ImmediateSurface@854e3d5}
D/DeferrableSurface( 6219): Surface terminated[total_surfaces=0, used_surfaces=0](androidx.camera.core.impl.ImmediateSurface@854e3d5}
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} CameraDevice.onClosed()
D/Camera2CameraImpl( 6219): {Camera@1a43955[id=10]} Transitioning camera internal state: CLOSING --> INITIALIZED
D/CameraStateRegistry( 6219): Recalculating open cameras:
D/CameraStateRegistry( 6219): Camera                                       State                 
D/CameraStateRegistry( 6219): -------------------------------------------------------------------
D/CameraStateRegistry( 6219): Camera@1a43955[id=10]                        CLOSED                
D/CameraStateRegistry( 6219): Camera@80b0012[id=1]                         UNKNOWN               
D/CameraStateRegistry( 6219): -------------------------------------------------------------------
D/CameraStateRegistry( 6219): Open count: 0 (Max allowed: 1)
D/CameraStateMachine( 6219): New public camera state CameraState{type=CLOSED, error=null} from CLOSED and null
D/CameraStateMachine( 6219): Publishing new public camera state CameraState{type=CLOSED, error=null}