From 10cc6a1f2f5be83ab0e008bf33907fbd52dfd414 Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Fri, 4 Oct 2019 09:55:43 -0700 Subject: [PATCH 01/10] migrate the example app to AndroidX --- packages/battery/example/android/gradle.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/battery/example/android/gradle.properties b/packages/battery/example/android/gradle.properties index 8bd86f680510..4c193f483cae 100644 --- a/packages/battery/example/android/gradle.properties +++ b/packages/battery/example/android/gradle.properties @@ -1 +1,3 @@ -org.gradle.jvmargs=-Xmx1536M +android.enableR8=true +android.useAndroidX=true +android.enableJetifier=true From 0e5d91e462dcb3e78e93766fea722e7c1e555199 Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Thu, 3 Oct 2019 16:49:47 -0700 Subject: [PATCH 02/10] [battery] Support the v2 Android embedder. --- packages/battery/CHANGELOG.md | 4 ++ .../plugins/battery/BatteryPlugin.java | 56 ++++++++++++------- .../android/app/src/main/AndroidManifest.xml | 11 ++++ .../batteryexample/EmbedderV2Activity.java | 12 ++++ .../battery/example/android/gradle.properties | 2 +- packages/battery/pubspec.yaml | 2 +- 6 files changed, 65 insertions(+), 22 deletions(-) create mode 100644 packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV2Activity.java diff --git a/packages/battery/CHANGELOG.md b/packages/battery/CHANGELOG.md index 6777b98c4ab5..d09c9af7bc8d 100644 --- a/packages/battery/CHANGELOG.md +++ b/packages/battery/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.0+6 + +* Support the v2 Android embedder. + ## 0.3.0+5 * Fix Gradle version. diff --git a/packages/battery/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java b/packages/battery/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java index b6d3e799e5c7..82307f603e5c 100644 --- a/packages/battery/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java +++ b/packages/battery/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java @@ -12,6 +12,8 @@ import android.os.BatteryManager; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; +import io.flutter.embedding.engine.plugins.FlutterPlugin; +import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.EventChannel; import io.flutter.plugin.common.EventChannel.EventSink; import io.flutter.plugin.common.EventChannel.StreamHandler; @@ -22,25 +24,42 @@ import io.flutter.plugin.common.PluginRegistry; /** BatteryPlugin */ -public class BatteryPlugin implements MethodCallHandler, StreamHandler { +public class BatteryPlugin implements MethodCallHandler, StreamHandler, FlutterPlugin { + + private Context applicationContext; + private BroadcastReceiver chargingStateChangeReceiver; + private MethodChannel methodChannel; + private EventChannel eventChannel; /** Plugin registration. */ public static void registerWith(PluginRegistry.Registrar registrar) { - final MethodChannel methodChannel = - new MethodChannel(registrar.messenger(), "plugins.flutter.io/battery"); - final EventChannel eventChannel = - new EventChannel(registrar.messenger(), "plugins.flutter.io/charging"); - final BatteryPlugin instance = new BatteryPlugin(registrar); - eventChannel.setStreamHandler(instance); - methodChannel.setMethodCallHandler(instance); + final BatteryPlugin instance = new BatteryPlugin(); + instance.onAttachedToEngine(registrar.context(), registrar.messenger()); } - BatteryPlugin(PluginRegistry.Registrar registrar) { - this.registrar = registrar; + @Override + public void onAttachedToEngine(FlutterPluginBinding binding) { + applicationContext = binding.getApplicationContext(); + onAttachedToEngine( + binding.getApplicationContext(), binding.getFlutterEngine().getDartExecutor()); } - private final PluginRegistry.Registrar registrar; - private BroadcastReceiver chargingStateChangeReceiver; + private void onAttachedToEngine(Context applicationContext, BinaryMessenger messenger) { + this.applicationContext = applicationContext; + methodChannel = new MethodChannel(messenger, "plugins.flutter.io/battery"); + eventChannel = new EventChannel(messenger, "plugins.flutter.io/charging"); + eventChannel.setStreamHandler(this); + methodChannel.setMethodCallHandler(this); + } + + @Override + public void onDetachedFromEngine(FlutterPluginBinding binding) { + applicationContext = null; + methodChannel.setMethodCallHandler(null); + methodChannel = null; + eventChannel.setStreamHandler(null); + eventChannel = null; + } @Override public void onMethodCall(MethodCall call, Result result) { @@ -60,28 +79,25 @@ public void onMethodCall(MethodCall call, Result result) { @Override public void onListen(Object arguments, EventSink events) { chargingStateChangeReceiver = createChargingStateChangeReceiver(events); - registrar - .context() - .registerReceiver( - chargingStateChangeReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + applicationContext.registerReceiver( + chargingStateChangeReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } @Override public void onCancel(Object arguments) { - registrar.context().unregisterReceiver(chargingStateChangeReceiver); + applicationContext.unregisterReceiver(chargingStateChangeReceiver); chargingStateChangeReceiver = null; } private int getBatteryLevel() { int batteryLevel = -1; - Context context = registrar.context(); if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { BatteryManager batteryManager = - (BatteryManager) context.getSystemService(context.BATTERY_SERVICE); + (BatteryManager) applicationContext.getSystemService(applicationContext.BATTERY_SERVICE); batteryLevel = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY); } else { Intent intent = - new ContextWrapper(context) + new ContextWrapper(applicationContext) .registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); batteryLevel = (intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100) diff --git a/packages/battery/example/android/app/src/main/AndroidManifest.xml b/packages/battery/example/android/app/src/main/AndroidManifest.xml index 6b07de4e5d3d..ccd00aa78fd0 100644 --- a/packages/battery/example/android/app/src/main/AndroidManifest.xml +++ b/packages/battery/example/android/app/src/main/AndroidManifest.xml @@ -10,6 +10,17 @@ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> + + + + + + diff --git a/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV2Activity.java b/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV2Activity.java new file mode 100644 index 000000000000..1f0217fd6c58 --- /dev/null +++ b/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV2Activity.java @@ -0,0 +1,12 @@ +package io.flutter.plugins.batteryexample; + +import io.flutter.embedding.android.FlutterActivity; +import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.plugins.battery.BatteryPlugin; + +public class EmbedderV2Activity extends FlutterActivity { + @Override + public void configureFlutterEngine(FlutterEngine flutterEngine) { + flutterEngine.getPlugins().add(new BatteryPlugin()); + } +} diff --git a/packages/battery/example/android/gradle.properties b/packages/battery/example/android/gradle.properties index 4c193f483cae..d12b9a8297e5 100644 --- a/packages/battery/example/android/gradle.properties +++ b/packages/battery/example/android/gradle.properties @@ -1,3 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M android.enableR8=true android.useAndroidX=true -android.enableJetifier=true diff --git a/packages/battery/pubspec.yaml b/packages/battery/pubspec.yaml index 56a70b18f552..c6a3f8837a41 100644 --- a/packages/battery/pubspec.yaml +++ b/packages/battery/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for accessing information about the battery state (full, charging, discharging) on Android and iOS. author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/battery -version: 0.3.0+5 +version: 0.3.0+6 flutter: plugin: From f593806ab7c70a704d8de71bbcd947f0951b2b81 Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Fri, 4 Oct 2019 10:26:01 -0700 Subject: [PATCH 03/10] Bump the minor version instead of patch version --- packages/battery/CHANGELOG.md | 2 +- packages/battery/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/battery/CHANGELOG.md b/packages/battery/CHANGELOG.md index d09c9af7bc8d..0418905c084b 100644 --- a/packages/battery/CHANGELOG.md +++ b/packages/battery/CHANGELOG.md @@ -1,4 +1,4 @@ -## 0.3.0+6 +## 0.3.1 * Support the v2 Android embedder. diff --git a/packages/battery/pubspec.yaml b/packages/battery/pubspec.yaml index c6a3f8837a41..b35332d97165 100644 --- a/packages/battery/pubspec.yaml +++ b/packages/battery/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for accessing information about the battery state (full, charging, discharging) on Android and iOS. author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/battery -version: 0.3.0+6 +version: 0.3.1 flutter: plugin: From ed9195c971757f36d26e62a2ed6f7f11a86e3b33 Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Mon, 14 Oct 2019 10:45:22 -0700 Subject: [PATCH 04/10] review fixes --- packages/battery/android/build.gradle | 24 +++++++++++++++++++ .../plugins/battery/BatteryPlugin.java | 1 - .../android/app/src/main/AndroidManifest.xml | 14 ++++------- .../batteryexample/EmbedderV1Activity.java | 17 +++++++++++++ .../batteryexample/EmbedderV2Activity.java | 12 ---------- .../plugins/batteryexample/MainActivity.java | 15 ++++-------- .../battery/example/android/gradle.properties | 1 + 7 files changed, 52 insertions(+), 32 deletions(-) create mode 100644 packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV1Activity.java delete mode 100644 packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV2Activity.java diff --git a/packages/battery/android/build.gradle b/packages/battery/android/build.gradle index ed302d2969e2..facc4ebfd336 100644 --- a/packages/battery/android/build.gradle +++ b/packages/battery/android/build.gradle @@ -45,3 +45,27 @@ android { disable 'InvalidPackage' } } + +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/battery/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java b/packages/battery/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java index 82307f603e5c..1bf3c249552d 100644 --- a/packages/battery/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java +++ b/packages/battery/android/src/main/java/io/flutter/plugins/battery/BatteryPlugin.java @@ -39,7 +39,6 @@ public static void registerWith(PluginRegistry.Registrar registrar) { @Override public void onAttachedToEngine(FlutterPluginBinding binding) { - applicationContext = binding.getApplicationContext(); onAttachedToEngine( binding.getApplicationContext(), binding.getFlutterEngine().getDartExecutor()); } diff --git a/packages/battery/example/android/app/src/main/AndroidManifest.xml b/packages/battery/example/android/app/src/main/AndroidManifest.xml index ccd00aa78fd0..e76af9c8dbfe 100644 --- a/packages/battery/example/android/app/src/main/AndroidManifest.xml +++ b/packages/battery/example/android/app/src/main/AndroidManifest.xml @@ -10,21 +10,17 @@ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> - - - - + + + + - - - - diff --git a/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV1Activity.java b/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV1Activity.java new file mode 100644 index 000000000000..f04a2e2ca2f9 --- /dev/null +++ b/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV1Activity.java @@ -0,0 +1,17 @@ +// Copyright 2017 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.batteryexample; + +import android.os.Bundle; +import io.flutter.app.FlutterActivity; +import io.flutter.plugins.GeneratedPluginRegistrant; + +public class EmbedderV1Activity extends FlutterActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + GeneratedPluginRegistrant.registerWith(this); + } +} diff --git a/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV2Activity.java b/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV2Activity.java deleted file mode 100644 index 1f0217fd6c58..000000000000 --- a/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/EmbedderV2Activity.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.flutter.plugins.batteryexample; - -import io.flutter.embedding.android.FlutterActivity; -import io.flutter.embedding.engine.FlutterEngine; -import io.flutter.plugins.battery.BatteryPlugin; - -public class EmbedderV2Activity extends FlutterActivity { - @Override - public void configureFlutterEngine(FlutterEngine flutterEngine) { - flutterEngine.getPlugins().add(new BatteryPlugin()); - } -} diff --git a/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/MainActivity.java b/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/MainActivity.java index 320226f9b6d8..a496c8dddd4c 100644 --- a/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/MainActivity.java +++ b/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/MainActivity.java @@ -1,17 +1,12 @@ -// Copyright 2017 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.batteryexample; -import android.os.Bundle; -import io.flutter.app.FlutterActivity; -import io.flutter.plugins.GeneratedPluginRegistrant; +import io.flutter.embedding.android.FlutterActivity; +import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.plugins.battery.BatteryPlugin; public class MainActivity extends FlutterActivity { @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - GeneratedPluginRegistrant.registerWith(this); + public void configureFlutterEngine(FlutterEngine flutterEngine) { + flutterEngine.getPlugins().add(new BatteryPlugin()); } } diff --git a/packages/battery/example/android/gradle.properties b/packages/battery/example/android/gradle.properties index d12b9a8297e5..38c8d4544ff1 100644 --- a/packages/battery/example/android/gradle.properties +++ b/packages/battery/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx1536M android.enableR8=true android.useAndroidX=true +android.enableJetifier=true From 6a5ea5da539bc17e2fceedc56723add124316d9f Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Mon, 14 Oct 2019 12:46:23 -0700 Subject: [PATCH 05/10] add e2e tests, update flutter constraints in pubspec --- .../plugins/battery/EmbedderV1ActivityTest.java | 17 +++++++++++++++++ .../plugins/battery/MainActivityTest.java | 15 +++++++++++++++ packages/battery/example/pubspec.yaml | 6 ++++++ .../example/test_driver/battery_e2e.dart | 17 +++++++++++++++++ packages/battery/pubspec.yaml | 2 +- 5 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 packages/battery/example/android/app/src/androidTest/java/io/flutter/plugins/battery/EmbedderV1ActivityTest.java create mode 100644 packages/battery/example/android/app/src/androidTest/java/io/flutter/plugins/battery/MainActivityTest.java create mode 100644 packages/battery/example/test_driver/battery_e2e.dart diff --git a/packages/battery/example/android/app/src/androidTest/java/io/flutter/plugins/battery/EmbedderV1ActivityTest.java b/packages/battery/example/android/app/src/androidTest/java/io/flutter/plugins/battery/EmbedderV1ActivityTest.java new file mode 100644 index 000000000000..ef6e5d9fe246 --- /dev/null +++ b/packages/battery/example/android/app/src/androidTest/java/io/flutter/plugins/battery/EmbedderV1ActivityTest.java @@ -0,0 +1,17 @@ +// 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.batteryexample; + +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 EmbedderV1ActivityTest { + @Rule + public ActivityTestRule rule = + new ActivityTestRule<>(EmbedderV1Activity.class); +} diff --git a/packages/battery/example/android/app/src/androidTest/java/io/flutter/plugins/battery/MainActivityTest.java b/packages/battery/example/android/app/src/androidTest/java/io/flutter/plugins/battery/MainActivityTest.java new file mode 100644 index 000000000000..16165ad2e66f --- /dev/null +++ b/packages/battery/example/android/app/src/androidTest/java/io/flutter/plugins/battery/MainActivityTest.java @@ -0,0 +1,15 @@ +// 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.batteryexample; + +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/battery/example/pubspec.yaml b/packages/battery/example/pubspec.yaml index 1fde3d25dd2d..f8aba9dc44c6 100644 --- a/packages/battery/example/pubspec.yaml +++ b/packages/battery/example/pubspec.yaml @@ -7,5 +7,11 @@ dependencies: battery: path: ../ +dev_dependencies: + e2e: ^0.2.0 + flutter: uses-material-design: true + +environment: + flutter: ">=1.9.1+hotfix.4 <2.0.0" diff --git a/packages/battery/example/test_driver/battery_e2e.dart b/packages/battery/example/test_driver/battery_e2e.dart new file mode 100644 index 000000000000..e549ff3bb017 --- /dev/null +++ b/packages/battery/example/test_driver/battery_e2e.dart @@ -0,0 +1,17 @@ +// Copyright 2019, the Chromium project authors. Please see the AUTHORS file +// for details. 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_test/flutter_test.dart'; +import 'package:e2e/e2e.dart'; +import 'package:battery/battery.dart'; +import '../lib/main.dart'; + +void main() { + E2EWidgetsFlutterBinding.ensureInitialized(); + + testWidgets('Builds and runs', (WidgetTester tester) async { + await tester.pumpWidget(MyApp()); + }); +} diff --git a/packages/battery/pubspec.yaml b/packages/battery/pubspec.yaml index b35332d97165..65658b92d22d 100644 --- a/packages/battery/pubspec.yaml +++ b/packages/battery/pubspec.yaml @@ -25,4 +25,4 @@ dev_dependencies: environment: sdk: ">=2.0.0-dev.28.0 <3.0.0" - flutter: ">=1.2.0 <2.0.0" + flutter: ">=1.6.7 <2.0.0" From 09b940f61789246540ee567ae1cae8fcecdfdd0d Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Mon, 14 Oct 2019 12:59:45 -0700 Subject: [PATCH 06/10] fix analyzer warnings --- packages/battery/example/test_driver/battery_e2e.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/battery/example/test_driver/battery_e2e.dart b/packages/battery/example/test_driver/battery_e2e.dart index e549ff3bb017..96301d36db86 100644 --- a/packages/battery/example/test_driver/battery_e2e.dart +++ b/packages/battery/example/test_driver/battery_e2e.dart @@ -2,10 +2,8 @@ // for details. 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_test/flutter_test.dart'; import 'package:e2e/e2e.dart'; -import 'package:battery/battery.dart'; import '../lib/main.dart'; void main() { From 682687fb79c1eb8957b131a2db8669303195ed05 Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Mon, 14 Oct 2019 13:02:15 -0700 Subject: [PATCH 07/10] add TODO to remove gradle hack --- packages/battery/android/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/battery/android/build.gradle b/packages/battery/android/build.gradle index facc4ebfd336..85ae37598953 100644 --- a/packages/battery/android/build.gradle +++ b/packages/battery/android/build.gradle @@ -46,6 +46,7 @@ android { } } +// TODO(mklim): 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) { From b90f434c3352c7e3ba5038842135e1d0c5e9fdfe Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Mon, 14 Oct 2019 13:40:55 -0700 Subject: [PATCH 08/10] move the e2e test out of the example app folder and make it test something --- packages/battery/example/pubspec.yaml | 3 ++- .../example/test_driver/battery_e2e_test.dart | 15 +++++++++++++++ packages/battery/pubspec.yaml | 1 + .../test_driver => test}/battery_e2e.dart | 6 ++++-- 4 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 packages/battery/example/test_driver/battery_e2e_test.dart rename packages/battery/{example/test_driver => test}/battery_e2e.dart (71%) diff --git a/packages/battery/example/pubspec.yaml b/packages/battery/example/pubspec.yaml index f8aba9dc44c6..0c57142ca3d5 100644 --- a/packages/battery/example/pubspec.yaml +++ b/packages/battery/example/pubspec.yaml @@ -8,7 +8,8 @@ dependencies: path: ../ dev_dependencies: - e2e: ^0.2.0 + flutter_driver: + sdk: flutter flutter: uses-material-design: true diff --git a/packages/battery/example/test_driver/battery_e2e_test.dart b/packages/battery/example/test_driver/battery_e2e_test.dart new file mode 100644 index 000000000000..ac4ea11482e2 --- /dev/null +++ b/packages/battery/example/test_driver/battery_e2e_test.dart @@ -0,0 +1,15 @@ +// Copyright 2019, the Chromium project authors. Please see the AUTHORS file +// for details. 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/battery/pubspec.yaml b/packages/battery/pubspec.yaml index 65658b92d22d..7314d2725328 100644 --- a/packages/battery/pubspec.yaml +++ b/packages/battery/pubspec.yaml @@ -22,6 +22,7 @@ dev_dependencies: mockito: 3.0.0 flutter_test: sdk: flutter + e2e: ^0.2.0 environment: sdk: ">=2.0.0-dev.28.0 <3.0.0" diff --git a/packages/battery/example/test_driver/battery_e2e.dart b/packages/battery/test/battery_e2e.dart similarity index 71% rename from packages/battery/example/test_driver/battery_e2e.dart rename to packages/battery/test/battery_e2e.dart index 96301d36db86..5c3b6bdace22 100644 --- a/packages/battery/example/test_driver/battery_e2e.dart +++ b/packages/battery/test/battery_e2e.dart @@ -3,13 +3,15 @@ // BSD-style license that can be found in the LICENSE file. import 'package:flutter_test/flutter_test.dart'; +import 'package:battery/battery.dart'; import 'package:e2e/e2e.dart'; -import '../lib/main.dart'; void main() { E2EWidgetsFlutterBinding.ensureInitialized(); testWidgets('Builds and runs', (WidgetTester tester) async { - await tester.pumpWidget(MyApp()); + final Battery battery = Battery(); + final int batteryLevel = await battery.batteryLevel; + expect(batteryLevel, isNotNull); }); } From 5b898e62f1df9b3a28d2dd860ed1835ca041db80 Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Mon, 14 Oct 2019 13:44:20 -0700 Subject: [PATCH 09/10] add missing license header --- .../java/io/flutter/plugins/batteryexample/MainActivity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/MainActivity.java b/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/MainActivity.java index a496c8dddd4c..26ae8ecc2091 100644 --- a/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/MainActivity.java +++ b/packages/battery/example/android/app/src/main/java/io/flutter/plugins/batteryexample/MainActivity.java @@ -1,3 +1,7 @@ +// 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.batteryexample; import io.flutter.embedding.android.FlutterActivity; From 58d7721041a64efde3cffd03cf8d5650d04c8cbf Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Mon, 14 Oct 2019 14:41:08 -0700 Subject: [PATCH 10/10] remove driver boilerplate, change TODO to my name, better name for the test --- packages/battery/android/build.gradle | 2 +- .../example/test_driver/battery_e2e_test.dart | 15 --------------- packages/battery/test/battery_e2e.dart | 2 +- 3 files changed, 2 insertions(+), 17 deletions(-) delete mode 100644 packages/battery/example/test_driver/battery_e2e_test.dart diff --git a/packages/battery/android/build.gradle b/packages/battery/android/build.gradle index 85ae37598953..e4c24492bb4a 100644 --- a/packages/battery/android/build.gradle +++ b/packages/battery/android/build.gradle @@ -46,7 +46,7 @@ android { } } -// TODO(mklim): Remove this hack once androidx.lifecycle is included on stable. https://github.com/flutter/flutter/issues/42348 +// 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) { diff --git a/packages/battery/example/test_driver/battery_e2e_test.dart b/packages/battery/example/test_driver/battery_e2e_test.dart deleted file mode 100644 index ac4ea11482e2..000000000000 --- a/packages/battery/example/test_driver/battery_e2e_test.dart +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2019, the Chromium project authors. Please see the AUTHORS file -// for details. 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/battery/test/battery_e2e.dart b/packages/battery/test/battery_e2e.dart index 5c3b6bdace22..6ffc7e6541fb 100644 --- a/packages/battery/test/battery_e2e.dart +++ b/packages/battery/test/battery_e2e.dart @@ -9,7 +9,7 @@ import 'package:e2e/e2e.dart'; void main() { E2EWidgetsFlutterBinding.ensureInitialized(); - testWidgets('Builds and runs', (WidgetTester tester) async { + testWidgets('Can get battery level', (WidgetTester tester) async { final Battery battery = Battery(); final int batteryLevel = await battery.batteryLevel; expect(batteryLevel, isNotNull);