Daniel Zlotin 8 years ago
parent
commit
5cf4aca522

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

76
 
76
 
77
     @ReactMethod
77
     @ReactMethod
78
     public void pop(final ReadableMap params) {
78
     public void pop(final ReadableMap params) {
79
+        NavigationCommandsHandler.pop(BundleConverter.toBundle(params));
79
     }
80
     }
80
 
81
 
81
     @ReactMethod
82
     @ReactMethod

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

109
     void push(ScreenParams params) {
109
     void push(ScreenParams params) {
110
         layout.push(params);
110
         layout.push(params);
111
     }
111
     }
112
+
113
+    void pop(ScreenParams params) {
114
+        layout.pop(params);
115
+    }
112
 }
116
 }

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

43
     static ActivityParams getActivityParams(Intent intent) {
43
     static ActivityParams getActivityParams(Intent intent) {
44
         return ActivityParamsParser.parse(intent.getBundleExtra(NavigationCommandsHandler.ACTIVITY_PARAMS_BUNDLE));
44
         return ActivityParamsParser.parse(intent.getBundleExtra(NavigationCommandsHandler.ACTIVITY_PARAMS_BUNDLE));
45
     }
45
     }
46
+
47
+    public static void pop(Bundle screenParams) {
48
+        final NavigationActivity currentActivity = NavigationActivity.currentActivity;
49
+        if (currentActivity == null) {
50
+            return;
51
+        }
52
+
53
+        final ScreenParams params = ScreenParamsParser.parse(screenParams);
54
+        NavigationApplication.instance.runOnMainThread(new Runnable() {
55
+            @Override
56
+            public void run() {
57
+                currentActivity.pop(params);
58
+            }
59
+        });
60
+    }
46
 }
61
 }

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

10
     void removeAllReactViews();
10
     void removeAllReactViews();
11
 
11
 
12
     void push(ScreenParams params);
12
     void push(ScreenParams params);
13
+
14
+    void pop(ScreenParams params);
13
 }
15
 }

+ 3
- 1
android/app/src/main/java/com/reactnativenavigation/layouts/ScreenStack.java View File

28
     }
28
     }
29
 
29
 
30
     public Screen pop() {
30
     public Screen pop() {
31
-        return stack.pop();
31
+        Screen popped = stack.pop();
32
+        removeView((View) popped);
33
+        return popped;
32
     }
34
     }
33
 
35
 
34
     public void popToRoot() {
36
     public void popToRoot() {

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

50
     public void push(ScreenParams params) {
50
     public void push(ScreenParams params) {
51
         stack.push(params);
51
         stack.push(params);
52
     }
52
     }
53
+
54
+    @Override
55
+    public void pop(ScreenParams params) {
56
+        stack.pop();
57
+    }
53
 }
58
 }

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

39
 
39
 
40
   params.screenId = params.screen;
40
   params.screenId = params.screen;
41
   let adapted = adaptNavigationStyleToScreenStyle(params);
41
   let adapted = adaptNavigationStyleToScreenStyle(params);
42
-  adapted = adaptNavigationParams(params);
42
+  adapted = adaptNavigationParams(adapted);
43
 
43
 
44
   newPlatformSpecific.push(adapted);
44
   newPlatformSpecific.push(adapted);
45
 }
45
 }
46
 
46
 
47
+function navigatorPop(navigator, params) {
48
+  addNavigatorParams(params, navigator);
49
+
50
+  params.screenId = params.screen;
51
+  let adapted = adaptNavigationStyleToScreenStyle(params);
52
+  adapted = adaptNavigationParams(adapted);
53
+
54
+  newPlatformSpecific.pop(adapted);
55
+}
56
+
47
 function adaptNavigationStyleToScreenStyle(screen) {
57
 function adaptNavigationStyleToScreenStyle(screen) {
48
   const navigatorStyle = screen.navigatorStyle;
58
   const navigatorStyle = screen.navigatorStyle;
49
   if (!navigatorStyle) {
59
   if (!navigatorStyle) {
118
   //RctActivity.setNavigatorButtons(params);
128
   //RctActivity.setNavigatorButtons(params);
119
 }
129
 }
120
 
130
 
121
-function navigatorPop(navigator, params) {
122
-  //addNavigatorParams(params, navigator);
123
-  //RctActivity.navigatorPop(params);
124
-}
125
-
126
 function navigatorPopToRoot(navigator, params) {
131
 function navigatorPopToRoot(navigator, params) {
127
   //RctActivity.navigatorPopToRoot({
132
   //RctActivity.navigatorPopToRoot({
128
   //  navigatorID: navigator.navigatorID,
133
   //  navigatorID: navigator.navigatorID,

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

20
   NativeModules.NavigationReactModule.push(screenParams);
20
   NativeModules.NavigationReactModule.push(screenParams);
21
 }
21
 }
22
 
22
 
23
+function pop(screenParams) {
24
+  NativeModules.NavigationReactModule.pop(screenParams);
25
+}
26
+
23
 module.exports = {
27
 module.exports = {
24
   startApp,
28
   startApp,
25
-  push
29
+  push,
30
+  pop
26
 };
31
 };