From 39fbe2cacfeea5cf5d48aa5c043852d50e0fb218 Mon Sep 17 00:00:00 2001 From: Jia Hao Goh Date: Tue, 30 Jun 2020 15:47:01 +0800 Subject: [PATCH 1/2] [e2e] Use SettableFutures instead of CompletableFuture This works better for internal use cases. --- packages/e2e/CHANGELOG.md | 4 ++++ packages/e2e/android/build.gradle | 2 +- .../src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java | 9 ++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/e2e/CHANGELOG.md b/packages/e2e/CHANGELOG.md index 0d349965371b..09bb706e7a64 100644 --- a/packages/e2e/CHANGELOG.md +++ b/packages/e2e/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.0 + +* **Breaking change** `E2EPlugin` exports a `ListenableFuture` for `testResults`. + ## 0.5.0+1 * Fixed the device pixel ratio problem. diff --git a/packages/e2e/android/build.gradle b/packages/e2e/android/build.gradle index ec686f4b4e3d..c7b870890a92 100644 --- a/packages/e2e/android/build.gradle +++ b/packages/e2e/android/build.gradle @@ -33,11 +33,11 @@ android { } dependencies { api 'junit:junit:4.12' - implementation 'net.sourceforge.streamsupport:android-retrofuture:1.7.2' // https://developer.android.com/jetpack/androidx/releases/test/#1.2.0 api 'androidx.test:runner:1.2.0' api 'androidx.test:rules:1.2.0' api 'androidx.test.espresso:espresso-core:3.2.0' + api 'com.google.guava:guava:28.1-android' } } diff --git a/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java b/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java index f6c5b306b5d9..c13c866e49b0 100644 --- a/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java +++ b/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java @@ -5,6 +5,8 @@ package dev.flutter.plugins.e2e; import android.content.Context; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.SettableFuture; import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.MethodCall; @@ -13,13 +15,14 @@ import io.flutter.plugin.common.MethodChannel.Result; import io.flutter.plugin.common.PluginRegistry.Registrar; import java.util.Map; -import java9.util.concurrent.CompletableFuture; /** E2EPlugin */ public class E2EPlugin implements MethodCallHandler, FlutterPlugin { private MethodChannel methodChannel; - public static CompletableFuture> testResults = new CompletableFuture<>(); + private static final SettableFuture> testResultsSettable = + SettableFuture.create(); + public static final ListenableFuture> testResults = testResultsSettable; private static final String CHANNEL = "plugins.flutter.io/e2e"; @@ -49,7 +52,7 @@ public void onDetachedFromEngine(FlutterPluginBinding binding) { public void onMethodCall(MethodCall call, Result result) { if (call.method.equals("allTestsFinished")) { Map results = call.argument("results"); - testResults.complete(results); + testResultsSettable.set(results); result.success(null); } else { result.notImplemented(); From a1c91a45b328e8bca0462e22990cf64ba8561561 Mon Sep 17 00:00:00 2001 From: Jia Hao Goh Date: Tue, 30 Jun 2020 23:45:17 +0800 Subject: [PATCH 2/2] Expose Future instead of ListenableFuture --- packages/e2e/CHANGELOG.md | 2 +- packages/e2e/android/build.gradle | 3 ++- .../src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/e2e/CHANGELOG.md b/packages/e2e/CHANGELOG.md index 09bb706e7a64..ad2f8d3e24f0 100644 --- a/packages/e2e/CHANGELOG.md +++ b/packages/e2e/CHANGELOG.md @@ -1,6 +1,6 @@ ## 0.6.0 -* **Breaking change** `E2EPlugin` exports a `ListenableFuture` for `testResults`. +* **Breaking change** `E2EPlugin` exports a `Future` for `testResults`. ## 0.5.0+1 diff --git a/packages/e2e/android/build.gradle b/packages/e2e/android/build.gradle index c7b870890a92..d0bb6c5a5967 100644 --- a/packages/e2e/android/build.gradle +++ b/packages/e2e/android/build.gradle @@ -38,6 +38,7 @@ android { api 'androidx.test:runner:1.2.0' api 'androidx.test:rules:1.2.0' api 'androidx.test.espresso:espresso-core:3.2.0' - api 'com.google.guava:guava:28.1-android' + + implementation 'com.google.guava:guava:28.1-android' } } diff --git a/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java b/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java index c13c866e49b0..31100d442731 100644 --- a/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java +++ b/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java @@ -5,7 +5,6 @@ package dev.flutter.plugins.e2e; import android.content.Context; -import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.plugin.common.BinaryMessenger; @@ -15,6 +14,7 @@ import io.flutter.plugin.common.MethodChannel.Result; import io.flutter.plugin.common.PluginRegistry.Registrar; import java.util.Map; +import java.util.concurrent.Future; /** E2EPlugin */ public class E2EPlugin implements MethodCallHandler, FlutterPlugin { @@ -22,7 +22,7 @@ public class E2EPlugin implements MethodCallHandler, FlutterPlugin { private static final SettableFuture> testResultsSettable = SettableFuture.create(); - public static final ListenableFuture> testResults = testResultsSettable; + public static final Future> testResults = testResultsSettable; private static final String CHANNEL = "plugins.flutter.io/e2e";