Browse Source

passProps android

Daniel Zlotin 8 years ago
parent
commit
c6bf2f1226

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

18
     public String tabLabel;
18
     public String tabLabel;
19
     public Drawable tabIcon;
19
     public Drawable tabIcon;
20
 
20
 
21
-    // TODO navigationParams should be a terminated. destroyed. annihilated. disintegrated. banished from existence. + abolished, eradicated, exterminated...
22
     public String screenInstanceId;
21
     public String screenInstanceId;
23
     public String navigatorEventId;
22
     public String navigatorEventId;
24
     public Bundle navigationParams;
23
     public Bundle navigationParams;

+ 3
- 5
android/app/src/main/java/com/reactnativenavigation/screens/FragmentScreen.java View File

8
 import android.support.v7.app.AppCompatActivity;
8
 import android.support.v7.app.AppCompatActivity;
9
 import android.widget.FrameLayout;
9
 import android.widget.FrameLayout;
10
 
10
 
11
+import com.reactnativenavigation.R;
11
 import com.reactnativenavigation.params.ScreenParams;
12
 import com.reactnativenavigation.params.ScreenParams;
12
-import com.reactnativenavigation.utils.ViewUtils;
13
 import com.reactnativenavigation.views.ContentView;
13
 import com.reactnativenavigation.views.ContentView;
14
 import com.reactnativenavigation.views.TitleBarBackButtonListener;
14
 import com.reactnativenavigation.views.TitleBarBackButtonListener;
15
 
15
 
16
 import java.lang.reflect.InvocationTargetException;
16
 import java.lang.reflect.InvocationTargetException;
17
 import java.lang.reflect.Method;
17
 import java.lang.reflect.Method;
18
 
18
 
19
-import com.reactnativenavigation.R;
20
-
21
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
19
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
22
 
20
 
23
 @SuppressWarnings("ResourceType")
21
 @SuppressWarnings("ResourceType")
91
             String className = screenParams.fragmentCreatorClassName;
89
             String className = screenParams.fragmentCreatorClassName;
92
             Class<?> fragmentCreatorClass = Class.forName(className);
90
             Class<?> fragmentCreatorClass = Class.forName(className);
93
             Method method = fragmentCreatorClass.getMethod(CONTRACT_GET_FRAGMENT, Bundle.class);
91
             Method method = fragmentCreatorClass.getMethod(CONTRACT_GET_FRAGMENT, Bundle.class);
94
-            return (android.app.Fragment) method.invoke(null, "TODO");
92
+            return (android.app.Fragment) method.invoke(null, new Bundle());
95
         } catch (NoSuchMethodException noSuchMethod) {
93
         } catch (NoSuchMethodException noSuchMethod) {
96
             return null;
94
             return null;
97
         }
95
         }
103
             String className = screenParams.fragmentCreatorClassName;
101
             String className = screenParams.fragmentCreatorClassName;
104
             Class<?> fragmentCreatorClass = Class.forName(className);
102
             Class<?> fragmentCreatorClass = Class.forName(className);
105
             Method method = fragmentCreatorClass.getMethod(CONTRACT_GET_SUPPORT_FRAGMENT, Bundle.class);
103
             Method method = fragmentCreatorClass.getMethod(CONTRACT_GET_SUPPORT_FRAGMENT, Bundle.class);
106
-            return (android.support.v4.app.Fragment) method.invoke(null, "TODO");
104
+            return (android.support.v4.app.Fragment) method.invoke(null, new Bundle());
107
         } catch (NoSuchMethodException noSuchMethod) {
105
         } catch (NoSuchMethodException noSuchMethod) {
108
             return null;
106
             return null;
109
         }
107
         }

+ 2
- 2
src/Navigation.js View File

29
 
29
 
30
       constructor(props) {
30
       constructor(props) {
31
         super(props);
31
         super(props);
32
-        this.allProps = {...props, ...PropRegistry.load(this.navigator.screenInstanceID)};
32
+        this.allProps = {...props, ...PropRegistry.load(props.screenInstanceID)};
33
       }
33
       }
34
 
34
 
35
       render() {
35
       render() {
52
 
52
 
53
       constructor(props) {
53
       constructor(props) {
54
         super(props);
54
         super(props);
55
-        this.allProps = {...props, ...PropRegistry.load(this.navigator.screenInstanceID)};
55
+        this.allProps = {...props, ...PropRegistry.load(props.screenInstanceID)};
56
       }
56
       }
57
 
57
 
58
       render() {
58
       render() {

+ 0
- 3
src/deprecated/platformSpecificDeprecated.android.js View File

4
 
4
 
5
 import Navigation from './../Navigation';
5
 import Navigation from './../Navigation';
6
 
6
 
7
-import PropRegistry from '../PropRegistry';
8
-
9
 const resolveAssetSource = require('react-native/Libraries/Image/resolveAssetSource');
7
 const resolveAssetSource = require('react-native/Libraries/Image/resolveAssetSource');
10
 
8
 
11
 import * as newPlatformSpecific from './../platformSpecific';
9
 import * as newPlatformSpecific from './../platformSpecific';
20
   addNavigatorButtons(screen);
18
   addNavigatorButtons(screen);
21
   addNavigationStyleParams(screen);
19
   addNavigationStyleParams(screen);
22
   screen.passProps = params.passProps;
20
   screen.passProps = params.passProps;
23
-  PropRegistry.save(screen.screenInstanceID, screen.passProps);
24
   //const drawer = setupDrawer(params.drawer);
21
   //const drawer = setupDrawer(params.drawer);
25
 
22
 
26
   /*
23
   /*

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

1
 import React, {Component} from 'react';
1
 import React, {Component} from 'react';
2
 import {AppRegistry, NativeModules} from 'react-native';
2
 import {AppRegistry, NativeModules} from 'react-native';
3
 
3
 
4
+import PropRegistry from './PropRegistry';
5
+
4
 const NativeReactModule = NativeModules.NavigationReactModule;
6
 const NativeReactModule = NativeModules.NavigationReactModule;
5
 
7
 
6
 function startApp(activityParams) {
8
 function startApp(activityParams) {
9
+  PropRegistry.save(activityParams.screen.navigationParams.screenInstanceID, activityParams.screen.passProps);
7
   NativeReactModule.startApp(activityParams);
10
   NativeReactModule.startApp(activityParams);
8
 }
11
 }
9
 
12
 
10
 function push(screenParams) {
13
 function push(screenParams) {
14
+  PropRegistry.save(screenParams.navigationParams.screenInstanceID, screenParams.passProps);
11
   NativeReactModule.push(screenParams);
15
   NativeReactModule.push(screenParams);
12
 }
16
 }
13
 
17
 
20
 }
24
 }
21
 
25
 
22
 function newStack(screenParams) {
26
 function newStack(screenParams) {
27
+  PropRegistry.save(screenParams.navigationParams.screenInstanceID, screenParams.passProps);
23
   NativeReactModule.newStack(screenParams);
28
   NativeReactModule.newStack(screenParams);
24
 }
29
 }
25
 
30
 
40
 }
45
 }
41
 
46
 
42
 function showModal(screenParams) {
47
 function showModal(screenParams) {
48
+  PropRegistry.save(screenParams.navigationParams.screenInstanceID, screenParams.passProps);
43
   NativeReactModule.showModal(screenParams);
49
   NativeReactModule.showModal(screenParams);
44
 }
50
 }
45
 
51