From 01e72797b12b80606eed295d608f2454bcfdd6e8 Mon Sep 17 00:00:00 2001
From: Jidong Chen <jidongchen93@gmail.com>
Date: Fri, 14 Jun 2019 16:09:37 +0800
Subject: [PATCH] fix

---
 .../taobao/idlefish/flutterboost/ContainerRecord.java |  2 +-
 .../flutterboost/messageing/NavigationService.java    |  1 -
 lib/container/container_coordinator.dart              |  5 +++--
 lib/flutter_boost.dart                                | 11 +++++++++++
 lib/messaging/service/navigation_service.dart         | 11 +----------
 5 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/android/src/main/java/com/taobao/idlefish/flutterboost/ContainerRecord.java b/android/src/main/java/com/taobao/idlefish/flutterboost/ContainerRecord.java
index 22a9587..b7a070c 100755
--- a/android/src/main/java/com/taobao/idlefish/flutterboost/ContainerRecord.java
+++ b/android/src/main/java/com/taobao/idlefish/flutterboost/ContainerRecord.java
@@ -142,7 +142,7 @@ public class ContainerRecord implements IContainerRecord {
         map.put("name", mContainer.getContainerName());
         map.put("uniqueId", mUniqueId);
 
-        FlutterBoostPlugin.getInstance().sendEvent("backPressedCallback",map);
+        FlutterBoostPlugin.getInstance().sendEvent("lifecycle",map);
 
         mContainer.getBoostFlutterView().onBackPressed();
     }
diff --git a/android/src/main/java/com/taobao/idlefish/flutterboost/messageing/NavigationService.java b/android/src/main/java/com/taobao/idlefish/flutterboost/messageing/NavigationService.java
index 3afc69f..c19e0fc 100755
--- a/android/src/main/java/com/taobao/idlefish/flutterboost/messageing/NavigationService.java
+++ b/android/src/main/java/com/taobao/idlefish/flutterboost/messageing/NavigationService.java
@@ -35,7 +35,6 @@ public class NavigationService {
 
     public static MethodChannel methodChannel = null;
 
-
     public static void onNativePageResult(final MessageResult<Boolean> result, String uniqueId, String key, Map resultData, Map params) {
         Map<String, Object> args = new HashMap<>();
         args.put("uniqueId", uniqueId);
diff --git a/lib/container/container_coordinator.dart b/lib/container/container_coordinator.dart
index c351695..bfdd0da 100755
--- a/lib/container/container_coordinator.dart
+++ b/lib/container/container_coordinator.dart
@@ -24,7 +24,6 @@
 import 'dart:async';
 
 import 'package:flutter/material.dart';
-import 'package:flutter_boost/messaging/service/navigation_service.dart';
 import 'package:flutter_boost/container/boost_container.dart';
 import 'package:flutter_boost/flutter_boost.dart';
 import 'package:flutter_boost/messaging/native_page_container_event_handler.dart';
@@ -37,7 +36,9 @@ class ContainerCoordinator implements NativePageContainerEventHandler {
   PageBuilder _defaultPageBuilder;
 
   ContainerCoordinator() {
-    NavigationService.listenEvent(onChannelEvent);
+    FlutterBoost.singleton.addEventListener("lifecycle", (String name , Map arguments){
+      onChannelEvent(arguments);
+    });
   }
 
   BoostContainerSettings _createContainerSettings(
diff --git a/lib/flutter_boost.dart b/lib/flutter_boost.dart
index 8048542..0562d58 100755
--- a/lib/flutter_boost.dart
+++ b/lib/flutter_boost.dart
@@ -202,4 +202,15 @@ class FlutterBoost {
   ///register callbacks for Navigators push & pop
   VoidCallback addBoostNavigatorObserver(BoostNavigatorObserver observer) =>
       _observersHolder.addObserver<BoostNavigatorObserver>(observer);
+
+
+  //Listen broadcast event from native.
+  Function addEventListener(String name , EventListener listener){
+    return _broadcastor.addEventListener(name, listener);
+  }
+
+  //Send broadcast event to native.
+  void sendEvent(String name , Map arguments){
+    _broadcastor.sendEvent(name, arguments);
+  }
 }
diff --git a/lib/messaging/service/navigation_service.dart b/lib/messaging/service/navigation_service.dart
index 2f8f3e4..e6235fe 100755
--- a/lib/messaging/service/navigation_service.dart
+++ b/lib/messaging/service/navigation_service.dart
@@ -30,15 +30,6 @@ class NavigationService {
 
   static MethodChannel methodChannel;
 
- //List event from event channel.
- static int listenEvent(void onData(dynamic event)) {
-//     return _service.listenEvent(onData);
- }
- //Cancel event for subscription with ID.
- static void cancelEventForSubscription(int subID) {
-//      _service.cancelEventForSubscription(subID);
- }
-
  static Future<bool> onShownContainerChanged(String newName,String oldName,Map params) {
      Map<String,dynamic> properties = new Map<String,dynamic>();
      properties["newName"]=newName;
@@ -67,7 +58,7 @@ class NavigationService {
      });
    } catch (e) {
      print('Page on start exception');
-     return Future<Map>.value({});
+     return Future<Map>((){});
  }
  }
  static Future<bool> openPage(String pageName,Map params,bool animated) {
-- 
2.26.2