From bc22e710b846915ce5b729682a6cb2be3ff81480 Mon Sep 17 00:00:00 2001 From: Emmanuel Garcia Date: Fri, 5 Mar 2021 20:01:27 -0800 Subject: [PATCH] Prevent race condition while switching surfaces --- .../io/flutter/embedding/android/FlutterImageView.java | 3 --- .../android/io/flutter/embedding/android/FlutterView.java | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/shell/platform/android/io/flutter/embedding/android/FlutterImageView.java b/shell/platform/android/io/flutter/embedding/android/FlutterImageView.java index 3dee0cd230f83..e08a1629dd917 100644 --- a/shell/platform/android/io/flutter/embedding/android/FlutterImageView.java +++ b/shell/platform/android/io/flutter/embedding/android/FlutterImageView.java @@ -118,9 +118,6 @@ public FlutterRenderer getAttachedRenderer() { */ @Override public void attachToRenderer(@NonNull FlutterRenderer flutterRenderer) { - if (isAttachedToFlutterRenderer) { - return; - } switch (kind) { case background: flutterRenderer.swapSurface(imageReader.getSurface()); diff --git a/shell/platform/android/io/flutter/embedding/android/FlutterView.java b/shell/platform/android/io/flutter/embedding/android/FlutterView.java index 2b886bc9c2475..ea02a08fd23b8 100644 --- a/shell/platform/android/io/flutter/embedding/android/FlutterView.java +++ b/shell/platform/android/io/flutter/embedding/android/FlutterView.java @@ -1068,7 +1068,9 @@ public void revertImageView(@NonNull Runnable onDone) { public void onFlutterUiDisplayed() { renderer.removeIsDisplayingFlutterUiListener(this); onDone.run(); - flutterImageView.detachFromRenderer(); + if (!(renderSurface instanceof FlutterImageView)) { + flutterImageView.detachFromRenderer(); + } } @Override