From 607d56aa53095b05011fa4ecac8136ba3e66e2ec Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Sun, 4 Oct 2020 11:20:57 +0100 Subject: [PATCH 1/8] Remove unchecked && deprecated Warnings --- packages/espresso/android/build.gradle | 5 +++++ .../test/espresso/flutter/EspressoFlutter.java | 1 + .../espresso/flutter/action/FlutterViewAction.java | 5 +++-- .../flutter/internal/protocol/impl/DartVmService.java | 11 ++++------- .../internal/protocol/impl/DartVmServiceUtil.java | 1 + .../espresso/flutter/matcher/FlutterMatchers.java | 1 + packages/espresso/example/android/settings_aar.gradle | 1 + 7 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 packages/espresso/example/android/settings_aar.gradle diff --git a/packages/espresso/android/build.gradle b/packages/espresso/android/build.gradle index 4af1d3e8b67f..69153f2bc959 100644 --- a/packages/espresso/android/build.gradle +++ b/packages/espresso/android/build.gradle @@ -1,5 +1,6 @@ group 'com.example.espresso' version '1.0' +def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"] buildscript { repositories { @@ -19,6 +20,10 @@ rootProject.allprojects { } } +project.getTasks().withType(JavaCompile){ + options.compilerArgs.addAll(args) +} + apply plugin: 'com.android.library' android { diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/EspressoFlutter.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/EspressoFlutter.java index 106436f2b9ce..6730a66a5406 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/EspressoFlutter.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/EspressoFlutter.java @@ -130,6 +130,7 @@ public WidgetInteraction check(@Nonnull WidgetAssertion assertion) { return this; } + @SuppressWarnings("unchecked") private T performInternal(FlutterAction flutterAction) { checkNotNull( flutterAction, diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java index 7864b43d9ec0..fc554d761db5 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java @@ -32,7 +32,7 @@ import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; import io.flutter.embedding.android.FlutterView; -import io.flutter.view.FlutterNativeView; +import io.flutter.embedding.engine.FlutterJNI; import java.net.URI; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; @@ -105,7 +105,7 @@ public void perform(UiController uiController, View flutterView) { // The url {@code FlutterNativeView} returns is the http url that the Dart VM Observatory http // server serves at. Need to convert to the one that the WebSocket uses. URI dartVmServiceProtocolUrl = - DartVmServiceUtil.getServiceProtocolUri(FlutterNativeView.getObservatoryUri()); + DartVmServiceUtil.getServiceProtocolUri(FlutterJNI.getObservatoryUri()); String isolateId = DartVmServiceUtil.getDartIsolateId(flutterView); final FlutterTestingProtocol flutterTestingProtocol = new DartVmService( @@ -199,6 +199,7 @@ public String getName() { return FlutterViewRenderedIdlingResource.class.getSimpleName(); } + @SuppressWarnings("deprecation") @Override public boolean isIdleNow() { boolean isIdle = false; diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java index da11fcc8c8b6..7f1c5372aa35 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java @@ -30,7 +30,6 @@ import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; @@ -360,14 +359,12 @@ boolean isTestingApiRegistered(JsonRpcResponse isolateInfoResp) { isolateId, isolateInfoResp.getError())); return false; } - Iterator extensions = - isolateInfoResp.getResult().get(EXTENSION_RPCS_TAG).getAsJsonArray().iterator(); - while (extensions.hasNext()) { - String extensionApi = extensions.next().getAsString(); + for (JsonElement jsonElement : isolateInfoResp.getResult().get(EXTENSION_RPCS_TAG).getAsJsonArray()) { + String extensionApi = jsonElement.getAsString(); if (TESTING_EXTENSION_METHOD.equals(extensionApi)) { Log.d( - TAG, - String.format("Flutter testing API registered with Dart isolate %s.", isolateId)); + TAG, + String.format("Flutter testing API registered with Dart isolate %s.", isolateId)); return true; } } diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java index 2cf41f1f87a7..a943194e348e 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java @@ -71,6 +71,7 @@ public static String getDartIsolateId(View flutterView) { } /** Gets the Dart executor for the given {@code flutterView}. */ + @SuppressWarnings("deprecation") public static DartExecutor getDartExecutor(View flutterView) { checkNotNull(flutterView, "The Flutter View instance cannot be null."); // Flutter's embedding is in the phase of rewriting/refactoring. Let's be compatible with both diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java index 5a272f24bdc0..f867b7dcbed4 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java @@ -96,6 +96,7 @@ public void describeTo(Description description) { description.appendText("is a FlutterView"); } + @SuppressWarnings("deprecation") @Override public boolean matchesSafely(View flutterView) { return flutterView instanceof FlutterView diff --git a/packages/espresso/example/android/settings_aar.gradle b/packages/espresso/example/android/settings_aar.gradle new file mode 100644 index 000000000000..e7b4def49cb5 --- /dev/null +++ b/packages/espresso/example/android/settings_aar.gradle @@ -0,0 +1 @@ +include ':app' From 13846a8238b06b62b7fd654ef4de43985e8922ea Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Sun, 4 Oct 2020 11:23:19 +0100 Subject: [PATCH 2/8] Remove settings_aar.gradle --- packages/espresso/example/android/settings_aar.gradle | 1 - 1 file changed, 1 deletion(-) delete mode 100644 packages/espresso/example/android/settings_aar.gradle diff --git a/packages/espresso/example/android/settings_aar.gradle b/packages/espresso/example/android/settings_aar.gradle deleted file mode 100644 index e7b4def49cb5..000000000000 --- a/packages/espresso/example/android/settings_aar.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' From 124fa7ee75b9c1992d0e069b67a56d8e80fb79d1 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Sun, 4 Oct 2020 11:26:57 +0100 Subject: [PATCH 3/8] Update CHANGELOG.md --- packages/espresso/CHANGELOG.md | 4 ++++ packages/espresso/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/espresso/CHANGELOG.md b/packages/espresso/CHANGELOG.md index edc6bd6d2ba1..c5f4a441298c 100644 --- a/packages/espresso/CHANGELOG.md +++ b/packages/espresso/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.1+7 + +* Android: Handle deprecation & unchecked warning as error. + ## 0.0.1+6 * Keep handling deprecated Android v1 classes for backward compatibility. diff --git a/packages/espresso/pubspec.yaml b/packages/espresso/pubspec.yaml index 6eb371337e01..fe284260b73c 100644 --- a/packages/espresso/pubspec.yaml +++ b/packages/espresso/pubspec.yaml @@ -1,6 +1,6 @@ name: espresso description: Java classes for testing Flutter apps using Espresso. -version: 0.0.1+6 +version: 0.0.1+7 homepage: https://github.com/flutter/plugins/espresso environment: From 97b6e81ee7ff571366003b3c0cc9d26d19a345ad Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Sun, 4 Oct 2020 11:30:07 +0100 Subject: [PATCH 4/8] Fix Format --- .../flutter/internal/protocol/impl/DartVmService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java index 7f1c5372aa35..ca6a8addce22 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java @@ -363,8 +363,8 @@ boolean isTestingApiRegistered(JsonRpcResponse isolateInfoResp) { String extensionApi = jsonElement.getAsString(); if (TESTING_EXTENSION_METHOD.equals(extensionApi)) { Log.d( - TAG, - String.format("Flutter testing API registered with Dart isolate %s.", isolateId)); + TAG, + String.format("Flutter testing API registered with Dart isolate %s.", isolateId)); return true; } } From 8ce4f591e23f13195cf3bcbf473f33bec2558f52 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Sun, 4 Oct 2020 11:43:27 +0100 Subject: [PATCH 5/8] Fix Format --- .../espresso/flutter/internal/protocol/impl/DartVmService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java index ca6a8addce22..c6ec0e08b03a 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java @@ -359,7 +359,8 @@ boolean isTestingApiRegistered(JsonRpcResponse isolateInfoResp) { isolateId, isolateInfoResp.getError())); return false; } - for (JsonElement jsonElement : isolateInfoResp.getResult().get(EXTENSION_RPCS_TAG).getAsJsonArray()) { + for (JsonElement jsonElement : + isolateInfoResp.getResult().get(EXTENSION_RPCS_TAG).getAsJsonArray()) { String extensionApi = jsonElement.getAsString(); if (TESTING_EXTENSION_METHOD.equals(extensionApi)) { Log.d( From 842eac5dc2ab52a78bfa99ab0de53d736b009090 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Mon, 12 Oct 2020 13:55:19 +0100 Subject: [PATCH 6/8] espresso --- packages/espresso/android/build.gradle | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/espresso/android/build.gradle b/packages/espresso/android/build.gradle index 69153f2bc959..4af1d3e8b67f 100644 --- a/packages/espresso/android/build.gradle +++ b/packages/espresso/android/build.gradle @@ -1,6 +1,5 @@ group 'com.example.espresso' version '1.0' -def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"] buildscript { repositories { @@ -20,10 +19,6 @@ rootProject.allprojects { } } -project.getTasks().withType(JavaCompile){ - options.compilerArgs.addAll(args) -} - apply plugin: 'com.android.library' android { From d0dc85a2da5b710d18a17967b4a9934507bcf587 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Wed, 2 Dec 2020 15:57:38 +0100 Subject: [PATCH 7/8] Format --- .../test/espresso/flutter/action/FlutterViewAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java index b80f38f21679..a3f246f54cba 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java @@ -205,7 +205,7 @@ public boolean isIdleNow() { if (flutterView instanceof FlutterView) { isIdle = ((FlutterView) flutterView).hasRenderedFirstFrame(); } else //noinspection deprecation - if (flutterView instanceof io.flutter.view.FlutterView) { + if (flutterView instanceof io.flutter.view.FlutterView) { //noinspection deprecation isIdle = ((io.flutter.view.FlutterView) flutterView).hasRenderedFirstFrame(); } else { From 68ca9c3a60d4f8c60c68946056c65261248953e3 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Thu, 3 Dec 2020 09:25:31 +0100 Subject: [PATCH 8/8] SuppressWarnings --- .../test/espresso/flutter/action/FlutterViewAction.java | 5 ++--- .../flutter/internal/protocol/impl/DartVmServiceUtil.java | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java index a3f246f54cba..fc554d761db5 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java @@ -199,14 +199,13 @@ public String getName() { return FlutterViewRenderedIdlingResource.class.getSimpleName(); } + @SuppressWarnings("deprecation") @Override public boolean isIdleNow() { boolean isIdle = false; if (flutterView instanceof FlutterView) { isIdle = ((FlutterView) flutterView).hasRenderedFirstFrame(); - } else //noinspection deprecation - if (flutterView instanceof io.flutter.view.FlutterView) { - //noinspection deprecation + } else if (flutterView instanceof io.flutter.view.FlutterView) { isIdle = ((io.flutter.view.FlutterView) flutterView).hasRenderedFirstFrame(); } else { throw new FlutterProtocolException( diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java index 68b7bfb81436..a943194e348e 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java @@ -71,13 +71,12 @@ public static String getDartIsolateId(View flutterView) { } /** Gets the Dart executor for the given {@code flutterView}. */ + @SuppressWarnings("deprecation") public static DartExecutor getDartExecutor(View flutterView) { checkNotNull(flutterView, "The Flutter View instance cannot be null."); // Flutter's embedding is in the phase of rewriting/refactoring. Let's be compatible with both // the old and the new FlutterView classes. - //noinspection deprecation if (flutterView instanceof io.flutter.view.FlutterView) { - //noinspection deprecation return ((io.flutter.view.FlutterView) flutterView).getDartExecutor(); } else if (flutterView instanceof io.flutter.embedding.android.FlutterView) { FlutterEngine flutterEngine =