|
13 | 13 | import static org.mockito.Mockito.verify; |
14 | 14 | import static org.mockito.Mockito.when; |
15 | 15 |
|
| 16 | +import android.graphics.SurfaceTexture; |
16 | 17 | import android.util.Size; |
17 | 18 | import android.view.Surface; |
18 | 19 | import androidx.camera.core.Preview; |
@@ -85,60 +86,59 @@ public void create_createsPreviewWithCorrectConfiguration() { |
85 | 86 | public void setSurfaceProviderTest_createsSurfaceProviderAndReturnsTextureEntryId() { |
86 | 87 | final PreviewHostApiImpl previewHostApi = |
87 | 88 | spy(new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry)); |
88 | | - final TextureRegistry.SurfaceProducer mockSurfaceProducer = |
89 | | - mock(TextureRegistry.SurfaceProducer.class); |
| 89 | + final TextureRegistry.SurfaceTextureEntry mockSurfaceTextureEntry = |
| 90 | + mock(TextureRegistry.SurfaceTextureEntry.class); |
| 91 | + final SurfaceTexture mockSurfaceTexture = mock(SurfaceTexture.class); |
90 | 92 | final Long previewIdentifier = 5L; |
91 | | - final Long surfaceProducerEntryId = 120L; |
| 93 | + final Long surfaceTextureEntryId = 120L; |
92 | 94 |
|
93 | 95 | previewHostApi.cameraXProxy = mockCameraXProxy; |
94 | 96 | testInstanceManager.addDartCreatedInstance(mockPreview, previewIdentifier); |
95 | 97 |
|
96 | | - when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); |
97 | | - when(mockSurfaceProducer.id()).thenReturn(surfaceProducerEntryId); |
| 98 | + when(mockTextureRegistry.createSurfaceTexture()).thenReturn(mockSurfaceTextureEntry); |
| 99 | + when(mockSurfaceTextureEntry.surfaceTexture()).thenReturn(mockSurfaceTexture); |
| 100 | + when(mockSurfaceTextureEntry.id()).thenReturn(surfaceTextureEntryId); |
98 | 101 |
|
99 | 102 | final ArgumentCaptor<Preview.SurfaceProvider> surfaceProviderCaptor = |
100 | 103 | ArgumentCaptor.forClass(Preview.SurfaceProvider.class); |
| 104 | + final ArgumentCaptor<Surface> surfaceCaptor = ArgumentCaptor.forClass(Surface.class); |
101 | 105 |
|
102 | 106 | // Test that surface provider was set and the surface texture ID was returned. |
103 | | - assertEquals(previewHostApi.setSurfaceProvider(previewIdentifier), surfaceProducerEntryId); |
| 107 | + assertEquals(previewHostApi.setSurfaceProvider(previewIdentifier), surfaceTextureEntryId); |
104 | 108 | verify(mockPreview).setSurfaceProvider(surfaceProviderCaptor.capture()); |
105 | | - verify(previewHostApi).createSurfaceProvider(mockSurfaceProducer); |
| 109 | + verify(previewHostApi).createSurfaceProvider(mockSurfaceTexture); |
106 | 110 | } |
107 | 111 |
|
108 | 112 | @Test |
109 | 113 | public void createSurfaceProvider_createsExpectedPreviewSurfaceProvider() { |
110 | 114 | final PreviewHostApiImpl previewHostApi = |
111 | 115 | new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); |
112 | | - final TextureRegistry.SurfaceProducer mockSurfaceProducer = |
113 | | - mock(TextureRegistry.SurfaceProducer.class); |
| 116 | + final SurfaceTexture mockSurfaceTexture = mock(SurfaceTexture.class); |
114 | 117 | final Surface mockSurface = mock(Surface.class); |
115 | 118 | final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); |
116 | 119 | final SurfaceRequest.Result mockSurfaceRequestResult = mock(SurfaceRequest.Result.class); |
117 | 120 | final SystemServicesFlutterApiImpl mockSystemServicesFlutterApi = |
118 | 121 | mock(SystemServicesFlutterApiImpl.class); |
119 | 122 | final int resolutionWidth = 200; |
120 | 123 | final int resolutionHeight = 500; |
121 | | - final Long surfaceProducerEntryId = 120L; |
122 | 124 |
|
123 | 125 | previewHostApi.cameraXProxy = mockCameraXProxy; |
| 126 | + when(mockCameraXProxy.createSurface(mockSurfaceTexture)).thenReturn(mockSurface); |
124 | 127 | when(mockSurfaceRequest.getResolution()) |
125 | 128 | .thenReturn(new Size(resolutionWidth, resolutionHeight)); |
126 | 129 | when(mockCameraXProxy.createSystemServicesFlutterApiImpl(mockBinaryMessenger)) |
127 | 130 | .thenReturn(mockSystemServicesFlutterApi); |
128 | | - when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); |
129 | | - when(mockSurfaceProducer.id()).thenReturn(surfaceProducerEntryId); |
130 | | - when(mockSurfaceProducer.getSurface()).thenReturn(mockSurface); |
131 | 131 |
|
132 | 132 | final ArgumentCaptor<Surface> surfaceCaptor = ArgumentCaptor.forClass(Surface.class); |
133 | 133 | @SuppressWarnings("unchecked") |
134 | 134 | final ArgumentCaptor<Consumer<SurfaceRequest.Result>> consumerCaptor = |
135 | 135 | ArgumentCaptor.forClass(Consumer.class); |
136 | 136 |
|
137 | 137 | Preview.SurfaceProvider previewSurfaceProvider = |
138 | | - previewHostApi.createSurfaceProvider(mockSurfaceProducer); |
| 138 | + previewHostApi.createSurfaceProvider(mockSurfaceTexture); |
139 | 139 | previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); |
140 | 140 |
|
141 | | - verify(mockSurfaceProducer).setSize(resolutionWidth, resolutionHeight); |
| 141 | + verify(mockSurfaceTexture).setDefaultBufferSize(resolutionWidth, resolutionHeight); |
142 | 142 | verify(mockSurfaceRequest) |
143 | 143 | .provideSurface(surfaceCaptor.capture(), any(Executor.class), consumerCaptor.capture()); |
144 | 144 |
|
@@ -189,13 +189,13 @@ public void createSurfaceProvider_createsExpectedPreviewSurfaceProvider() { |
189 | 189 | public void releaseFlutterSurfaceTexture_makesCallToReleaseFlutterSurfaceTexture() { |
190 | 190 | final PreviewHostApiImpl previewHostApi = |
191 | 191 | new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); |
192 | | - final TextureRegistry.SurfaceProducer mockSurfaceProducer = |
193 | | - mock(TextureRegistry.SurfaceProducer.class); |
| 192 | + final TextureRegistry.SurfaceTextureEntry mockSurfaceTextureEntry = |
| 193 | + mock(TextureRegistry.SurfaceTextureEntry.class); |
194 | 194 |
|
195 | | - previewHostApi.flutterSurfaceProducer = mockSurfaceProducer; |
| 195 | + previewHostApi.flutterSurfaceTexture = mockSurfaceTextureEntry; |
196 | 196 |
|
197 | 197 | previewHostApi.releaseFlutterSurfaceTexture(); |
198 | | - verify(mockSurfaceProducer).release(); |
| 198 | + verify(mockSurfaceTextureEntry).release(); |
199 | 199 | } |
200 | 200 |
|
201 | 201 | @Test |
|
0 commit comments