From ade8dfac3dfb4d2ea04b45ff589fd073d8fc4274 Mon Sep 17 00:00:00 2001 From: Emmanuel Garcia Date: Fri, 1 Nov 2019 16:58:26 -0700 Subject: [PATCH] Move the plugin registrant to io.flutter.plugins and add the @Keep annotation (#44011) --- .../MainActivity.kt | 2 +- .../java/io/flutter/add2app/MainActivity.java | 2 +- .../io/flutter/addtoapp/MainActivity.java | 2 +- .../io/flutter/addtoapp/MainActivity.java | 2 +- packages/flutter_tools/lib/src/plugins.dart | 29 +++++++------------ .../androidIdentifier/MainActivity.java.tmpl | 2 +- .../androidIdentifier/MainActivity.kt.tmpl | 2 +- .../host/MainActivity.java.tmpl | 2 +- .../test/general.shard/plugins_test.dart | 10 +++---- 9 files changed, 23 insertions(+), 30 deletions(-) diff --git a/dev/integration_tests/android_embedding_v2_smoke_test/android/app/src/main/kotlin/com/example/android_embedding_v2_smoke_test/MainActivity.kt b/dev/integration_tests/android_embedding_v2_smoke_test/android/app/src/main/kotlin/com/example/android_embedding_v2_smoke_test/MainActivity.kt index 663897810cf..b4675214f0a 100644 --- a/dev/integration_tests/android_embedding_v2_smoke_test/android/app/src/main/kotlin/com/example/android_embedding_v2_smoke_test/MainActivity.kt +++ b/dev/integration_tests/android_embedding_v2_smoke_test/android/app/src/main/kotlin/com/example/android_embedding_v2_smoke_test/MainActivity.kt @@ -1,9 +1,9 @@ package com.example.android_embedding_v2_smoke_test import androidx.annotation.NonNull; -import dev.flutter.plugins.GeneratedPluginRegistrant import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine +import io.flutter.plugins.GeneratedPluginRegistrant class MainActivity: FlutterActivity() { override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { diff --git a/dev/integration_tests/android_host_app_v2_embedding/app/src/main/java/io/flutter/add2app/MainActivity.java b/dev/integration_tests/android_host_app_v2_embedding/app/src/main/java/io/flutter/add2app/MainActivity.java index 9c3fcc0263d..4d68dc157d8 100644 --- a/dev/integration_tests/android_host_app_v2_embedding/app/src/main/java/io/flutter/add2app/MainActivity.java +++ b/dev/integration_tests/android_host_app_v2_embedding/app/src/main/java/io/flutter/add2app/MainActivity.java @@ -1,9 +1,9 @@ package io.flutter.add2app; import androidx.annotation.NonNull; -import dev.flutter.plugins.GeneratedPluginRegistrant; import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.plugins.GeneratedPluginRegistrant; public class MainActivity extends FlutterActivity { @Override diff --git a/dev/integration_tests/android_module_host_with_custom_build_v2_embedding/app/src/main/java/io/flutter/addtoapp/MainActivity.java b/dev/integration_tests/android_module_host_with_custom_build_v2_embedding/app/src/main/java/io/flutter/addtoapp/MainActivity.java index 9c3fcc0263d..4d68dc157d8 100644 --- a/dev/integration_tests/android_module_host_with_custom_build_v2_embedding/app/src/main/java/io/flutter/addtoapp/MainActivity.java +++ b/dev/integration_tests/android_module_host_with_custom_build_v2_embedding/app/src/main/java/io/flutter/addtoapp/MainActivity.java @@ -1,9 +1,9 @@ package io.flutter.add2app; import androidx.annotation.NonNull; -import dev.flutter.plugins.GeneratedPluginRegistrant; import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.plugins.GeneratedPluginRegistrant; public class MainActivity extends FlutterActivity { @Override diff --git a/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/src/main/java/io/flutter/addtoapp/MainActivity.java b/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/src/main/java/io/flutter/addtoapp/MainActivity.java index 9c3fcc0263d..4d68dc157d8 100644 --- a/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/src/main/java/io/flutter/addtoapp/MainActivity.java +++ b/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/src/main/java/io/flutter/addtoapp/MainActivity.java @@ -1,9 +1,9 @@ package io.flutter.add2app; import androidx.annotation.NonNull; -import dev.flutter.plugins.GeneratedPluginRegistrant; import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.plugins.GeneratedPluginRegistrant; public class MainActivity extends FlutterActivity { @Override diff --git a/packages/flutter_tools/lib/src/plugins.dart b/packages/flutter_tools/lib/src/plugins.dart index 251d8cbc5ae..4c183979da0 100644 --- a/packages/flutter_tools/lib/src/plugins.dart +++ b/packages/flutter_tools/lib/src/plugins.dart @@ -311,12 +311,14 @@ public final class GeneratedPluginRegistrant { } '''; -const String _androidPluginRegistryTemplateNewEmbedding = '''package dev.flutter.plugins; +const String _androidPluginRegistryTemplateNewEmbedding = '''package io.flutter.plugins; {{#androidX}} +import androidx.annotation.Keep; import androidx.annotation.NonNull; {{/androidX}} {{^androidX}} +import android.support.annotation.Keep; import android.support.annotation.NonNull; {{/androidX}} import io.flutter.embedding.engine.FlutterEngine; @@ -329,6 +331,7 @@ import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry; * This file is generated by the Flutter tool based on the * plugins that support the Android platform. */ +@Keep public final class GeneratedPluginRegistrant { public static void registerWith(@NonNull FlutterEngine flutterEngine) { {{#needsShim}} @@ -399,10 +402,14 @@ Future _writeAndroidPluginRegistrant(FlutterProject project, List 'main', 'java', ); - - String registryPath; + final String registryPath = fs.path.join( + javaSourcePath, + 'io', + 'flutter', + 'plugins', + 'GeneratedPluginRegistrant.java', + ); String templateContent; - final String appEmbeddingVersion = _getAndroidEmbeddingVersion(project); switch (appEmbeddingVersion) { case '2': @@ -415,23 +422,9 @@ Future _writeAndroidPluginRegistrant(FlutterProject project, List break; } } - registryPath = fs.path.join( - javaSourcePath, - 'dev', - 'flutter', - 'plugins', - 'GeneratedPluginRegistrant.java', - ); templateContent = _androidPluginRegistryTemplateNewEmbedding; break; case '1': - registryPath = fs.path.join( - javaSourcePath, - 'io', - 'flutter', - 'plugins', - 'GeneratedPluginRegistrant.java', - ); templateContent = _androidPluginRegistryTemplateOldEmbedding; break; default: diff --git a/packages/flutter_tools/templates/app/android-java.tmpl/app/src/main/java/androidIdentifier/MainActivity.java.tmpl b/packages/flutter_tools/templates/app/android-java.tmpl/app/src/main/java/androidIdentifier/MainActivity.java.tmpl index 9371a79fea1..66dede34dad 100644 --- a/packages/flutter_tools/templates/app/android-java.tmpl/app/src/main/java/androidIdentifier/MainActivity.java.tmpl +++ b/packages/flutter_tools/templates/app/android-java.tmpl/app/src/main/java/androidIdentifier/MainActivity.java.tmpl @@ -7,9 +7,9 @@ import androidx.annotation.NonNull; {{^androidX}} import android.support.annotation.NonNull; {{/androidX}} -import dev.flutter.plugins.GeneratedPluginRegistrant; import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.plugins.GeneratedPluginRegistrant; public class MainActivity extends FlutterActivity { @Override diff --git a/packages/flutter_tools/templates/app/android-kotlin.tmpl/app/src/main/kotlin/androidIdentifier/MainActivity.kt.tmpl b/packages/flutter_tools/templates/app/android-kotlin.tmpl/app/src/main/kotlin/androidIdentifier/MainActivity.kt.tmpl index 89a15135268..f69d311aa93 100644 --- a/packages/flutter_tools/templates/app/android-kotlin.tmpl/app/src/main/kotlin/androidIdentifier/MainActivity.kt.tmpl +++ b/packages/flutter_tools/templates/app/android-kotlin.tmpl/app/src/main/kotlin/androidIdentifier/MainActivity.kt.tmpl @@ -7,9 +7,9 @@ import androidx.annotation.NonNull; {{^androidX}} import android.support.annotation.NonNull; {{/androidX}} -import dev.flutter.plugins.GeneratedPluginRegistrant import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine +import io.flutter.plugins.GeneratedPluginRegistrant class MainActivity: FlutterActivity() { override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { diff --git a/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/java/androidIdentifier/host/MainActivity.java.tmpl b/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/java/androidIdentifier/host/MainActivity.java.tmpl index 32963b36813..a24e438d65d 100644 --- a/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/java/androidIdentifier/host/MainActivity.java.tmpl +++ b/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/java/androidIdentifier/host/MainActivity.java.tmpl @@ -8,9 +8,9 @@ import androidx.annotation.NonNull; {{^androidX}} import android.support.annotation.NonNull; {{/androidX}} -import dev.flutter.plugins.GeneratedPluginRegistrant; import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.plugins.GeneratedPluginRegistrant; public class MainActivity extends FlutterActivity { @Override diff --git a/packages/flutter_tools/test/general.shard/plugins_test.dart b/packages/flutter_tools/test/general.shard/plugins_test.dart index 67d232f585f..3bde6ec6697 100644 --- a/packages/flutter_tools/test/general.shard/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/plugins_test.dart @@ -190,11 +190,11 @@ void main() { await injectPlugins(flutterProject); final File registrant = flutterProject.directory - .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'dev', 'flutter', 'plugins')) + .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins')) .childFile('GeneratedPluginRegistrant.java'); expect(registrant.existsSync(), isTrue); - expect(registrant.readAsStringSync(), contains('package dev.flutter.plugins')); + expect(registrant.readAsStringSync(), contains('package io.flutter.plugins')); expect(registrant.readAsStringSync(), contains('class GeneratedPluginRegistrant')); }, overrides: { FileSystem: () => fs, @@ -282,7 +282,7 @@ plugin3:${pluginUsingOldEmbeddingDir.childDirectory('lib').uri.toString()} await injectPlugins(flutterProject); final File registrant = flutterProject.directory - .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'dev', 'flutter', 'plugins')) + .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins')) .childFile('GeneratedPluginRegistrant.java'); expect(registrant.readAsStringSync(), @@ -362,11 +362,11 @@ plugin3:${pluginUsingOldEmbeddingDir.childDirectory('lib').uri.toString()} await injectPlugins(flutterProject); final File registrant = flutterProject.directory - .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'dev', 'flutter', 'plugins')) + .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins')) .childFile('GeneratedPluginRegistrant.java'); expect(registrant.existsSync(), isTrue); - expect(registrant.readAsStringSync(), contains('package dev.flutter.plugins')); + expect(registrant.readAsStringSync(), contains('package io.flutter.plugins')); expect(registrant.readAsStringSync(), contains('class GeneratedPluginRegistrant')); }, overrides: { FileSystem: () => fs,