diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index 5f9c3c2a36c..d90e7f1244e 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.6.19 + +* Ensures a new surface is provided every timethat one is requested to render the camera preview into + to fix pausing and resuming the preview. + ## 0.6.18+3 * Fixes incorrect camera preview mirroring for front cameras of devices using the Impeller backend. diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index 5ebb5fbb739..48d94b65e10 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -121,7 +121,7 @@ public void onSurfaceCleanup() { // Provide surface. surfaceProducer.setSize( request.getResolution().getWidth(), request.getResolution().getHeight()); - Surface flutterSurface = surfaceProducer.getSurface(); + Surface flutterSurface = surfaceProducer.getForcedNewSurface(); request.provideSurface( flutterSurface, Executors.newSingleThreadExecutor(), diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java index 5c3f3578a24..45b6be96375 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java @@ -103,7 +103,7 @@ TextureRegistry getTextureRegistry() { ArgumentCaptor.forClass(TextureRegistry.SurfaceProducer.Callback.class); when(mockSurfaceRequest.getResolution()).thenReturn(new Size(5, 6)); - when(mockSurfaceProducer.getSurface()).thenReturn(mock(Surface.class)); + when(mockSurfaceProducer.getForcedNewSurface()).thenReturn(mock(Surface.class)); final Preview.SurfaceProvider previewSurfaceProvider = api.createSurfaceProvider(mockSurfaceProducer, mockSystemServicesManager); @@ -155,7 +155,7 @@ TextureRegistry getTextureRegistry() { when(mockSurfaceRequest.getResolution()) .thenReturn(new Size(resolutionWidth, resolutionHeight)); - when(mockSurfaceProducer.getSurface()).thenReturn(mockSurface); + when(mockSurfaceProducer.getForcedNewSurface()).thenReturn(mockSurface); final ArgumentCaptor surfaceCaptor = ArgumentCaptor.forClass(Surface.class); final ArgumentCaptor> consumerCaptor = diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 0bf7e8a986a..09d8688b323 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_android_camerax description: Android implementation of the camera plugin using the CameraX library. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android_camerax issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.6.18+3 +version: 0.6.19 environment: sdk: ^3.7.0