|
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