From ba9d448915d218cfef4acb3767f9858a5242bfd4 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Thu, 17 Oct 2019 22:07:05 -0700 Subject: [PATCH 1/3] Revert "[Connectivity] migrate to the new android embedding (#2142)" This reverts commit 67697abaf9ccdf0b09cf571c4cf9cf4ea3633a7c. --- packages/connectivity/CHANGELOG.md | 4 - packages/connectivity/android/build.gradle | 25 --- .../plugins/connectivity/Connectivity.java | 110 ----------- .../ConnectivityBroadcastReceiver.java | 51 ----- .../ConnectivityMethodChannelHandler.java | 49 ----- .../connectivity/ConnectivityPlugin.java | 186 +++++++++++++++--- .../android/app/src/main/AndroidManifest.xml | 18 +- .../MainActivity.java} | 2 +- .../EmbeddingV1ActivityTest.java | 17 -- .../connectivityexample/MainActivity.java | 18 -- .../connectivityexample/MainActivityTest.java | 15 -- .../example/android/gradle.properties | 3 - packages/connectivity/example/pubspec.yaml | 1 - .../test_driver/connectivity.dart} | 16 +- .../test_driver/connectivity_test.dart | 10 + .../test/connectivity_e2e_test.dart | 14 -- packages/connectivity/pubspec.yaml | 5 +- 17 files changed, 182 insertions(+), 362 deletions(-) delete mode 100644 packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/Connectivity.java delete mode 100644 packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityBroadcastReceiver.java delete mode 100644 packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityMethodChannelHandler.java rename packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/{connectivityexample/EmbeddingV1Activity.java => connectivity_example/MainActivity.java} (89%) delete mode 100644 packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/EmbeddingV1ActivityTest.java delete mode 100644 packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/MainActivity.java delete mode 100644 packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/MainActivityTest.java rename packages/connectivity/{test/connectivity_e2e.dart => example/test_driver/connectivity.dart} (68%) create mode 100644 packages/connectivity/example/test_driver/connectivity_test.dart delete mode 100644 packages/connectivity/example/test_driver/test/connectivity_e2e_test.dart diff --git a/packages/connectivity/CHANGELOG.md b/packages/connectivity/CHANGELOG.md index 6b1b3780c4c2..b52e629fd516 100644 --- a/packages/connectivity/CHANGELOG.md +++ b/packages/connectivity/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.4.5 - -* Support the v2 Android embedder. - ## 0.4.4+1 * Update and migrate iOS example project. diff --git a/packages/connectivity/android/build.gradle b/packages/connectivity/android/build.gradle index 3012844d8778..681eb0438b75 100644 --- a/packages/connectivity/android/build.gradle +++ b/packages/connectivity/android/build.gradle @@ -45,28 +45,3 @@ android { disable 'InvalidPackage' } } - -// TODO(amirh): Remove this hack once androidx.lifecycle is included on stable. https://github.com/flutter/flutter/issues/42348 -afterEvaluate { - def containsEmbeddingDependencies = false - for (def configuration : configurations.all) { - for (def dependency : configuration.dependencies) { - if (dependency.group == 'io.flutter' && - dependency.name.startsWith('flutter_embedding') && - dependency.isTransitive()) - { - containsEmbeddingDependencies = true - break - } - } - } - if (!containsEmbeddingDependencies) { - android { - dependencies { - def lifecycle_version = "2.1.0" - api "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" - api "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" - } - } - } -} diff --git a/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/Connectivity.java b/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/Connectivity.java deleted file mode 100644 index 605acdb73948..000000000000 --- a/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/Connectivity.java +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.connectivity; - -import android.net.ConnectivityManager; -import android.net.Network; -import android.net.NetworkCapabilities; -import android.net.NetworkInfo; -import android.net.wifi.WifiInfo; -import android.net.wifi.WifiManager; -import android.os.Build; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** Reports connectivity related information such as connectivity type and wifi information. */ -class Connectivity { - private ConnectivityManager connectivityManager; - private WifiManager wifiManager; - - Connectivity(ConnectivityManager connectivityManager, WifiManager wifiManager) { - this.connectivityManager = connectivityManager; - this.wifiManager = wifiManager; - } - - @NonNull - String getNetworkType() { - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - Network network = connectivityManager.getActiveNetwork(); - NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network); - if (capabilities == null) { - return "none"; - } - if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) - || capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) { - return "wifi"; - } - if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { - return "mobile"; - } - } - - return getNetworkTypeLegacy(); - } - - @Nullable - String getWifiName() { - WifiInfo wifiInfo = getWifiInfo(); - String ssid = null; - if (wifiInfo != null) ssid = wifiInfo.getSSID(); - if (ssid != null) ssid = ssid.replaceAll("\"", ""); // Android returns "SSID" - return ssid; - } - - @Nullable - String getWifiBSSID() { - WifiInfo wifiInfo = getWifiInfo(); - String bssid = null; - if (wifiInfo != null) { - bssid = wifiInfo.getBSSID(); - } - return bssid; - } - - @Nullable - String getWifiIPAddress() { - WifiInfo wifiInfo = null; - if (wifiManager != null) wifiInfo = wifiManager.getConnectionInfo(); - - String ip = null; - int i_ip = 0; - if (wifiInfo != null) i_ip = wifiInfo.getIpAddress(); - - if (i_ip != 0) - ip = - String.format( - "%d.%d.%d.%d", - (i_ip & 0xff), (i_ip >> 8 & 0xff), (i_ip >> 16 & 0xff), (i_ip >> 24 & 0xff)); - - return ip; - } - - @Nullable - private WifiInfo getWifiInfo() { - return wifiManager == null ? null : wifiManager.getConnectionInfo(); - } - - @SuppressWarnings("deprecation") - private String getNetworkTypeLegacy() { - // handle type for Android versions less than Android 9 - NetworkInfo info = connectivityManager.getActiveNetworkInfo(); - if (info == null || !info.isConnected()) { - return "none"; - } - int type = info.getType(); - switch (type) { - case ConnectivityManager.TYPE_ETHERNET: - case ConnectivityManager.TYPE_WIFI: - case ConnectivityManager.TYPE_WIMAX: - return "wifi"; - case ConnectivityManager.TYPE_MOBILE: - case ConnectivityManager.TYPE_MOBILE_DUN: - case ConnectivityManager.TYPE_MOBILE_HIPRI: - return "mobile"; - default: - return "none"; - } - } -} diff --git a/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityBroadcastReceiver.java b/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityBroadcastReceiver.java deleted file mode 100644 index d046eceb0fa6..000000000000 --- a/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityBroadcastReceiver.java +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.connectivity; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.net.ConnectivityManager; -import androidx.annotation.NonNull; -import io.flutter.plugin.common.EventChannel; - -/** - * The ConnectivityBroadcastReceiver receives the connectivity updates and send them to the UIThread - * through an {@link EventChannel.EventSink} - * - *

