Bläddra i källkod

Android modal life cycle screen events added, Fixes #1144 (#1200)

Omer Karakose 8 år sedan
förälder
incheckning
82b349889b

+ 10
- 0
android/app/src/main/java/com/reactnativenavigation/controllers/NavigationActivity.java Visa fil

35
 import com.reactnativenavigation.params.TitleBarButtonParams;
35
 import com.reactnativenavigation.params.TitleBarButtonParams;
36
 import com.reactnativenavigation.params.TitleBarLeftButtonParams;
36
 import com.reactnativenavigation.params.TitleBarLeftButtonParams;
37
 import com.reactnativenavigation.react.ReactGateway;
37
 import com.reactnativenavigation.react.ReactGateway;
38
+import com.reactnativenavigation.screens.Screen;
38
 import com.reactnativenavigation.utils.OrientationHelper;
39
 import com.reactnativenavigation.utils.OrientationHelper;
39
 import com.reactnativenavigation.views.SideMenu.Side;
40
 import com.reactnativenavigation.views.SideMenu.Side;
40
 
41
 
235
     }
236
     }
236
 
237
 
237
     void showModal(ScreenParams screenParams) {
238
     void showModal(ScreenParams screenParams) {
239
+        Screen previousScreen = layout.getCurrentScreen();
240
+        NavigationApplication.instance.getEventEmitter().sendScreenChangedEvent("willDisappear", previousScreen.getNavigatorEventId());
241
+        NavigationApplication.instance.getEventEmitter().sendScreenChangedEvent("didDisappear", previousScreen.getNavigatorEventId());
238
         modalController.showModal(screenParams);
242
         modalController.showModal(screenParams);
239
     }
243
     }
240
 
244
 
241
     void dismissTopModal() {
245
     void dismissTopModal() {
242
         modalController.dismissTopModal();
246
         modalController.dismissTopModal();
247
+        Screen previousScreen = layout.getCurrentScreen();
248
+        NavigationApplication.instance.getEventEmitter().sendScreenChangedEvent("willAppear", previousScreen.getNavigatorEventId());
249
+        NavigationApplication.instance.getEventEmitter().sendScreenChangedEvent("didAppear", previousScreen.getNavigatorEventId());
243
     }
250
     }
244
 
251
 
245
     void dismissAllModals() {
252
     void dismissAllModals() {
246
         modalController.dismissAllModals();
253
         modalController.dismissAllModals();
254
+        Screen previousScreen = layout.getCurrentScreen();
255
+        NavigationApplication.instance.getEventEmitter().sendScreenChangedEvent("willAppear", previousScreen.getNavigatorEventId());
256
+        NavigationApplication.instance.getEventEmitter().sendScreenChangedEvent("didAppear", previousScreen.getNavigatorEventId());
247
     }
257
     }
248
 
258
 
249
     public void showLightBox(LightBoxParams params) {
259
     public void showLightBox(LightBoxParams params) {