diff --git a/packages/android_intent/CHANGELOG.md b/packages/android_intent/CHANGELOG.md index 47f1917e3e8a..6160ba54b003 100644 --- a/packages/android_intent/CHANGELOG.md +++ b/packages/android_intent/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.3.6+1 + +* Bump the minimum Flutter version to 1.12.13+hotfix.5. +* Bump the minimum Dart version to 2.3.0. +* Uses Darts spread operator to build plugin arguments internally. +* Remove deprecated API usage warning in AndroidIntentPlugin.java. +* Migrates the Android example to V2 embedding. + ## 0.3.6 * Marks the `action` parameter as optional diff --git a/packages/android_intent/android/build.gradle b/packages/android_intent/android/build.gradle index 008b49ff7719..d261dac7df1c 100644 --- a/packages/android_intent/android/build.gradle +++ b/packages/android_intent/android/build.gradle @@ -43,29 +43,3 @@ dependencies { testImplementation 'androidx.test:core:1.0.0' testImplementation 'org.robolectric:robolectric:4.3' } - -// 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) { - 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 = "1.1.1" - compileOnly "android.arch.lifecycle:runtime:$lifecycle_version" - compileOnly "android.arch.lifecycle:common:$lifecycle_version" - compileOnly "android.arch.lifecycle:common-java8:$lifecycle_version" - } - } - } -} diff --git a/packages/android_intent/android/src/main/java/io/flutter/plugins/androidintent/AndroidIntentPlugin.java b/packages/android_intent/android/src/main/java/io/flutter/plugins/androidintent/AndroidIntentPlugin.java index 10c807979162..2f35dfcf0372 100644 --- a/packages/android_intent/android/src/main/java/io/flutter/plugins/androidintent/AndroidIntentPlugin.java +++ b/packages/android_intent/android/src/main/java/io/flutter/plugins/androidintent/AndroidIntentPlugin.java @@ -42,7 +42,7 @@ public static void registerWith(Registrar registrar) { public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { sender.setApplicationContext(binding.getApplicationContext()); sender.setActivity(null); - impl.startListening(binding.getFlutterEngine().getDartExecutor()); + impl.startListening(binding.getBinaryMessenger()); } @Override diff --git a/packages/android_intent/example/android/app/src/main/AndroidManifest.xml b/packages/android_intent/example/android/app/src/main/AndroidManifest.xml index 7d6fcd44834f..761c35fd64d8 100644 --- a/packages/android_intent/example/android/app/src/main/AndroidManifest.xml +++ b/packages/android_intent/example/android/app/src/main/AndroidManifest.xml @@ -11,25 +11,27 @@ android:label="android_intent_example" android:name="io.flutter.app.FlutterApplication"> - + + + + + diff --git a/packages/android_intent/example/android/app/src/main/java/io/flutter/plugins/androidintentexample/EmbeddingV1Activity.java b/packages/android_intent/example/android/app/src/main/java/io/flutter/plugins/androidintentexample/EmbeddingV1Activity.java index 95dc41a02ef7..1bbe89a4a4cb 100644 --- a/packages/android_intent/example/android/app/src/main/java/io/flutter/plugins/androidintentexample/EmbeddingV1Activity.java +++ b/packages/android_intent/example/android/app/src/main/java/io/flutter/plugins/androidintentexample/EmbeddingV1Activity.java @@ -6,12 +6,13 @@ import android.os.Bundle; import io.flutter.app.FlutterActivity; -import io.flutter.plugins.GeneratedPluginRegistrant; +import io.flutter.plugins.androidintent.AndroidIntentPlugin; public class EmbeddingV1Activity extends FlutterActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - GeneratedPluginRegistrant.registerWith(this); + AndroidIntentPlugin.registerWith( + registrarFor("io.flutter.plugins.androidintent.AndroidIntentPlugin")); } } diff --git a/packages/android_intent/example/android/app/src/main/java/io/flutter/plugins/androidintentexample/MainActivity.java b/packages/android_intent/example/android/app/src/main/java/io/flutter/plugins/androidintentexample/MainActivity.java deleted file mode 100644 index 56e0bab207d4..000000000000 --- a/packages/android_intent/example/android/app/src/main/java/io/flutter/plugins/androidintentexample/MainActivity.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.flutter.plugins.androidintentexample; - -import io.flutter.embedding.android.FlutterActivity; -import io.flutter.embedding.engine.FlutterEngine; -import io.flutter.plugins.androidintent.AndroidIntentPlugin; - -public class MainActivity extends FlutterActivity { - @Override - public void configureFlutterEngine(FlutterEngine flutterEngine) { - flutterEngine.getPlugins().add(new AndroidIntentPlugin()); - } -} diff --git a/packages/android_intent/example/pubspec.yaml b/packages/android_intent/example/pubspec.yaml index 4418e9fb82c6..22ff833f8198 100644 --- a/packages/android_intent/example/pubspec.yaml +++ b/packages/android_intent/example/pubspec.yaml @@ -16,6 +16,3 @@ dev_dependencies: # The following section is specific to Flutter. flutter: uses-material-design: true - -environment: - flutter: ">=1.9.1+hotfix.2 <2.0.0" \ No newline at end of file diff --git a/packages/android_intent/lib/android_intent.dart b/packages/android_intent/lib/android_intent.dart index 26e270a3a79b..ff95299a93fd 100644 --- a/packages/android_intent/lib/android_intent.dart +++ b/packages/android_intent/lib/android_intent.dart @@ -134,31 +134,23 @@ class AndroidIntent { if (!_platform.isAndroid) { return; } - final Map args = {}; - if (action != null) { - args['action'] = action; - } - if (flags != null) { - args['flags'] = convertFlags(flags); - } - if (category != null) { - args['category'] = category; - } - if (data != null) { - args['data'] = data; - } - if (arguments != null) { - args['arguments'] = arguments; - } - if (package != null) { - args['package'] = package; - if (componentName != null) { - args['componentName'] = componentName; - } - } - if (type != null) { - args['type'] = type; - } - await _channel.invokeMethod('launch', args); + + await _channel.invokeMethod('launch', _buildArguments()); + } + + /// Constructs the map of arguments which is passed to the plugin. + Map _buildArguments() { + return { + if (action != null) 'action': action, + if (flags != null) 'flags': convertFlags(flags), + if (category != null) 'category': category, + if (data != null) 'data': data, + if (arguments != null) 'arguments': arguments, + if (package != null) ...{ + 'package': package, + if (componentName != null) 'componentName': componentName, + }, + if (type != null) 'type': type, + }; } } diff --git a/packages/android_intent/pubspec.yaml b/packages/android_intent/pubspec.yaml index 2faf45e915f6..82f6e187ace5 100644 --- a/packages/android_intent/pubspec.yaml +++ b/packages/android_intent/pubspec.yaml @@ -1,7 +1,7 @@ name: android_intent description: Flutter plugin for launching Android Intents. Not supported on iOS. homepage: https://github.com/flutter/plugins/tree/master/packages/android_intent -version: 0.3.6 +version: 0.3.6+1 flutter: plugin: @@ -23,5 +23,5 @@ dev_dependencies: pedantic: ^1.8.0 environment: - sdk: ">=2.0.0-dev.28.0 <3.0.0" - flutter: ">=1.10.0 <2.0.0" + sdk: ">=2.3.0 <3.0.0" + flutter: ">=1.12.13+hotfix.5 <2.0.0" \ No newline at end of file