javaDispatcherClassContent function
Implementation
String javaDispatcherClassContent(String prefix) => '''
import android.util.Log;
import java.util.HashMap;
import java.util.Map;
import io.flutter.plugin.common.BasicMessageChannel;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.StandardMessageCodec;
public class $prefix$typeCallbackDispatcher {
public static Map<String, ${prefix}UniCallback> uniCallbackCache = new HashMap<>();
private static boolean isInit = false;
public static void init(BinaryMessenger binaryMessenger) {
if (!isInit) {
BasicMessageChannel<Object> channel =
new BasicMessageChannel<>(binaryMessenger, "$channelPrefix.UniCallbackManager.callback_channel.dispose${prefix.suffix()}", new StandardMessageCodec());
channel.setMessageHandler((message, reply) -> {
Map<String, Object> msg = (Map<String, Object>) message;
String uniCallbackName = (String) msg.get("callback");
${prefix}UniCallback uniCallback = uniCallbackCache.get(uniCallbackName);
uniCallback.disposeDelegate.disposeCallback(uniCallback);
uniCallbackCache.remove(uniCallbackName);
});
isInit = true;
}
}
public static void registerCallback(String name, ${prefix}UniCallback uniCallback) {
uniCallbackCache.put(name, uniCallback);
}
}
''';