From 8b5fcd1c52568efc943b392ec3c58557cb3ff1e6 Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Wed, 14 Feb 2024 17:09:59 -0800 Subject: [PATCH] Use modern concurrency constructs. --- .../scenarios/TestableFlutterActivity.java | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestableFlutterActivity.java b/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestableFlutterActivity.java index e1a1c98735523..69c9dd0260353 100644 --- a/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestableFlutterActivity.java +++ b/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestableFlutterActivity.java @@ -10,11 +10,10 @@ import androidx.annotation.Nullable; import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; -import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.CountDownLatch; public abstract class TestableFlutterActivity extends FlutterActivity { - private Object flutterUiRenderedLock = new Object(); - private AtomicBoolean isScenarioReady = new AtomicBoolean(false); + private final CountDownLatch flutterUiRenderedLatch = new CountDownLatch(1); @Override public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { @@ -40,22 +39,12 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { } protected void notifyFlutterRendered() { - synchronized (flutterUiRenderedLock) { - isScenarioReady.set(true); - flutterUiRenderedLock.notifyAll(); - } + flutterUiRenderedLatch.countDown(); } public void waitUntilFlutterRendered() { try { - if (isScenarioReady.get()) { - return; - } - synchronized (flutterUiRenderedLock) { - flutterUiRenderedLock.wait(); - } - // Reset the lock. - flutterUiRenderedLock = new Object(); + flutterUiRenderedLatch.await(); } catch (InterruptedException e) { throw new RuntimeException(e); }