Browse Source

Implement navigator.dismissContextualMenu

Guy Carmeli 8 years ago
parent
commit
5899330858

+ 5
- 0
android/app/src/main/java/com/reactnativenavigation/bridge/NavigationReactModule.java View File

180
                 new ContextualMenuParamsParser().parse(BundleConverter.toBundle(params));
180
                 new ContextualMenuParamsParser().parse(BundleConverter.toBundle(params));
181
         NavigationCommandsHandler.showContextualMenu(contextualMenuParams, onButtonClicked);
181
         NavigationCommandsHandler.showContextualMenu(contextualMenuParams, onButtonClicked);
182
     }
182
     }
183
+
184
+    @ReactMethod
185
+    public void dismissContextualMenu() {
186
+        NavigationCommandsHandler.dismissContextualMenu();
187
+    }
183
 }
188
 }

+ 4
- 0
android/app/src/main/java/com/reactnativenavigation/controllers/NavigationActivity.java View File

254
         layout.showContextualMenu(params, onButtonClicked);
254
         layout.showContextualMenu(params, onButtonClicked);
255
     }
255
     }
256
 
256
 
257
+    public void dismissContextualMenu() {
258
+        layout.dismissContextualMenu();
259
+    }
260
+
257
     @Override
261
     @Override
258
     public void onEvent(Event event) {
262
     public void onEvent(Event event) {
259
         if (event.getType().equals(ModalDismissedEvent.TYPE)) {
263
         if (event.getType().equals(ModalDismissedEvent.TYPE)) {

+ 14
- 0
android/app/src/main/java/com/reactnativenavigation/controllers/NavigationCommandsHandler.java View File

344
             }
344
             }
345
         });
345
         });
346
     }
346
     }
347
+
348
+    public static void dismissContextualMenu() {
349
+        final NavigationActivity currentActivity = NavigationActivity.currentActivity;
350
+        if (currentActivity == null) {
351
+            return;
352
+        }
353
+
354
+        NavigationApplication.instance.runOnMainThread(new Runnable() {
355
+            @Override
356
+            public void run() {
357
+                currentActivity.dismissContextualMenu();
358
+            }
359
+        });
360
+    }
347
 }
361
 }

+ 5
- 0
android/app/src/main/java/com/reactnativenavigation/layouts/BottomTabsLayout.java View File

211
         getCurrentScreenStack().peek().showContextualMenu(params, onButtonClicked);
211
         getCurrentScreenStack().peek().showContextualMenu(params, onButtonClicked);
212
     }
212
     }
213
 
213
 
214
+    @Override
215
+    public void dismissContextualMenu() {
216
+        getCurrentScreenStack().peek().dismissContextualMenu();
217
+    }
218
+
214
     public void selectBottomTabByTabIndex(Integer index) {
219
     public void selectBottomTabByTabIndex(Integer index) {
215
         bottomTabs.setCurrentItem(index);
220
         bottomTabs.setCurrentItem(index);
216
     }
221
     }

+ 2
- 0
android/app/src/main/java/com/reactnativenavigation/layouts/Layout.java View File

36
     boolean containsNavigator(String navigatorId);
36
     boolean containsNavigator(String navigatorId);
37
 
37
 
38
     void showContextualMenu(ContextualMenuParams params, Callback onButtonClicked);
38
     void showContextualMenu(ContextualMenuParams params, Callback onButtonClicked);
39
+
40
+    void dismissContextualMenu();
39
 }
41
 }

+ 5
- 0
android/app/src/main/java/com/reactnativenavigation/layouts/SingleScreenLayout.java View File

216
         stack.peek().showContextualMenu(params, onButtonClicked);
216
         stack.peek().showContextualMenu(params, onButtonClicked);
217
     }
217
     }
218
 
218
 
219
+    @Override
220
+    public void dismissContextualMenu() {
221
+        stack.peek().dismissContextualMenu();
222
+    }
223
+
219
     @Override
224
     @Override
220
     public boolean onTitleBarBackButtonClick() {
225
     public boolean onTitleBarBackButtonClick() {
221
         if (leftButtonOnClickListener != null) {
226
         if (leftButtonOnClickListener != null) {

+ 4
- 0
android/app/src/main/java/com/reactnativenavigation/screens/Screen.java View File

218
         setStatusBarColor(styleParams.contextualMenuStatusBarColor);
218
         setStatusBarColor(styleParams.contextualMenuStatusBarColor);
219
     }
219
     }
220
 
220
 
221
+    public void dismissContextualMenu() {
222
+        topBar.dismissContextualMenu();
223
+    }
224
+
221
     public void destroy() {
225
     public void destroy() {
222
         unmountReactView();
226
         unmountReactView();
223
         EventBus.instance.unregister(this);
227
         EventBus.instance.unregister(this);

+ 4
- 0
src/Screen.js View File

114
     return platformSpecific.showContextualMenu(this, params, onButtonPressed);
114
     return platformSpecific.showContextualMenu(this, params, onButtonPressed);
115
   }
115
   }
116
 
116
 
117
+  dismissContextualMenu() {
118
+    return platformSpecific.dismissContextualMenu();
119
+  }
120
+
117
   setOnNavigatorEvent(callback) {
121
   setOnNavigatorEvent(callback) {
118
     this.navigatorEventHandler = callback;
122
     this.navigatorEventHandler = callback;
119
     if (!this.navigatorEventSubscription) {
123
     if (!this.navigatorEventSubscription) {

+ 6
- 1
src/deprecated/platformSpecificDeprecated.android.js View File

486
   newPlatformSpecific.showContextualMenu(contextualMenu, onButtonPressed);
486
   newPlatformSpecific.showContextualMenu(contextualMenu, onButtonPressed);
487
 }
487
 }
488
 
488
 
489
+function dismissContextualMenu() {
490
+  newPlatformSpecific.dismissContextualMenu();
491
+}
492
+
489
 export default {
493
 export default {
490
   startTabBasedApp,
494
   startTabBasedApp,
491
   startSingleScreenApp,
495
   startSingleScreenApp,
505
   navigatorToggleTabs,
509
   navigatorToggleTabs,
506
   navigatorToggleNavBar,
510
   navigatorToggleNavBar,
507
   showSnackbar,
511
   showSnackbar,
508
-  showContextualMenu
512
+  showContextualMenu,
513
+  dismissContextualMenu
509
 };
514
 };

+ 6
- 1
src/platformSpecific.android.js View File

124
   NativeReactModule.showContextualMenu(params, onButtonPressed);
124
   NativeReactModule.showContextualMenu(params, onButtonPressed);
125
 }
125
 }
126
 
126
 
127
+function dismissContextualMenu() {
128
+  NativeReactModule.dismissContextualMenu();
129
+}
130
+
127
 module.exports = {
131
 module.exports = {
128
   startApp,
132
   startApp,
129
   push,
133
   push,
145
   setBottomTabBadgeByNavigatorId,
149
   setBottomTabBadgeByNavigatorId,
146
   setBottomTabBadgeByIndex,
150
   setBottomTabBadgeByIndex,
147
   showSnackbar,
151
   showSnackbar,
148
-  showContextualMenu
152
+  showContextualMenu,
153
+  dismissContextualMenu
149
 };
154
 };