react-native-navigation的迁移库

NavigationReactModule.java 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.reactnativenavigation.bridge;
  2. import com.facebook.react.bridge.ReactApplicationContext;
  3. import com.facebook.react.bridge.ReactContextBaseJavaModule;
  4. import com.facebook.react.bridge.ReactMethod;
  5. import com.facebook.react.bridge.ReadableArray;
  6. import com.facebook.react.bridge.ReadableMap;
  7. import com.reactnativenavigation.controllers.NavigationCommandsHandler;
  8. import com.reactnativenavigation.params.TitleBarButtonParams;
  9. import com.reactnativenavigation.params.parsers.TitleBarButtonParamsParser;
  10. import java.util.List;
  11. /**
  12. * The basic abstract components we will expose:
  13. * BottomTabs (app) - boolean
  14. * TopBar (per screen)
  15. * - TitleBar
  16. * - TopTabs (segmented control / view pager)
  17. * DeviceStatusBar (app) (colors are per screen)
  18. * AndroidNavigationBar (app) (colors are per screen)
  19. * SideMenu (app) - boolean
  20. */
  21. public class NavigationReactModule extends ReactContextBaseJavaModule {
  22. public static final String NAME = "NavigationReactModule";
  23. public NavigationReactModule(ReactApplicationContext reactContext) {
  24. super(reactContext);
  25. }
  26. @Override
  27. public String getName() {
  28. return NAME;
  29. }
  30. @ReactMethod
  31. public void startApp(final ReadableMap params) {
  32. NavigationCommandsHandler.startApp(BundleConverter.toBundle(params));
  33. }
  34. @ReactMethod
  35. public void setScreenTitleBarTitle(String screenInstanceId, String title) {
  36. NavigationCommandsHandler.setScreenTitleBarTitle(screenInstanceId, title);
  37. }
  38. @ReactMethod
  39. public void setScreenTitleBarButtons(String screenInstanceId, String navigatorEventId, ReadableArray buttons) {
  40. List<TitleBarButtonParams> titleBarButtons = TitleBarButtonParamsParser.parseButtons(BundleConverter.toBundle(buttons));
  41. NavigationCommandsHandler.setScreenTitleBarButtons(screenInstanceId, navigatorEventId, titleBarButtons);
  42. }
  43. @ReactMethod
  44. public void setTabBadge(final ReadableMap params) {
  45. }
  46. @ReactMethod
  47. public void selectBottomTab(final ReadableMap params) {
  48. }
  49. @ReactMethod
  50. public void toggleSideMenuVisible(final ReadableMap params) {
  51. }
  52. @ReactMethod
  53. public void toggleTopBarVisible(final ReadableMap params) {
  54. }
  55. @ReactMethod
  56. public void setTopBarVisible(String screenInstanceID, boolean hidden, boolean animated) {
  57. NavigationCommandsHandler.setTopBarVisible(screenInstanceID, hidden, animated);
  58. }
  59. @ReactMethod
  60. public void toggleBottomTabsVisible(final ReadableMap params) {
  61. }
  62. @ReactMethod
  63. public void setBottomTabsVisible(final ReadableMap params) {
  64. }
  65. @ReactMethod
  66. public void push(final ReadableMap params) {
  67. NavigationCommandsHandler.push(BundleConverter.toBundle(params));
  68. }
  69. @ReactMethod
  70. public void pop(final ReadableMap params) {
  71. NavigationCommandsHandler.pop(BundleConverter.toBundle(params));
  72. }
  73. @ReactMethod
  74. public void popToRoot(final ReadableMap params) {
  75. NavigationCommandsHandler.popToRoot(BundleConverter.toBundle(params));
  76. }
  77. @ReactMethod
  78. public void newStack(final ReadableMap params) {
  79. NavigationCommandsHandler.newStack(BundleConverter.toBundle(params));
  80. }
  81. @ReactMethod
  82. public void showModal(final ReadableMap params) {
  83. NavigationCommandsHandler.showModal(BundleConverter.toBundle(params));
  84. }
  85. @ReactMethod
  86. public void dismissAllModals() {
  87. NavigationCommandsHandler.dismissAlModals();
  88. }
  89. @ReactMethod
  90. public void dismissTopModal() {
  91. NavigationCommandsHandler.dismissTopModal();
  92. }
  93. }