Commit 24a3e58c authored by Mikkel Nygaard Ravn's avatar Mikkel Nygaard Ravn Committed by GitHub

Android plugin registry (#9715)

parent aba60954
......@@ -77,26 +77,20 @@ void _writeFlutterPluginsList(String directory, List<Plugin> plugins) {
const String _androidPluginRegistryTemplate = '''package io.flutter.plugins;
import io.flutter.app.FlutterActivity;
{{#plugins}}
import io.flutter.plugin.common.PluginRegistry;
import {{package}}.{{class}};
{{/plugins}}
/**
* Generated file. Do not edit.
*/
public class PluginRegistry {
public final class GeneratedPluginRegistrant {
public static void registerWith(PluginRegistry registry) {
{{#plugins}}
public {{class}} {{name}};
{{class}}.registerWith(registry.registrarFor("{{package}}.{{class}}"));
{{/plugins}}
public void registerAll(FlutterActivity activity) {
{{#plugins}}
{{name}} = {{class}}.register(activity);
{{/plugins}}
}
}
}
''';
......@@ -119,7 +113,7 @@ void _writeAndroidPluginRegistry(String directory, List<Plugin> plugins) {
final Directory registryDirectory =
fs.directory(fs.path.join(javaSourcePath, 'io', 'flutter', 'plugins'));
registryDirectory.createSync(recursive: true);
final File registryFile = registryDirectory.childFile('PluginRegistry.java');
final File registryFile = registryDirectory.childFile('GeneratedPluginRegistrant.java');
registryFile.writeAsStringSync(pluginRegistry);
}
......
......@@ -6,7 +6,7 @@
.DS_Store
/build
/captures
PluginRegistry.java
GeneratedPluginRegistrant.java
/gradle
/gradlew
......
package {{androidIdentifier}};
import android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.PluginRegistry;
import io.flutter.plugin.common.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
PluginRegistry pluginRegistry;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pluginRegistry = new PluginRegistry();
pluginRegistry.registerAll(this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
}
}
package {{androidIdentifier}};
import io.flutter.app.FlutterActivity;
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.MethodCall;
import io.flutter.plugin.common.PluginRegistry.Registrar;
/**
* {{pluginClass}}
*/
public class {{pluginClass}} implements MethodCallHandler {
private FlutterActivity activity;
public static {{pluginClass}} register(FlutterActivity activity) {
return new {{pluginClass}}(activity);
}
private {{pluginClass}}(FlutterActivity activity) {
this.activity = activity;
new MethodChannel(activity.getFlutterView(), "{{projectName}}").setMethodCallHandler(this);
/**
* Plugin registration.
*/
public static void registerWith(Registrar registrar) {
final MethodChannel channel = new MethodChannel(registrar.messenger(), "{{projectName}}");
channel.setMethodCallHandler(new {{pluginClass}}());
}
@Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment