7
7
8
8
import android .content .Context ;
9
9
import android .content .res .AssetManager ;
10
- import android .util .SparseArray ;
11
10
import android .view .MotionEvent ;
12
11
import android .view .Surface ;
13
12
import android .view .SurfaceHolder ;
29
28
import io .flutter .embedding .engine .systemchannels .MouseCursorChannel ;
30
29
import io .flutter .embedding .engine .systemchannels .SettingsChannel ;
31
30
import io .flutter .embedding .engine .systemchannels .TextInputChannel ;
32
- import io .flutter .plugin .common .FlutterException ;
33
31
import io .flutter .plugin .common .MethodCall ;
34
- import io .flutter .plugin .common .StandardMessageCodec ;
35
32
import io .flutter .plugin .common .StandardMethodCodec ;
36
33
import io .flutter .plugin .localization .LocalizationPlugin ;
37
34
import java .nio .ByteBuffer ;
@@ -245,29 +242,7 @@ public void getPlatformViewById__hybridComposition() {
245
242
246
243
@ Test
247
244
@ Config (shadows = {ShadowFlutterJNI .class })
248
- public void createPlatformViewMessage__initializesAndroidView () {
249
- PlatformViewsController platformViewsController = new PlatformViewsController ();
250
-
251
- int platformViewId = 0 ;
252
- assertNull (platformViewsController .getPlatformViewById (platformViewId ));
253
-
254
- PlatformViewFactory viewFactory = mock (PlatformViewFactory .class );
255
- PlatformView platformView = mock (PlatformView .class );
256
- when (platformView .getView ()).thenReturn (mock (View .class ));
257
- when (viewFactory .create (any (), eq (platformViewId ), any ())).thenReturn (platformView );
258
- platformViewsController .getRegistry ().registerViewFactory ("testType" , viewFactory );
259
-
260
- FlutterJNI jni = new FlutterJNI ();
261
- attach (jni , platformViewsController );
262
-
263
- // Simulate create call from the framework.
264
- createPlatformView (jni , platformViewsController , platformViewId , "testType" );
265
- verify (platformView , times (1 )).getView ();
266
- }
267
-
268
- @ Test
269
- @ Config (shadows = {ShadowFlutterJNI .class })
270
- public void createPlatformViewMessage__throwsIfViewIsNull () {
245
+ public void initializePlatformViewIfNeeded__throwsIfViewIsNull () {
271
246
PlatformViewsController platformViewsController = new PlatformViewsController ();
272
247
273
248
int platformViewId = 0 ;
@@ -284,28 +259,22 @@ public void createPlatformViewMessage__throwsIfViewIsNull() {
284
259
285
260
// Simulate create call from the framework.
286
261
createPlatformView (jni , platformViewsController , platformViewId , "testType" );
287
- assertEquals (ShadowFlutterJNI .getResponses ().size (), 1 );
288
262
289
- final ByteBuffer responseBuffer = ShadowFlutterJNI .getResponses ().get (0 );
290
- responseBuffer .rewind ();
291
-
292
- StandardMethodCodec methodCodec = new StandardMethodCodec (new StandardMessageCodec ());
293
263
try {
294
- methodCodec .decodeEnvelope (responseBuffer );
295
- } catch (FlutterException exception ) {
296
- assertTrue (
297
- exception
298
- .getMessage ()
299
- .contains (
300
- "PlatformView#getView() returned null, but an Android view reference was expected." ));
264
+ platformViewsController .initializePlatformViewIfNeeded (platformViewId );
265
+ } catch (Exception exception ) {
266
+ assertTrue (exception instanceof IllegalStateException );
267
+ assertEquals (
268
+ exception .getMessage (),
269
+ "PlatformView#getView() returned null, but an Android view reference was expected." );
301
270
return ;
302
271
}
303
- assertFalse ( true );
272
+ assertTrue ( false );
304
273
}
305
274
306
275
@ Test
307
276
@ Config (shadows = {ShadowFlutterJNI .class })
308
- public void createPlatformViewMessage__throwsIfViewHasParent () {
277
+ public void initializePlatformViewIfNeeded__throwsIfViewHasParent () {
309
278
PlatformViewsController platformViewsController = new PlatformViewsController ();
310
279
311
280
int platformViewId = 0 ;
@@ -324,23 +293,16 @@ public void createPlatformViewMessage__throwsIfViewHasParent() {
324
293
325
294
// Simulate create call from the framework.
326
295
createPlatformView (jni , platformViewsController , platformViewId , "testType" );
327
- assertEquals (ShadowFlutterJNI .getResponses ().size (), 1 );
328
-
329
- final ByteBuffer responseBuffer = ShadowFlutterJNI .getResponses ().get (0 );
330
- responseBuffer .rewind ();
331
-
332
- StandardMethodCodec methodCodec = new StandardMethodCodec (new StandardMessageCodec ());
333
296
try {
334
- methodCodec .decodeEnvelope (responseBuffer );
335
- } catch (FlutterException exception ) {
336
- assertTrue (
337
- exception
338
- .getMessage ()
339
- .contains (
340
- "The Android view returned from PlatformView#getView() was already added to a parent view." ));
297
+ platformViewsController .initializePlatformViewIfNeeded (platformViewId );
298
+ } catch (Exception exception ) {
299
+ assertTrue (exception instanceof IllegalStateException );
300
+ assertEquals (
301
+ exception .getMessage (),
302
+ "The Android view returned from PlatformView#getView() was already added to a parent view." );
341
303
return ;
342
304
}
343
- assertFalse ( true );
305
+ assertTrue ( false );
344
306
}
345
307
346
308
@ Test
@@ -519,7 +481,6 @@ public FlutterImageView createImageView() {
519
481
520
482
@ Implements (FlutterJNI .class )
521
483
public static class ShadowFlutterJNI {
522
- private static SparseArray <ByteBuffer > replies = new SparseArray <>();
523
484
524
485
public ShadowFlutterJNI () {}
525
486
@@ -566,13 +527,7 @@ public void setViewportMetrics(
566
527
567
528
@ Implementation
568
529
public void invokePlatformMessageResponseCallback (
569
- int responseId , ByteBuffer message , int position ) {
570
- replies .put (responseId , message );
571
- }
572
-
573
- public static SparseArray <ByteBuffer > getResponses () {
574
- return replies ;
575
- }
530
+ int responseId , ByteBuffer message , int position ) {}
576
531
}
577
532
578
533
@ Implements (SurfaceView .class )
0 commit comments