Browse Source

Add previous screen at index 0 when popping

Guy Carmeli 6 years ago
parent
commit
db567ea7b3

+ 3
- 3
lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/StackController.java View File

105
                 getView().removeView(toRemove.getView());
105
                 getView().removeView(toRemove.getView());
106
                 listener.onSuccess(child.getId());
106
                 listener.onSuccess(child.getId());
107
             }
107
             }
108
+        } else {
109
+            listener.onSuccess(child.getId());
108
         }
110
         }
109
     }
111
     }
110
 
112
 
138
         final ViewController appearing = stack.peek();
140
         final ViewController appearing = stack.peek();
139
         disappearing.onViewWillDisappear();
141
         disappearing.onViewWillDisappear();
140
         appearing.onViewWillAppear();
142
         appearing.onViewWillAppear();
141
-        getView().onChildWillDisappear(disappearing.options, appearing.options, () ->
142
-                getView().addView(appearing.getView())
143
-        );
143
+        getView().onChildWillDisappear(disappearing.options, appearing.options, () -> getView().addView(appearing.getView(), 0));
144
 
144
 
145
         if (disappearing.options.animated.isTrueOrUndefined()) {
145
         if (disappearing.options.animated.isTrueOrUndefined()) {
146
             animator.pop(disappearing.getView(), () -> finishPopping(disappearing, listener));
146
             animator.pop(disappearing.getView(), () -> finishPopping(disappearing, listener));

+ 4
- 2
lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/StackControllerTest.java View File

76
     @Test
76
     @Test
77
     public void push() {
77
     public void push() {
78
         assertThat(uut.isEmpty()).isTrue();
78
         assertThat(uut.isEmpty()).isTrue();
79
-        uut.push(child1, new CommandListenerAdapter());
79
+        CommandListenerAdapter listener = spy(new CommandListenerAdapter());
80
+        uut.push(child1, listener);
80
         assertContainsOnlyId(child1.getId());
81
         assertContainsOnlyId(child1.getId());
82
+        verify(listener, times(1)).onSuccess(child1.getId());
81
     }
83
     }
82
 
84
 
83
     @Test
85
     @Test
202
     }
204
     }
203
 
205
 
204
     @Test
206
     @Test
205
-    public void popDoesNothingWhenZeroOrOneChild() {
207
+    public void pop_doesNothingWhenZeroOrOneChild() {
206
         assertThat(uut.isEmpty()).isTrue();
208
         assertThat(uut.isEmpty()).isTrue();
207
         uut.pop(new CommandListenerAdapter());
209
         uut.pop(new CommandListenerAdapter());
208
         assertThat(uut.isEmpty()).isTrue();
210
         assertThat(uut.isEmpty()).isTrue();