Use {@link - * io.flutter.plugin.common.EventChannel#setStreamHandler(io.flutter.plugin.common.EventChannel.StreamHandler)} - * to set up the receiver. - */ -class ConnectivityBroadcastReceiver extends BroadcastReceiver - implements EventChannel.StreamHandler { - private Context context; - private Connectivity connectivity; - private EventChannel.EventSink events; - - ConnectivityBroadcastReceiver(@NonNull Context context, @NonNull Connectivity connectivity) { - this.context = context; - this.connectivity = connectivity; - } - - @Override - public void onListen(Object arguments, EventChannel.EventSink events) { - this.events = events; - context.registerReceiver(this, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); - } - - @Override - public void onCancel(Object arguments) { - context.unregisterReceiver(this); - } - - @Override - public void onReceive(Context context, Intent intent) { - if (events != null) { - events.success(connectivity.getNetworkType()); - } - } -} diff --git a/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityMethodChannelHandler.java b/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityMethodChannelHandler.java deleted file mode 100644 index 488c8efdd15f..000000000000 --- a/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityMethodChannelHandler.java +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.connectivity; - -import androidx.annotation.NonNull; -import io.flutter.plugin.common.MethodCall; -import io.flutter.plugin.common.MethodChannel; - -/** - * The handler receives {@link MethodCall}s from the UIThread, gets the related information from - * a @{@link Connectivity}, and then send the result back to the UIThread through the {@link - * MethodChannel.Result}. - */ -class ConnectivityMethodChannelHandler implements MethodChannel.MethodCallHandler { - - private Connectivity connectivity; - - /** - * Construct the ConnectivityMethodChannelHandler with a {@code connectivity}. The {@code - * connectivity} must not be null. - */ - ConnectivityMethodChannelHandler(@NonNull Connectivity connectivity) { - assert (connectivity != null); - this.connectivity = connectivity; - } - - @Override - public void onMethodCall(MethodCall call, MethodChannel.Result result) { - switch (call.method) { - case "check": - result.success(connectivity.getNetworkType()); - break; - case "wifiName": - result.success(connectivity.getWifiName()); - break; - case "wifiBSSID": - result.success(connectivity.getWifiBSSID()); - break; - case "wifiIPAddress": - result.success(connectivity.getWifiIPAddress()); - break; - default: - result.notImplemented(); - break; - } - } -} diff --git a/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityPlugin.java b/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityPlugin.java index ef8f7861d8e0..dac720b0450c 100644 --- a/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityPlugin.java +++ b/packages/connectivity/android/src/main/java/io/flutter/plugins/connectivity/ConnectivityPlugin.java @@ -4,60 +4,186 @@ package io.flutter.plugins.connectivity; +import android.content.BroadcastReceiver; import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.net.ConnectivityManager; +import android.net.Network; +import android.net.NetworkCapabilities; +import android.net.NetworkInfo; +import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; -import io.flutter.embedding.engine.plugins.FlutterPlugin; -import io.flutter.plugin.common.BinaryMessenger; +import android.os.Build; import io.flutter.plugin.common.EventChannel; +import io.flutter.plugin.common.EventChannel.EventSink; +import io.flutter.plugin.common.EventChannel.StreamHandler; +import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; +import io.flutter.plugin.common.MethodChannel.MethodCallHandler; +import io.flutter.plugin.common.MethodChannel.Result; import io.flutter.plugin.common.PluginRegistry.Registrar; /** ConnectivityPlugin */ -public class ConnectivityPlugin implements FlutterPlugin { - - private MethodChannel methodChannel; - private EventChannel eventChannel; +public class ConnectivityPlugin implements MethodCallHandler, StreamHandler { + private final Registrar registrar; + private final ConnectivityManager manager; + private BroadcastReceiver receiver; /** Plugin registration. */ public static void registerWith(Registrar registrar) { + final MethodChannel channel = + new MethodChannel(registrar.messenger(), "plugins.flutter.io/connectivity"); + final EventChannel eventChannel = + new EventChannel(registrar.messenger(), "plugins.flutter.io/connectivity_status"); + ConnectivityPlugin instance = new ConnectivityPlugin(registrar); + channel.setMethodCallHandler(instance); + eventChannel.setStreamHandler(instance); + } - ConnectivityPlugin plugin = new ConnectivityPlugin(); - plugin.setupChannels(registrar.messenger(), registrar.context()); + private ConnectivityPlugin(Registrar registrar) { + this.registrar = registrar; + this.manager = + (ConnectivityManager) + registrar + .context() + .getApplicationContext() + .getSystemService(Context.CONNECTIVITY_SERVICE); } @Override - public void onAttachedToEngine(FlutterPluginBinding binding) { - setupChannels(binding.getFlutterEngine().getDartExecutor(), binding.getApplicationContext()); + public void onListen(Object arguments, EventSink events) { + receiver = createReceiver(events); + registrar + .context() + .registerReceiver(receiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); } @Override - public void onDetachedFromEngine(FlutterPluginBinding binding) { - teardownChannels(); + public void onCancel(Object arguments) { + registrar.context().unregisterReceiver(receiver); + receiver = null; + } + + private String getNetworkType(ConnectivityManager manager) { + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + Network network = manager.getActiveNetwork(); + NetworkCapabilities capabilities = manager.getNetworkCapabilities(network); + if (capabilities == null) { + return "none"; + } + if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) + || capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) { + return "wifi"; + } + if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { + return "mobile"; + } + } + + return getNetworkTypeLegacy(manager); } - private void setupChannels(BinaryMessenger messenger, Context context) { - methodChannel = new MethodChannel(messenger, "plugins.flutter.io/connectivity"); - eventChannel = new EventChannel(messenger, "plugins.flutter.io/connectivity_status"); - ConnectivityManager connectivityManager = - (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + @SuppressWarnings("deprecation") + private String getNetworkTypeLegacy(ConnectivityManager manager) { + // handle type for Android versions less than Android 9 + NetworkInfo info = manager.getActiveNetworkInfo(); + if (info == null || !info.isConnected()) { + return "none"; + } + int type = info.getType(); + switch (type) { + case ConnectivityManager.TYPE_ETHERNET: + case ConnectivityManager.TYPE_WIFI: + case ConnectivityManager.TYPE_WIMAX: + return "wifi"; + case ConnectivityManager.TYPE_MOBILE: + case ConnectivityManager.TYPE_MOBILE_DUN: + case ConnectivityManager.TYPE_MOBILE_HIPRI: + return "mobile"; + default: + return "none"; + } + } + + @Override + public void onMethodCall(MethodCall call, Result result) { + switch (call.method) { + case "check": + handleCheck(call, result); + break; + case "wifiName": + handleWifiName(call, result); + break; + case "wifiBSSID": + handleBSSID(call, result); + break; + case "wifiIPAddress": + handleWifiIPAddress(call, result); + break; + default: + result.notImplemented(); + break; + } + } + + private void handleCheck(MethodCall call, final Result result) { + result.success(checkNetworkType()); + } + + private String checkNetworkType() { + return getNetworkType(manager); + } + + private WifiInfo getWifiInfo() { + WifiManager wifiManager = + (WifiManager) + registrar.context().getApplicationContext().getSystemService(Context.WIFI_SERVICE); + return wifiManager == null ? null : wifiManager.getConnectionInfo(); + } + + private void handleWifiName(MethodCall call, final Result result) { + WifiInfo wifiInfo = getWifiInfo(); + String ssid = null; + if (wifiInfo != null) ssid = wifiInfo.getSSID(); + if (ssid != null) ssid = ssid.replaceAll("\"", ""); // Android returns "SSID" + result.success(ssid); + } + + private void handleBSSID(MethodCall call, MethodChannel.Result result) { + WifiInfo wifiInfo = getWifiInfo(); + String bssid = null; + if (wifiInfo != null) bssid = wifiInfo.getBSSID(); + result.success(bssid); + } + + private void handleWifiIPAddress(MethodCall call, final Result result) { + WifiManager wifiManager = + (WifiManager) + registrar.context().getApplicationContext().getSystemService(Context.WIFI_SERVICE); + + WifiInfo wifiInfo = null; + if (wifiManager != null) wifiInfo = wifiManager.getConnectionInfo(); - Connectivity connectivity = new Connectivity(connectivityManager, wifiManager); + String ip = null; + int i_ip = 0; + if (wifiInfo != null) i_ip = wifiInfo.getIpAddress(); - ConnectivityMethodChannelHandler methodChannelHandler = - new ConnectivityMethodChannelHandler(connectivity); - ConnectivityBroadcastReceiver receiver = - new ConnectivityBroadcastReceiver(context, connectivity); + if (i_ip != 0) + ip = + String.format( + "%d.%d.%d.%d", + (i_ip & 0xff), (i_ip >> 8 & 0xff), (i_ip >> 16 & 0xff), (i_ip >> 24 & 0xff)); - methodChannel.setMethodCallHandler(methodChannelHandler); - eventChannel.setStreamHandler(receiver); + result.success(ip); } - private void teardownChannels() { - methodChannel.setMethodCallHandler(null); - eventChannel.setStreamHandler(null); - methodChannel = null; - eventChannel = null; + private BroadcastReceiver createReceiver(final EventSink events) { + return new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + events.success(checkNetworkType()); + } + }; } } diff --git a/packages/connectivity/example/android/app/src/main/AndroidManifest.xml b/packages/connectivity/example/android/app/src/main/AndroidManifest.xml index 3bf2ca03bc33..bf36efe1a689 100644 --- a/packages/connectivity/example/android/app/src/main/AndroidManifest.xml +++ b/packages/connectivity/example/android/app/src/main/AndroidManifest.xml @@ -4,20 +4,12 @@ - - - + android:launchMode="singleTop" + android:theme="@android:style/Theme.Black.NoTitleBar" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection" + android:hardwareAccelerated="true" + android:windowSoftInputMode="adjustResize"> diff --git a/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/EmbeddingV1Activity.java b/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivity_example/MainActivity.java similarity index 89% rename from packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/EmbeddingV1Activity.java rename to packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivity_example/MainActivity.java index 587b623c049d..6d76bcc24ac5 100644 --- a/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/EmbeddingV1Activity.java +++ b/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivity_example/MainActivity.java @@ -8,7 +8,7 @@ import io.flutter.app.FlutterActivity; import io.flutter.plugins.GeneratedPluginRegistrant; -public class EmbeddingV1Activity extends FlutterActivity { +public class MainActivity extends FlutterActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/EmbeddingV1ActivityTest.java b/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/EmbeddingV1ActivityTest.java deleted file mode 100644 index a34755399117..000000000000 --- a/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/EmbeddingV1ActivityTest.java +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.connectivityexample; - -import androidx.test.rule.ActivityTestRule; -import dev.flutter.plugins.e2e.FlutterRunner; -import org.junit.Rule; -import org.junit.runner.RunWith; - -@RunWith(FlutterRunner.class) -public class EmbeddingV1ActivityTest { - @Rule - public ActivityTestRule rule = - new ActivityTestRule<>(EmbeddingV1Activity.class); -} diff --git a/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/MainActivity.java b/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/MainActivity.java deleted file mode 100644 index b0deb61bfd28..000000000000 --- a/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/MainActivity.java +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.connectivityexample; - -import io.flutter.embedding.android.FlutterActivity; -import io.flutter.embedding.engine.FlutterEngine; -import io.flutter.plugins.connectivity.ConnectivityPlugin; - -public class MainActivity extends FlutterActivity { - - @Override - public void configureFlutterEngine(FlutterEngine flutterEngine) { - super.configureFlutterEngine(flutterEngine); - flutterEngine.getPlugins().add(new ConnectivityPlugin()); - } -} diff --git a/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/MainActivityTest.java b/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/MainActivityTest.java deleted file mode 100644 index 0c33d6a92f46..000000000000 --- a/packages/connectivity/example/android/app/src/main/java/io/flutter/plugins/connectivityexample/MainActivityTest.java +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.connectivityexample; - -import androidx.test.rule.ActivityTestRule; -import dev.flutter.plugins.e2e.FlutterRunner; -import org.junit.Rule; -import org.junit.runner.RunWith; - -@RunWith(FlutterRunner.class) -public class MainActivityTest { - @Rule public ActivityTestRule rule = new ActivityTestRule<>(MainActivity.class); -} diff --git a/packages/connectivity/example/android/gradle.properties b/packages/connectivity/example/android/gradle.properties index a6738207fd15..8bd86f680510 100644 --- a/packages/connectivity/example/android/gradle.properties +++ b/packages/connectivity/example/android/gradle.properties @@ -1,4 +1 @@ org.gradle.jvmargs=-Xmx1536M -android.useAndroidX=true -android.enableJetifier=true -android.enableR8=true diff --git a/packages/connectivity/example/pubspec.yaml b/packages/connectivity/example/pubspec.yaml index 2f2b6eb68fca..c364782e786c 100644 --- a/packages/connectivity/example/pubspec.yaml +++ b/packages/connectivity/example/pubspec.yaml @@ -11,7 +11,6 @@ dev_dependencies: flutter_driver: sdk: flutter test: any - e2e: ^0.2.0 flutter: uses-material-design: true diff --git a/packages/connectivity/test/connectivity_e2e.dart b/packages/connectivity/example/test_driver/connectivity.dart similarity index 68% rename from packages/connectivity/test/connectivity_e2e.dart rename to packages/connectivity/example/test_driver/connectivity.dart index 10c4bda34e0d..685f69efb1c8 100644 --- a/packages/connectivity/test/connectivity_e2e.dart +++ b/packages/connectivity/example/test_driver/connectivity.dart @@ -1,14 +1,13 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - +import 'dart:async'; import 'dart:io'; -import 'package:e2e/e2e.dart'; +import 'package:flutter_driver/driver_extension.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:connectivity/connectivity.dart'; void main() { - E2EWidgetsFlutterBinding.ensureInitialized(); + final Completer completer = Completer(); + enableFlutterDriverExtension(handler: (_) => completer.future); + tearDownAll(() => completer.complete(null)); group('Connectivity test driver', () { Connectivity _connectivity; @@ -17,7 +16,7 @@ void main() { _connectivity = Connectivity(); }); - testWidgets('test connectivity result', (WidgetTester tester) async { + test('test connectivity result', () async { final ConnectivityResult result = await _connectivity.checkConnectivity(); expect(result, isNotNull); switch (result) { @@ -31,7 +30,8 @@ void main() { } }); - testWidgets('test location methods, iOS only', (WidgetTester tester) async { + test('test location methods, iOS only', () async { + print(Platform.isIOS); if (Platform.isIOS) { expect((await _connectivity.getLocationServiceAuthorization()), LocationAuthorizationStatus.notDetermined); diff --git a/packages/connectivity/example/test_driver/connectivity_test.dart b/packages/connectivity/example/test_driver/connectivity_test.dart new file mode 100644 index 000000000000..2b89c8f2f7bb --- /dev/null +++ b/packages/connectivity/example/test_driver/connectivity_test.dart @@ -0,0 +1,10 @@ +import 'package:flutter_driver/flutter_driver.dart'; +import 'package:test/test.dart'; + +void main() { + test('connectivity', () async { + final FlutterDriver driver = await FlutterDriver.connect(); + await driver.requestData(null, timeout: const Duration(minutes: 1)); + driver.close(); + }); +} diff --git a/packages/connectivity/example/test_driver/test/connectivity_e2e_test.dart b/packages/connectivity/example/test_driver/test/connectivity_e2e_test.dart deleted file mode 100644 index d4586bdc7127..000000000000 --- a/packages/connectivity/example/test_driver/test/connectivity_e2e_test.dart +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:io'; -import 'package:flutter_driver/flutter_driver.dart'; - -Future main() async { - final FlutterDriver driver = await FlutterDriver.connect(); - final String result = - await driver.requestData(null, timeout: const Duration(minutes: 1)); - driver.close(); - exit(result == 'pass' ? 0 : 1); -} diff --git a/packages/connectivity/pubspec.yaml b/packages/connectivity/pubspec.yaml index 636c43af2fae..10a01988db5c 100644 --- a/packages/connectivity/pubspec.yaml +++ b/packages/connectivity/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for discovering the state of the network (WiFi & mobile/cellular) connectivity on Android and iOS. author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/connectivity -version: 0.4.5 +version: 0.4.4+1 flutter: plugin: @@ -22,8 +22,7 @@ dev_dependencies: flutter_driver: sdk: flutter test: any - e2e: ^0.2.0 environment: sdk: ">=2.0.0-dev.28.0 <3.0.0" - flutter: ">=1.6.7 <2.0.0" + flutter: ">=1.2.0 <2.0.0" From 38d6a9d393443d5e00deaa450450773d65c731be Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 18 Oct 2019 09:49:43 -0700 Subject: [PATCH 2/3] Update CHANGELOG.md --- packages/connectivity/CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/connectivity/CHANGELOG.md b/packages/connectivity/CHANGELOG.md index b52e629fd516..050b1de78242 100644 --- a/packages/connectivity/CHANGELOG.md +++ b/packages/connectivity/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.4.5+1 + +* Revert 0.4.5 because the lower bound flutter version introduced is not supported. + +## 0.4.5 + +* Support the v2 Android embedder. + ## 0.4.4+1 * Update and migrate iOS example project. From 795dbf954a51de819c08168282eb0af85bd9949e Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 18 Oct 2019 09:49:55 -0700 Subject: [PATCH 3/3] Update pubspec.yaml --- packages/connectivity/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/connectivity/pubspec.yaml b/packages/connectivity/pubspec.yaml index 10a01988db5c..2adafaf2d87d 100644 --- a/packages/connectivity/pubspec.yaml +++ b/packages/connectivity/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for discovering the state of the network (WiFi & mobile/cellular) connectivity on Android and iOS. author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/connectivity -version: 0.4.4+1 +version: 0.4.5+1 flutter: plugin: