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