Browse Source

ScreensParamsParser

Daniel Zlotin 8 years ago
parent
commit
78de19a211

+ 50
- 0
android/app/src/main/java/com/reactnativenavigation/bridge/parsers/ScreenParamsParser.java View File

@@ -0,0 +1,50 @@
1
+package com.reactnativenavigation.bridge.parsers;
2
+
3
+import com.facebook.react.bridge.ReadableMap;
4
+import com.facebook.react.bridge.ReadableNativeMap;
5
+import com.reactnativenavigation.controllers.ScreenParams;
6
+
7
+public class ScreenParamsParser implements ParamsParser<ScreenParams> {
8
+    private static final String KEY_TITLE = "title";
9
+    private static final String KEY_SCREEN = "screen";
10
+    private static final String KEY_LABEL = "label";
11
+    private static final String KEY_SCREEN_INSTANCE_ID = "screenInstanceID";
12
+    private static final String KEY_NAVIGATOR_ID = "navigatorID";
13
+    private static final String KEY_NAVIGATOR_EVENT_ID = "navigatorEventID";
14
+    private static final String KEY_ICON = "icon";
15
+    private static final String KEY_NAVIGATOR_BUTTONS = "navigatorButtons";
16
+    private static final String KEY_RIGHT_BUTTONS = "rightButtons";
17
+    private static final String KEY_TOOL_BAR_STYLE = "navigatorStyle";
18
+    private static final String KEY_STATUS_BAR_COLOR = "statusBarColor";
19
+    private static final String KEY_TOOL_BAR_COLOR = "navBarBackgroundColor";
20
+    private static final String KEY_TOOL_BAR_HIDDEN = "navBarHidden";
21
+    private static final String KEY_NAVIGATION_BAR_COLOR = "navigationBarColor";
22
+    private static final String KEY_NAV_BAR_BUTTON_COLOR = "navBarButtonColor";
23
+    private static final String KEY_NAV_BAR_TEXT_COLOR = "navBarTextColor";
24
+    private static final String KEY_BACK_BUTTON_HIDDEN = "backButtonHidden";
25
+    private static final String KEY_TAB_NORMAL_TEXT_COLOR = "tabNormalTextColor";
26
+    private static final String KEY_TAB_SELECTED_TEXT_COLOR = "tabSelectedTextColor";
27
+    private static final String KEY_TAB_INDICATOR_COLOR = "tabIndicatorColor";
28
+    private static final String KEY_BOTTOM_TABS_HIDDEN = "tabBarHidden";
29
+    private static final String KEY_BOTTOM_TABS_HIDDEN_ON_SCROLL = "bottomTabsHiddenOnScroll";
30
+    private static final String KEY_PROPS = "passProps";
31
+
32
+    @Override
33
+    public ScreenParams parse(ReadableMap params) {
34
+        ScreenParams result = new ScreenParams();
35
+        result.title = params.getString(KEY_TITLE);
36
+        result.label = params.getString(KEY_LABEL);
37
+        result.screenId = params.getString(KEY_SCREEN);
38
+        result.screenInstanceId = params.getString(KEY_SCREEN_INSTANCE_ID);
39
+        result.navigatorId = params.getString(KEY_NAVIGATOR_ID);
40
+        result.navigatorEventId = params.getString(KEY_NAVIGATOR_EVENT_ID);
41
+        result.icon = getString(KEY_ICON);
42
+        if (screen.hasKey(KEY_PROPS)) {
43
+            passedProps = ((ReadableNativeMap) screen.getMap(KEY_PROPS)).toHashMap();
44
+        }
45
+        result.buttons = getButtons(screen);
46
+        result.backButtonHidden = getBoolean(screen, KEY_BACK_BUTTON_HIDDEN);
47
+        return result;
48
+    }
49
+
50
+}

+ 1
- 1
android/app/src/main/java/com/reactnativenavigation/controllers/ScreenParams.java View File

@@ -8,7 +8,7 @@ import com.reactnativenavigation.views.TitleBarButton;
8 8
 import java.util.ArrayList;
9 9
 
10 10
 public class ScreenParams {
11
-    public String moduleName;
11
+    public String screenRegisteredId;
12 12
     public Bundle passProps;
13 13
     public ArrayList<TitleBarButton.Params> buttons;
14 14
     public String title;