From 2e9cf9feb749e6eb4aad9fb2de2504525302f955 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Oct 2019 16:10:01 -0700 Subject: [PATCH 01/22] migrate --- .../plugins/sensors/SensorsPlugin.java | 86 ++++++++++--------- .../plugins/sensors/StreamHandlerImpl.java | 46 ++++++++++ .../android/app/src/main/AndroidManifest.xml | 7 ++ .../plugins/sensorexmaple/MainActivity.java | 14 +++ .../sensors/example/android/gradle.properties | 3 + 5 files changed, 117 insertions(+), 39 deletions(-) create mode 100644 packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java create mode 100644 packages/sensors/example/android/app/src/main/java/dev/flutter/plugins/sensorexmaple/MainActivity.java diff --git a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java index 65c47707029b..612bd987a188 100644 --- a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java +++ b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java @@ -6,14 +6,13 @@ import android.content.Context; import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; import android.hardware.SensorManager; +import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.plugin.common.EventChannel; import io.flutter.plugin.common.PluginRegistry.Registrar; /** SensorsPlugin */ -public class SensorsPlugin implements EventChannel.StreamHandler { +public class SensorsPlugin implements FlutterPlugin { private static final String ACCELEROMETER_CHANNEL_NAME = "plugins.flutter.io/sensors/accelerometer"; private static final String GYROSCOPE_CHANNEL_NAME = "plugins.flutter.io/sensors/gyroscope"; @@ -22,55 +21,64 @@ public class SensorsPlugin implements EventChannel.StreamHandler { /** Plugin registration. */ public static void registerWith(Registrar registrar) { + final EventChannel accelerometerChannel = new EventChannel(registrar.messenger(), ACCELEROMETER_CHANNEL_NAME); - accelerometerChannel.setStreamHandler( - new SensorsPlugin(registrar.context(), Sensor.TYPE_ACCELEROMETER)); + final StreamHandlerImpl accelerationStreamHandler = + new StreamHandlerImpl( + (SensorManager) + registrar.context().getSystemService(registrar.context().SENSOR_SERVICE), + Sensor.TYPE_ACCELEROMETER); + accelerometerChannel.setStreamHandler(accelerationStreamHandler); final EventChannel userAccelChannel = new EventChannel(registrar.messenger(), USER_ACCELEROMETER_CHANNEL_NAME); - userAccelChannel.setStreamHandler( - new SensorsPlugin(registrar.context(), Sensor.TYPE_LINEAR_ACCELERATION)); + final StreamHandlerImpl linearAccelerationStreamHandler = + new StreamHandlerImpl( + (SensorManager) + registrar.context().getSystemService(registrar.context().SENSOR_SERVICE), + Sensor.TYPE_LINEAR_ACCELERATION); + userAccelChannel.setStreamHandler(linearAccelerationStreamHandler); final EventChannel gyroscopeChannel = new EventChannel(registrar.messenger(), GYROSCOPE_CHANNEL_NAME); - gyroscopeChannel.setStreamHandler( - new SensorsPlugin(registrar.context(), Sensor.TYPE_GYROSCOPE)); + final StreamHandlerImpl gyroScopeStreamHandler = + new StreamHandlerImpl( + (SensorManager) + registrar.context().getSystemService(registrar.context().SENSOR_SERVICE), + Sensor.TYPE_GYROSCOPE); + gyroscopeChannel.setStreamHandler(gyroScopeStreamHandler); } - private SensorEventListener sensorEventListener; - private final SensorManager sensorManager; - private final Sensor sensor; + @Override + public void onAttachedToEngine(FlutterPluginBinding binding) { + Context context = binding.getApplicationContext(); + final EventChannel accelerometerChannel = + new EventChannel(binding.getFlutterEngine().getDartExecutor(), ACCELEROMETER_CHANNEL_NAME); + final StreamHandlerImpl accelerationStreamHandler = + new StreamHandlerImpl( + (SensorManager) context.getSystemService(context.SENSOR_SERVICE), + Sensor.TYPE_ACCELEROMETER); + accelerometerChannel.setStreamHandler(accelerationStreamHandler); - private SensorsPlugin(Context context, int sensorType) { - sensorManager = (SensorManager) context.getSystemService(context.SENSOR_SERVICE); - sensor = sensorManager.getDefaultSensor(sensorType); - } + final EventChannel userAccelChannel = + new EventChannel( + binding.getFlutterEngine().getDartExecutor(), USER_ACCELEROMETER_CHANNEL_NAME); + final StreamHandlerImpl linearAccelerationStreamHandler = + new StreamHandlerImpl( + (SensorManager) context.getSystemService(context.SENSOR_SERVICE), + Sensor.TYPE_LINEAR_ACCELERATION); + userAccelChannel.setStreamHandler(linearAccelerationStreamHandler); - @Override - public void onListen(Object arguments, EventChannel.EventSink events) { - sensorEventListener = createSensorEventListener(events); - sensorManager.registerListener(sensorEventListener, sensor, sensorManager.SENSOR_DELAY_NORMAL); + final EventChannel gyroscopeChannel = + new EventChannel(binding.getFlutterEngine().getDartExecutor(), GYROSCOPE_CHANNEL_NAME); + final StreamHandlerImpl gyroScopeStreamHandler = + new StreamHandlerImpl( + (SensorManager) context.getSystemService(context.SENSOR_SERVICE), + Sensor.TYPE_GYROSCOPE); + gyroscopeChannel.setStreamHandler(gyroScopeStreamHandler); } @Override - public void onCancel(Object arguments) { - sensorManager.unregisterListener(sensorEventListener); - } - - SensorEventListener createSensorEventListener(final EventChannel.EventSink events) { - return new SensorEventListener() { - @Override - public void onAccuracyChanged(Sensor sensor, int accuracy) {} - - @Override - public void onSensorChanged(SensorEvent event) { - double[] sensorValues = new double[event.values.length]; - for (int i = 0; i < event.values.length; i++) { - sensorValues[i] = event.values[i]; - } - events.success(sensorValues); - } - }; - } + public void onDetachedFromEngine(FlutterPluginBinding binding) {} } diff --git a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java new file mode 100644 index 000000000000..105db649eef6 --- /dev/null +++ b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java @@ -0,0 +1,46 @@ +package io.flutter.plugins.sensors; + +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import io.flutter.plugin.common.EventChannel; + +public class StreamHandlerImpl implements EventChannel.StreamHandler { + + private SensorEventListener sensorEventListener; + private final SensorManager sensorManager; + private final Sensor sensor; + + StreamHandlerImpl(SensorManager sensorManager, int sensorType) { + this.sensorManager = sensorManager; + sensor = sensorManager.getDefaultSensor(sensorType); + } + + @Override + public void onListen(Object arguments, EventChannel.EventSink events) { + sensorEventListener = createSensorEventListener(events); + sensorManager.registerListener(sensorEventListener, sensor, sensorManager.SENSOR_DELAY_NORMAL); + } + + @Override + public void onCancel(Object arguments) { + sensorManager.unregisterListener(sensorEventListener); + } + + SensorEventListener createSensorEventListener(final EventChannel.EventSink events) { + return new SensorEventListener() { + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) {} + + @Override + public void onSensorChanged(SensorEvent event) { + double[] sensorValues = new double[event.values.length]; + for (int i = 0; i < event.values.length; i++) { + sensorValues[i] = event.values[i]; + } + events.success(sensorValues); + } + }; + } +} diff --git a/packages/sensors/example/android/app/src/main/AndroidManifest.xml b/packages/sensors/example/android/app/src/main/AndroidManifest.xml index 92a8fc62ea99..dbd898e41a00 100644 --- a/packages/sensors/example/android/app/src/main/AndroidManifest.xml +++ b/packages/sensors/example/android/app/src/main/AndroidManifest.xml @@ -10,6 +10,13 @@ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> + + diff --git a/packages/sensors/example/android/app/src/main/java/dev/flutter/plugins/sensorexmaple/MainActivity.java b/packages/sensors/example/android/app/src/main/java/dev/flutter/plugins/sensorexmaple/MainActivity.java new file mode 100644 index 000000000000..05e7dfbc8bf2 --- /dev/null +++ b/packages/sensors/example/android/app/src/main/java/dev/flutter/plugins/sensorexmaple/MainActivity.java @@ -0,0 +1,14 @@ +package dev.flutter.plugins.sensorexmaple; + +import io.flutter.embedding.android.FlutterActivity; +import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.plugins.sensors.SensorsPlugin; + +public class MainActivity extends FlutterActivity { + + @Override + public void configureFlutterEngine(FlutterEngine flutterEngine) { + super.configureFlutterEngine(flutterEngine); + flutterEngine.getPlugins().add(new SensorsPlugin()); + } +} diff --git a/packages/sensors/example/android/gradle.properties b/packages/sensors/example/android/gradle.properties index 8bd86f680510..38c8d4544ff1 100644 --- a/packages/sensors/example/android/gradle.properties +++ b/packages/sensors/example/android/gradle.properties @@ -1 +1,4 @@ org.gradle.jvmargs=-Xmx1536M +android.enableR8=true +android.useAndroidX=true +android.enableJetifier=true From 360484ccae81c17842ab022c4ce4e2cd10ed5c9b Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Oct 2019 16:28:59 -0700 Subject: [PATCH 02/22] refactoring --- .../plugins/sensors/SensorsPlugin.java | 58 +++++++------------ 1 file changed, 21 insertions(+), 37 deletions(-) diff --git a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java index 612bd987a188..631857984529 100644 --- a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java +++ b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java @@ -8,6 +8,7 @@ import android.hardware.Sensor; import android.hardware.SensorManager; import io.flutter.embedding.engine.plugins.FlutterPlugin; +import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.EventChannel; import io.flutter.plugin.common.PluginRegistry.Registrar; @@ -19,66 +20,49 @@ public class SensorsPlugin implements FlutterPlugin { private static final String USER_ACCELEROMETER_CHANNEL_NAME = "plugins.flutter.io/sensors/user_accel"; + private EventChannel accelerometerChannel; + private EventChannel userAccelChannel; + private EventChannel gyroscopeChannel; + /** Plugin registration. */ public static void registerWith(Registrar registrar) { - - final EventChannel accelerometerChannel = - new EventChannel(registrar.messenger(), ACCELEROMETER_CHANNEL_NAME); - final StreamHandlerImpl accelerationStreamHandler = - new StreamHandlerImpl( - (SensorManager) - registrar.context().getSystemService(registrar.context().SENSOR_SERVICE), - Sensor.TYPE_ACCELEROMETER); - accelerometerChannel.setStreamHandler(accelerationStreamHandler); - - final EventChannel userAccelChannel = - new EventChannel(registrar.messenger(), USER_ACCELEROMETER_CHANNEL_NAME); - final StreamHandlerImpl linearAccelerationStreamHandler = - new StreamHandlerImpl( - (SensorManager) - registrar.context().getSystemService(registrar.context().SENSOR_SERVICE), - Sensor.TYPE_LINEAR_ACCELERATION); - userAccelChannel.setStreamHandler(linearAccelerationStreamHandler); - - final EventChannel gyroscopeChannel = - new EventChannel(registrar.messenger(), GYROSCOPE_CHANNEL_NAME); - final StreamHandlerImpl gyroScopeStreamHandler = - new StreamHandlerImpl( - (SensorManager) - registrar.context().getSystemService(registrar.context().SENSOR_SERVICE), - Sensor.TYPE_GYROSCOPE); - gyroscopeChannel.setStreamHandler(gyroScopeStreamHandler); + SensorsPlugin plugin = new SensorsPlugin(); + plugin.setupEventChannels(registrar.context(), registrar.messenger()); } @Override public void onAttachedToEngine(FlutterPluginBinding binding) { Context context = binding.getApplicationContext(); - final EventChannel accelerometerChannel = - new EventChannel(binding.getFlutterEngine().getDartExecutor(), ACCELEROMETER_CHANNEL_NAME); + setupEventChannels(context, binding.getFlutterEngine().getDartExecutor()); + } + + @Override + public void onDetachedFromEngine(FlutterPluginBinding binding) { + accelerometerChannel.setStreamHandler(null); + userAccelChannel.setStreamHandler(null); + gyroscopeChannel.setStreamHandler(null); + } + + private void setupEventChannels(Context context, BinaryMessenger messenger) { + accelerometerChannel = new EventChannel(messenger, ACCELEROMETER_CHANNEL_NAME); final StreamHandlerImpl accelerationStreamHandler = new StreamHandlerImpl( (SensorManager) context.getSystemService(context.SENSOR_SERVICE), Sensor.TYPE_ACCELEROMETER); accelerometerChannel.setStreamHandler(accelerationStreamHandler); - final EventChannel userAccelChannel = - new EventChannel( - binding.getFlutterEngine().getDartExecutor(), USER_ACCELEROMETER_CHANNEL_NAME); + userAccelChannel = new EventChannel(messenger, USER_ACCELEROMETER_CHANNEL_NAME); final StreamHandlerImpl linearAccelerationStreamHandler = new StreamHandlerImpl( (SensorManager) context.getSystemService(context.SENSOR_SERVICE), Sensor.TYPE_LINEAR_ACCELERATION); userAccelChannel.setStreamHandler(linearAccelerationStreamHandler); - final EventChannel gyroscopeChannel = - new EventChannel(binding.getFlutterEngine().getDartExecutor(), GYROSCOPE_CHANNEL_NAME); + gyroscopeChannel = new EventChannel(messenger, GYROSCOPE_CHANNEL_NAME); final StreamHandlerImpl gyroScopeStreamHandler = new StreamHandlerImpl( (SensorManager) context.getSystemService(context.SENSOR_SERVICE), Sensor.TYPE_GYROSCOPE); gyroscopeChannel.setStreamHandler(gyroScopeStreamHandler); } - - @Override - public void onDetachedFromEngine(FlutterPluginBinding binding) {} } From 623b10b96e2cfaf8c0ca211095b4520de6f42538 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 8 Oct 2019 13:06:25 -0700 Subject: [PATCH 03/22] rename activities --- .../android/app/src/main/AndroidManifest.xml | 4 ++-- .../plugins/sensorexmaple/MainActivity.java | 14 -------------- .../sensorsexample/EmbeddingV1Activity.java | 13 +++++++++++++ .../plugins/sensorsexample/MainActivity.java | 13 +++++++------ 4 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 packages/sensors/example/android/app/src/main/java/dev/flutter/plugins/sensorexmaple/MainActivity.java create mode 100644 packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1Activity.java diff --git a/packages/sensors/example/android/app/src/main/AndroidManifest.xml b/packages/sensors/example/android/app/src/main/AndroidManifest.xml index dbd898e41a00..b7d1b5b605e2 100644 --- a/packages/sensors/example/android/app/src/main/AndroidManifest.xml +++ b/packages/sensors/example/android/app/src/main/AndroidManifest.xml @@ -4,14 +4,14 @@ - - Date: Tue, 8 Oct 2019 15:41:34 -0700 Subject: [PATCH 04/22] non public --- .../main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java index 105db649eef6..b206335b8487 100644 --- a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java +++ b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java @@ -6,7 +6,7 @@ import android.hardware.SensorManager; import io.flutter.plugin.common.EventChannel; -public class StreamHandlerImpl implements EventChannel.StreamHandler { +class StreamHandlerImpl implements EventChannel.StreamHandler { private SensorEventListener sensorEventListener; private final SensorManager sensorManager; From c2db84cfb4ffaa7a9143b3614f70e2955f84a045 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 8 Oct 2019 16:10:44 -0700 Subject: [PATCH 05/22] Update StreamHandlerImpl.java --- .../java/io/flutter/plugins/sensors/StreamHandlerImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java index b206335b8487..ac0546109f96 100644 --- a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.java +++ b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/StreamHandlerImpl.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.sensors; import android.hardware.Sensor; From 63cff27c6d15bc1fe99d36f1ec6eb497ac1e360e Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 8 Oct 2019 16:10:58 -0700 Subject: [PATCH 06/22] Update MainActivity.java --- .../java/io/flutter/plugins/sensorsexample/MainActivity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java index a291e834568e..52520799c7d3 100644 --- a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java +++ b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/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.sensorsexample; import io.flutter.embedding.android.FlutterActivity; From 74a3097588e8d2c2d467b6e54118934d471ee5a1 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 8 Oct 2019 16:11:08 -0700 Subject: [PATCH 07/22] Update EmbeddingV1Activity.java --- .../flutter/plugins/sensorsexample/EmbeddingV1Activity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1Activity.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1Activity.java index fbe061d77a38..c91a3a942ba5 100644 --- a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1Activity.java +++ b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1Activity.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.sensorsexample; import android.os.Bundle; From 5641b079e5951c4356d76863222cc0a8b81f7684 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Wed, 9 Oct 2019 18:07:09 -0700 Subject: [PATCH 08/22] dependency script --- packages/sensors/android/build.gradle | 25 ++++++++++++++++++++++ packages/sensors/android/gradle.properties | 3 +++ 2 files changed, 28 insertions(+) diff --git a/packages/sensors/android/build.gradle b/packages/sensors/android/build.gradle index 56a76026f57a..2c1d49daee8e 100644 --- a/packages/sensors/android/build.gradle +++ b/packages/sensors/android/build.gradle @@ -45,3 +45,28 @@ 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" + + compileOnly "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" + compileOnly "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" + } + } + } +} \ No newline at end of file diff --git a/packages/sensors/android/gradle.properties b/packages/sensors/android/gradle.properties index 8bd86f680510..a5965ab8dced 100644 --- a/packages/sensors/android/gradle.properties +++ b/packages/sensors/android/gradle.properties @@ -1 +1,4 @@ org.gradle.jvmargs=-Xmx1536M +android.enableR8=true +android.useAndroidX=true +android.enableJetifier=true \ No newline at end of file From 958ac3c279dc48f51f43410c38d8d16a5a8cf793 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 11 Oct 2019 13:40:59 -0700 Subject: [PATCH 09/22] fix gradle script --- packages/connectivity/ios/Classes/ConnectivityPlugin.m | 4 +++- packages/sensors/android/build.gradle | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/connectivity/ios/Classes/ConnectivityPlugin.m b/packages/connectivity/ios/Classes/ConnectivityPlugin.m index c69871175b01..346e5f1777e2 100644 --- a/packages/connectivity/ios/Classes/ConnectivityPlugin.m +++ b/packages/connectivity/ios/Classes/ConnectivityPlugin.m @@ -155,7 +155,9 @@ - (NSString*)convertCLAuthorizationStatusToString:(CLAuthorizationStatus)status case kCLAuthorizationStatusAuthorizedWhenInUse: { return @"authorizedWhenInUse"; } - default: { return @"unknown"; } + default: { + return @"unknown"; + } } } diff --git a/packages/sensors/android/build.gradle b/packages/sensors/android/build.gradle index 2c1d49daee8e..34e1d617dd0c 100644 --- a/packages/sensors/android/build.gradle +++ b/packages/sensors/android/build.gradle @@ -63,9 +63,9 @@ afterEvaluate { android { dependencies { def lifecycle_version = "2.1.0" - - compileOnly "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" - compileOnly "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" + print "ranran ra" + api "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" + api "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" } } } From c2e41522458eca0a29cbaa169608e7fee8fc5157 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 11 Oct 2019 13:41:31 -0700 Subject: [PATCH 10/22] remove debug print --- packages/sensors/android/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/sensors/android/build.gradle b/packages/sensors/android/build.gradle index 34e1d617dd0c..d0fa37f5dc0f 100644 --- a/packages/sensors/android/build.gradle +++ b/packages/sensors/android/build.gradle @@ -63,7 +63,6 @@ afterEvaluate { android { dependencies { def lifecycle_version = "2.1.0" - print "ranran ra" api "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" api "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" } From b0280eeba5bb45d202729156665df71ccc1b3972 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 11 Oct 2019 13:47:44 -0700 Subject: [PATCH 11/22] Update gradle.properties --- packages/sensors/android/gradle.properties | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/sensors/android/gradle.properties b/packages/sensors/android/gradle.properties index a5965ab8dced..8bd86f680510 100644 --- a/packages/sensors/android/gradle.properties +++ b/packages/sensors/android/gradle.properties @@ -1,4 +1 @@ org.gradle.jvmargs=-Xmx1536M -android.enableR8=true -android.useAndroidX=true -android.enableJetifier=true \ No newline at end of file From 4fc48827b13eb9a0014fa95c5486387b033a5000 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 11 Oct 2019 13:48:22 -0700 Subject: [PATCH 12/22] Update build.gradle --- packages/sensors/android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sensors/android/build.gradle b/packages/sensors/android/build.gradle index d0fa37f5dc0f..8ee25e2f6525 100644 --- a/packages/sensors/android/build.gradle +++ b/packages/sensors/android/build.gradle @@ -68,4 +68,4 @@ afterEvaluate { } } } -} \ No newline at end of file +} From 4a1e1cae4cf731ae15153b95deb8a0a194510b8b Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 11 Oct 2019 14:14:40 -0700 Subject: [PATCH 13/22] Update packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java Co-Authored-By: Maurice Parrish --- .../src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java index 631857984529..083463736d72 100644 --- a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java +++ b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java @@ -32,7 +32,7 @@ public static void registerWith(Registrar registrar) { @Override public void onAttachedToEngine(FlutterPluginBinding binding) { - Context context = binding.getApplicationContext(); + final Context context = binding.getApplicationContext(); setupEventChannels(context, binding.getFlutterEngine().getDartExecutor()); } From d4f17a8c0051d4077860af0c6ac4e8381d5bbd3a Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 14 Oct 2019 09:12:16 -0700 Subject: [PATCH 14/22] review fixes --- .../java/io/flutter/plugins/sensors/SensorsPlugin.java | 10 +++++++--- .../example/android/app/src/main/AndroidManifest.xml | 1 - 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java index 083463736d72..063f40641bcf 100644 --- a/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java +++ b/packages/sensors/android/src/main/java/io/flutter/plugins/sensors/SensorsPlugin.java @@ -38,9 +38,7 @@ public void onAttachedToEngine(FlutterPluginBinding binding) { @Override public void onDetachedFromEngine(FlutterPluginBinding binding) { - accelerometerChannel.setStreamHandler(null); - userAccelChannel.setStreamHandler(null); - gyroscopeChannel.setStreamHandler(null); + teardownEventChannels(); } private void setupEventChannels(Context context, BinaryMessenger messenger) { @@ -65,4 +63,10 @@ private void setupEventChannels(Context context, BinaryMessenger messenger) { Sensor.TYPE_GYROSCOPE); gyroscopeChannel.setStreamHandler(gyroScopeStreamHandler); } + + private void teardownEventChannels() { + accelerometerChannel.setStreamHandler(null); + userAccelChannel.setStreamHandler(null); + gyroscopeChannel.setStreamHandler(null); + } } diff --git a/packages/sensors/example/android/app/src/main/AndroidManifest.xml b/packages/sensors/example/android/app/src/main/AndroidManifest.xml index b7d1b5b605e2..67d4eb5e4a5f 100644 --- a/packages/sensors/example/android/app/src/main/AndroidManifest.xml +++ b/packages/sensors/example/android/app/src/main/AndroidManifest.xml @@ -12,7 +12,6 @@ android:windowSoftInputMode="adjustResize"> Date: Tue, 15 Oct 2019 15:17:26 -0700 Subject: [PATCH 15/22] pubspec and gradle --- packages/sensors/CHANGELOG.md | 7 +++++++ packages/sensors/android/build.gradle | 1 + packages/sensors/example/pubspec.yaml | 10 +++++++++- packages/sensors/pubspec.yaml | 5 +++-- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/sensors/CHANGELOG.md b/packages/sensors/CHANGELOG.md index 89e4f9830527..77d5f6877d80 100644 --- a/packages/sensors/CHANGELOG.md +++ b/packages/sensors/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.4.1 + +* Support the v2 Android embedder. +* Update to AndroidX. +* Migrate to using the new e2e test binding. +* Add a e2e test. + ## 0.4.0+3 * Update and migrate iOS example project. diff --git a/packages/sensors/android/build.gradle b/packages/sensors/android/build.gradle index 2c1d49daee8e..8bcb3d948283 100644 --- a/packages/sensors/android/build.gradle +++ b/packages/sensors/android/build.gradle @@ -46,6 +46,7 @@ android { } } +// TODO(cyanglaz): 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/sensors/example/pubspec.yaml b/packages/sensors/example/pubspec.yaml index 0da50897c809..63cf78e65f11 100644 --- a/packages/sensors/example/pubspec.yaml +++ b/packages/sensors/example/pubspec.yaml @@ -7,6 +7,14 @@ dependencies: sensors: path: ../ -flutter: +dev_dependencies: + flutter_driver: + sdk: flutter + e2e: ^0.2.0 +flutter: uses-material-design: true + +environment: + sdk: ">=2.0.0-dev.28.0 <3.0.0" + flutter: ">=1.9.1+hotfix.2 <2.0.0" \ No newline at end of file diff --git a/packages/sensors/pubspec.yaml b/packages/sensors/pubspec.yaml index 2cb3395c7dbc..6db40e93f193 100644 --- a/packages/sensors/pubspec.yaml +++ b/packages/sensors/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for accessing the Android and iOS accelerometer and gyroscope sensors. author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/sensors -version: 0.4.0+3 +version: 0.4.1 flutter: plugin: @@ -19,7 +19,8 @@ dev_dependencies: test: ^1.3.0 flutter_test: sdk: flutter + e2e: ^0.2.0 environment: sdk: ">=2.0.0-dev.28.0 <3.0.0" - flutter: ">=0.1.4 <2.0.0" + flutter: ">=1.6.7 <2.0.0" From 9a66c2d5fc78ad6df8929f8896ce76defe18b102 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 15 Oct 2019 15:42:06 -0700 Subject: [PATCH 16/22] e2e tests --- .../EmbeddingV1ActivityTest.java | 13 ++++++++++ .../sensorsexample/MainActivityTest.java | 15 ++++++++++++ .../test_driver/test/sensors_e2e_test.dart | 15 ++++++++++++ packages/sensors/test/sensors_e2e.dart | 24 +++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1ActivityTest.java create mode 100644 packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivityTest.java create mode 100644 packages/sensors/example/test_driver/test/sensors_e2e_test.dart create mode 100644 packages/sensors/test/sensors_e2e.dart diff --git a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1ActivityTest.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1ActivityTest.java new file mode 100644 index 000000000000..6d0274f50e2c --- /dev/null +++ b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1ActivityTest.java @@ -0,0 +1,13 @@ +package io.flutter.plugins.sensorsexample; + +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/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivityTest.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivityTest.java new file mode 100644 index 000000000000..dee5dffe3553 --- /dev/null +++ b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/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.sensorsexample; + +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/sensors/example/test_driver/test/sensors_e2e_test.dart b/packages/sensors/example/test_driver/test/sensors_e2e_test.dart new file mode 100644 index 000000000000..ff6e9ce74ad9 --- /dev/null +++ b/packages/sensors/example/test_driver/test/sensors_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:async'; +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/sensors/test/sensors_e2e.dart b/packages/sensors/test/sensors_e2e.dart new file mode 100644 index 000000000000..acc356dfc235 --- /dev/null +++ b/packages/sensors/test/sensors_e2e.dart @@ -0,0 +1,24 @@ +// 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:async'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:sensors/sensors.dart'; +import 'package:e2e/e2e.dart'; + +void main() { + E2EWidgetsFlutterBinding.ensureInitialized(); + + testWidgets('Can subscript to accelerometerEvents and get non-null events', + (WidgetTester tester) async { + final Completer completer = + Completer(); + StreamSubscription subscription; + subscription = accelerometerEvents.listen((AccelerometerEvent event) { + completer.complete(event); + subscription.cancel(); + }); + expect(await completer.future, isNotNull); + }); +} From 2ee7ea6ceb54fe5435a4e9b0148bd805b98c85f5 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 15 Oct 2019 16:03:09 -0700 Subject: [PATCH 17/22] revert some formatting change --- packages/connectivity/ios/Classes/ConnectivityPlugin.m | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/connectivity/ios/Classes/ConnectivityPlugin.m b/packages/connectivity/ios/Classes/ConnectivityPlugin.m index 346e5f1777e2..c69871175b01 100644 --- a/packages/connectivity/ios/Classes/ConnectivityPlugin.m +++ b/packages/connectivity/ios/Classes/ConnectivityPlugin.m @@ -155,9 +155,7 @@ - (NSString*)convertCLAuthorizationStatusToString:(CLAuthorizationStatus)status case kCLAuthorizationStatusAuthorizedWhenInUse: { return @"authorizedWhenInUse"; } - default: { - return @"unknown"; - } + default: { return @"unknown"; } } } From 096c6b50e97b13a5f6da32478f0bc5a608f24e26 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 15 Oct 2019 16:08:48 -0700 Subject: [PATCH 18/22] Update MainActivity.java --- .../java/io/flutter/plugins/sensorsexample/MainActivity.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java index 52520799c7d3..6a3459fe336c 100644 --- a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java +++ b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java @@ -9,7 +9,9 @@ import io.flutter.plugins.sensors.SensorsPlugin; public class MainActivity extends FlutterActivity { - + + // TODO(cyanglaz): Remove this once v2 of GeneratedPluginRegistrant rolls to stable. + // https://github.com/flutter/flutter/issues/42694 @Override public void configureFlutterEngine(FlutterEngine flutterEngine) { super.configureFlutterEngine(flutterEngine); From 8d44c5e71fc4a5d676279ddb66f8cb88aa69aac2 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 15 Oct 2019 16:36:01 -0700 Subject: [PATCH 19/22] Update pubspec.yaml --- packages/sensors/example/pubspec.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/sensors/example/pubspec.yaml b/packages/sensors/example/pubspec.yaml index 63cf78e65f11..4d1781877e1d 100644 --- a/packages/sensors/example/pubspec.yaml +++ b/packages/sensors/example/pubspec.yaml @@ -17,4 +17,5 @@ flutter: environment: sdk: ">=2.0.0-dev.28.0 <3.0.0" - flutter: ">=1.9.1+hotfix.2 <2.0.0" \ No newline at end of file + flutter: ">=1.9.1+hotfix.2 <2.0.0" + From 77340b274bc55d27affb1ef517c4bddb3858ede7 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 21 Oct 2019 13:11:53 -0700 Subject: [PATCH 20/22] remove android x constraint --- packages/sensors/android/build.gradle | 7 ++++--- packages/sensors/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/sensors/android/build.gradle b/packages/sensors/android/build.gradle index 1ef0e62b601c..47e7f63623b7 100644 --- a/packages/sensors/android/build.gradle +++ b/packages/sensors/android/build.gradle @@ -63,9 +63,10 @@ afterEvaluate { 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" + def lifecycle_version = "1.1.1" + api "android.arch.lifecycle:runtime:$lifecycle_version" + api "android.arch.lifecycle:common:$lifecycle_version" + api "android.arch.lifecycle:common-java8:$lifecycle_version" } } } diff --git a/packages/sensors/pubspec.yaml b/packages/sensors/pubspec.yaml index 6db40e93f193..912ac19302e3 100644 --- a/packages/sensors/pubspec.yaml +++ b/packages/sensors/pubspec.yaml @@ -23,4 +23,4 @@ dev_dependencies: environment: sdk: ">=2.0.0-dev.28.0 <3.0.0" - flutter: ">=1.6.7 <2.0.0" + flutter: ">=1.9.1+hotfix.2 <2.0.0" From 4fb6d02a7576ae6410a8d2ff405e0c849999ae76 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 21 Oct 2019 13:12:27 -0700 Subject: [PATCH 21/22] remove extra space --- packages/sensors/example/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sensors/example/pubspec.yaml b/packages/sensors/example/pubspec.yaml index 4d1781877e1d..c82faa93999c 100644 --- a/packages/sensors/example/pubspec.yaml +++ b/packages/sensors/example/pubspec.yaml @@ -18,4 +18,4 @@ flutter: environment: sdk: ">=2.0.0-dev.28.0 <3.0.0" flutter: ">=1.9.1+hotfix.2 <2.0.0" - + From b6560592cbbec6c1c076c56c5cc7893a544d3282 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 21 Oct 2019 13:31:34 -0700 Subject: [PATCH 22/22] formatting and lower the min sdk bound --- .../java/io/flutter/plugins/sensorsexample/MainActivity.java | 2 +- packages/sensors/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java index 6a3459fe336c..38d05d82afb5 100644 --- a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java +++ b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java @@ -9,7 +9,7 @@ import io.flutter.plugins.sensors.SensorsPlugin; public class MainActivity extends FlutterActivity { - + // TODO(cyanglaz): Remove this once v2 of GeneratedPluginRegistrant rolls to stable. // https://github.com/flutter/flutter/issues/42694 @Override diff --git a/packages/sensors/pubspec.yaml b/packages/sensors/pubspec.yaml index 912ac19302e3..6db40e93f193 100644 --- a/packages/sensors/pubspec.yaml +++ b/packages/sensors/pubspec.yaml @@ -23,4 +23,4 @@ dev_dependencies: environment: sdk: ">=2.0.0-dev.28.0 <3.0.0" - flutter: ">=1.9.1+hotfix.2 <2.0.0" + flutter: ">=1.6.7 <2.0.0"