react-native-navigation 7.22.0 → 7.22.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/lib/android/app/src/main/java/com/reactnativenavigation/options/ElementTransitionOptions.kt +0 -1
  2. package/lib/android/app/src/main/java/com/reactnativenavigation/options/HardwareBackButtonOptions.kt +2 -5
  3. package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutFactory.java +120 -120
  4. package/lib/android/app/src/main/java/com/reactnativenavigation/options/ValueAnimationOptions.kt +3 -3
  5. package/lib/android/app/src/main/java/com/reactnativenavigation/options/interpolators/SpringInterpolator.kt +16 -16
  6. package/lib/android/app/src/main/java/com/reactnativenavigation/options/parsers/TypefaceLoader.kt +0 -1
  7. package/lib/android/app/src/main/java/com/reactnativenavigation/react/CommandListenerAdapter.java +0 -2
  8. package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java +7 -6
  9. package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationPackage.kt +1 -2
  10. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +5 -5
  11. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalLayoutController.kt +7 -7
  12. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalViewManager.kt +25 -9
  13. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/CoordinatorLayoutUtils.java +1 -1
  14. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/OutlineProvider.kt +0 -1
  15. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReflectionUtils.java +1 -1
  16. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/RenderChecker.java +1 -1
  17. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/StatusBarUtils.java +0 -2
  18. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/UiUtils.java +5 -6
  19. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ViewParent.kt +0 -3
  20. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ViewUtils.java +4 -5
  21. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +6 -8
  22. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsAnimator.kt +0 -1
  23. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +3 -3
  24. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/BottomTabsAttacher.java +1 -1
  25. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AttachMode.java +3 -3
  26. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/OnSwitchToTab.java +2 -2
  27. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/child/ChildController.java +1 -1
  28. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/child/ChildControllersRegistry.java +5 -5
  29. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentPresenterBase.java +0 -1
  30. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +1 -1
  31. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenter.java +6 -6
  32. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalStack.java +18 -18
  33. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/navigator/Navigator.java +12 -12
  34. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/parent/ParentController.java +22 -22
  35. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuController.java +16 -16
  36. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuPresenter.java +4 -4
  37. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/FabPresenter.java +8 -8
  38. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/IdStack.java +14 -14
  39. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +29 -29
  40. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerBuilder.java +3 -3
  41. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenter.java +29 -28
  42. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/TopBarAnimator.kt +1 -0
  43. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/TopBarBackgroundViewController.java +0 -1
  44. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/TopBarController.kt +1 -1
  45. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/BackButtonHelper.java +2 -2
  46. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonPresenter.kt +1 -1
  47. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonSpan.kt +0 -1
  48. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/IconResolver.java +0 -1
  49. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsAdapter.java +5 -4
  50. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsController.java +8 -8
  51. package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainer.kt +1 -4
  52. package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsLayout.java +0 -1
  53. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/PropertyAnimatorCreator.kt +2 -0
  54. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/ReactImageBoundsAnimator.kt +0 -1
  55. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/ReactImageMatrixAnimator.kt +2 -2
  56. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/ReactViewRotationAnimator.kt +0 -5
  57. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +1 -22
  58. package/lib/android/app/src/main/java/com/reactnativenavigation/views/toptabs/TopTabsLayoutCreator.java +2 -2
  59. package/lib/android/app/src/main/java/com/reactnativenavigation/views/toptabs/TopTabsViewPager.java +6 -6
  60. package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -1
  61. package/lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java +23 -28
  62. package/lib/android/app/src/test/java/com/reactnativenavigation/TestUtils.java +4 -2
  63. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentLayout.java +3 -1
  64. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java +0 -3
  65. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/RenderCheckerTest.java +6 -6
  66. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenterTest.java +3 -4
  67. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsAttacherTest.java +1 -1
  68. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.java +13 -15
  69. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AttachModeTest.java +5 -5
  70. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java +2 -2
  71. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllersRegistryTest.java +2 -2
  72. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +4 -4
  73. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +10 -10
  74. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +25 -26
  75. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +2 -2
  76. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +15 -15
  77. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +11 -11
  78. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/BackButtonHelperTest.java +2 -2
  79. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +0 -4
  80. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +15 -15
  81. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +17 -17
  82. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +3 -3
  83. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsViewControllerTest.java +9 -9
  84. package/lib/dist/components/Modal.js +1 -2
  85. package/lib/src/components/Modal.tsx +1 -2
  86. package/package.json +1 -1
@@ -29,9 +29,9 @@ import static com.reactnativenavigation.utils.ObjectUtils.perform;
29
29
 
30
30
  public class SideMenuController extends ParentController<SideMenuRoot> implements DrawerLayout.DrawerListener {
31
31
 
32
- private ViewController center;
33
- private ViewController left;
34
- private ViewController right;
32
+ private ViewController<?> center;
33
+ private ViewController<?> left;
34
+ private ViewController<?> right;
35
35
  private SideMenuPresenter presenter;
36
36
  private float prevLeftSlideOffset = 0;
37
37
  private float prevRightSlideOffset = 0;
@@ -42,7 +42,7 @@ public class SideMenuController extends ParentController<SideMenuRoot> implement
42
42
  }
43
43
 
44
44
  @Override
45
- public ViewController getCurrentChild() {
45
+ public ViewController<?> getCurrentChild() {
46
46
  if (!isDestroyed()) {
47
47
  if (getView().isDrawerOpen(Gravity.LEFT)) {
48
48
  return left;
@@ -72,8 +72,8 @@ public class SideMenuController extends ParentController<SideMenuRoot> implement
72
72
 
73
73
  @NonNull
74
74
  @Override
75
- public Collection<ViewController> getChildControllers() {
76
- ArrayList<ViewController> children = new ArrayList<>();
75
+ public Collection<ViewController<?>> getChildControllers() {
76
+ ArrayList<ViewController<?>> children = new ArrayList<>();
77
77
  if (center != null) children.add(center);
78
78
  if (left != null) children.add(left);
79
79
  if (right != null) children.add(right);
@@ -87,14 +87,14 @@ public class SideMenuController extends ParentController<SideMenuRoot> implement
87
87
  }
88
88
 
89
89
  @Override
90
- public void applyChildOptions(Options options, ViewController child) {
90
+ public void applyChildOptions(Options options, ViewController<?> child) {
91
91
  super.applyChildOptions(options, child);
92
92
  presenter.applyChildOptions(resolveCurrentOptions());
93
93
  performOnParentController(parent -> parent.applyChildOptions(this.options, child));
94
94
  }
95
95
 
96
96
  @Override
97
- public void mergeChildOptions(Options options, ViewController child) {
97
+ public void mergeChildOptions(Options options, ViewController<?> child) {
98
98
  super.mergeChildOptions(options, child);
99
99
  presenter.mergeOptions(options.sideMenuRootOptions);
100
100
  mergeLockMode(this.initialOptions, options.sideMenuRootOptions);
@@ -129,13 +129,13 @@ public class SideMenuController extends ParentController<SideMenuRoot> implement
129
129
 
130
130
  @Override
131
131
  public void onDrawerOpened(@NonNull View drawerView) {
132
- ViewController view = this.getMatchingView(drawerView);
132
+ ViewController<?> view = this.getMatchingView(drawerView);
133
133
  view.mergeOptions(this.getOptionsWithVisibility(isLeftMenu(drawerView), true));
134
134
  }
135
135
 
136
136
  @Override
137
137
  public void onDrawerClosed(@NonNull View drawerView) {
138
- ViewController view = this.getMatchingView(drawerView);
138
+ ViewController<?> view = this.getMatchingView(drawerView);
139
139
  view.mergeOptions(this.getOptionsWithVisibility(isLeftMenu(drawerView), false));
140
140
  }
141
141
 
@@ -163,28 +163,28 @@ public class SideMenuController extends ParentController<SideMenuRoot> implement
163
163
 
164
164
  @Nullable
165
165
  @Override
166
- public ViewController findController(View child) {
166
+ public ViewController<?> findController(View child) {
167
167
  return getView().isSideMenu(child) ? this : super.findController(child);
168
168
  }
169
169
 
170
- public void setCenterController(ViewController centerController) {
170
+ public void setCenterController(ViewController<?> centerController) {
171
171
  center = centerController;
172
172
  getView().setCenter(center);
173
173
  }
174
174
 
175
- public void setLeftController(ViewController controller) {
175
+ public void setLeftController(ViewController<?> controller) {
176
176
  left = controller;
177
177
  getView().setLeft(left, options);
178
178
  presenter.bindLeft(left);
179
179
  }
180
180
 
181
- public void setRightController(ViewController controller) {
181
+ public void setRightController(ViewController<?> controller) {
182
182
  right = controller;
183
183
  getView().setRight(right, options);
184
184
  presenter.bindRight(right);
185
185
  }
186
186
 
187
- private ViewController getMatchingView(View drawerView) {
187
+ private ViewController<?> getMatchingView(View drawerView) {
188
188
  return this.isLeftMenu(drawerView) ? left : right;
189
189
  }
190
190
 
@@ -206,7 +206,7 @@ public class SideMenuController extends ParentController<SideMenuRoot> implement
206
206
  return options;
207
207
  }
208
208
 
209
- private void dispatchSideMenuVisibilityEvents(ViewController drawer, float prevOffset, float offset) {
209
+ private void dispatchSideMenuVisibilityEvents(ViewController<?> drawer, float prevOffset, float offset) {
210
210
  if (prevOffset < 1 && offset == 1) {
211
211
  drawer.onViewDidAppear();
212
212
  } else if (prevOffset == 0 && offset > 0) {
@@ -15,18 +15,18 @@ import androidx.drawerlayout.widget.DrawerLayout;
15
15
  public class SideMenuPresenter {
16
16
 
17
17
  private SideMenu sideMenu;
18
- private ViewController left;
19
- private ViewController right;
18
+ private ViewController<?> left;
19
+ private ViewController<?> right;
20
20
 
21
21
  public void bindView(SideMenu sideMenu) {
22
22
  this.sideMenu = sideMenu;
23
23
  }
24
24
 
25
- public void bindLeft(ViewController left) {
25
+ public void bindLeft(ViewController<?> left) {
26
26
  this.left = left;
27
27
  }
28
28
 
29
- public void bindRight(ViewController right) {
29
+ public void bindRight(ViewController<?> right) {
30
30
  this.right = right;
31
31
  }
32
32
 
@@ -32,7 +32,7 @@ public class FabPresenter {
32
32
  private Fab fab;
33
33
  private FabMenu fabMenu;
34
34
 
35
- public void applyOptions(FabOptions options, @NonNull ViewController component, @NonNull ViewGroup viewGroup) {
35
+ public void applyOptions(FabOptions options, @NonNull ViewController<?> component, @NonNull ViewGroup viewGroup) {
36
36
  this.viewGroup = viewGroup;
37
37
 
38
38
  if (options.id.hasValue()) {
@@ -54,7 +54,7 @@ public class FabPresenter {
54
54
  }
55
55
  }
56
56
 
57
- public void mergeOptions(FabOptions options, @NonNull ViewController component, @NonNull ViewGroup viewGroup) {
57
+ public void mergeOptions(FabOptions options, @NonNull ViewController<?> component, @NonNull ViewGroup viewGroup) {
58
58
  this.viewGroup = viewGroup;
59
59
  if (options.id.hasValue()) {
60
60
  if (fabMenu != null && fabMenu.getFabId().equals(options.id.get())) {
@@ -72,7 +72,7 @@ public class FabPresenter {
72
72
  }
73
73
  }
74
74
 
75
- private void createFab(ViewController component, FabOptions options) {
75
+ private void createFab(ViewController<?> component, FabOptions options) {
76
76
  ViewExtensionsKt.removeFromParent(fabMenu);
77
77
  ViewExtensionsKt.removeFromParent(fab);
78
78
  if (options.actionsArray.size() > 0) {
@@ -123,7 +123,7 @@ public class FabPresenter {
123
123
  });
124
124
  }
125
125
 
126
- private void setParams(ViewController component, View fab, FabOptions options) {
126
+ private void setParams(ViewController<?> component, View fab, FabOptions options) {
127
127
  CoordinatorLayout.LayoutParams lp = new CoordinatorLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
128
128
  lp.rightMargin = (int) viewGroup.getContext().getResources().getDimension(R.dimen.margin);
129
129
  lp.leftMargin = (int) viewGroup.getContext().getResources().getDimension(R.dimen.margin);
@@ -164,7 +164,7 @@ public class FabPresenter {
164
164
  fab.setLayoutParams(lp);
165
165
  }
166
166
 
167
- private void applyFabOptions(ViewController component, Fab fab, FabOptions options) {
167
+ private void applyFabOptions(ViewController<?> component, Fab fab, FabOptions options) {
168
168
  if (options.visible.isTrueOrUndefined()) {
169
169
  fab.setScaleX(0.6f);
170
170
  fab.setScaleY(0.6f);
@@ -204,7 +204,7 @@ public class FabPresenter {
204
204
  }
205
205
  }
206
206
 
207
- private void mergeFabOptions(ViewController component, Fab fab, FabOptions options) {
207
+ private void mergeFabOptions(ViewController<?> component, Fab fab, FabOptions options) {
208
208
  if (options.visible.isTrue()) {
209
209
  fab.show(true);
210
210
  }
@@ -234,7 +234,7 @@ public class FabPresenter {
234
234
  }
235
235
  }
236
236
 
237
- private void applyFabMenuOptions(ViewController component, FabMenu fabMenu, FabOptions options) {
237
+ private void applyFabMenuOptions(ViewController<?> component, FabMenu fabMenu, FabOptions options) {
238
238
  if (options.visible.isTrueOrUndefined()) {
239
239
  fabMenu.showMenuButton(true);
240
240
  }
@@ -271,7 +271,7 @@ public class FabPresenter {
271
271
  }
272
272
  }
273
273
 
274
- private void mergeFabMenuOptions(ViewController component, FabMenu fabMenu, FabOptions options) {
274
+ private void mergeFabMenuOptions(ViewController<?> component, FabMenu fabMenu, FabOptions options) {
275
275
  if (options.visible.isTrue()) {
276
276
  fabMenu.showMenuButton(true);
277
277
  }
@@ -14,7 +14,7 @@ import static com.reactnativenavigation.utils.CollectionUtils.*;
14
14
 
15
15
  public class IdStack<E> implements Iterable<String> {
16
16
 
17
- private final ArrayList<String> deque = new ArrayList();
17
+ private final ArrayList<String> deque = new ArrayList<>();
18
18
  private final Map<String, E> map = new HashMap<>();
19
19
 
20
20
  public void push(String id, E item) {
@@ -22,17 +22,17 @@ public class IdStack<E> implements Iterable<String> {
22
22
  map.put(id, item);
23
23
  }
24
24
 
25
- public void set(String id, E item, int index) {
26
- deque.add(index, id);
27
- map.put(id, item);
28
- }
25
+ public void set(String id, E item, int index) {
26
+ deque.add(index, id);
27
+ map.put(id, item);
28
+ }
29
29
 
30
30
  public E peek() {
31
- return isEmpty() ? null : map.get(last(deque));
31
+ return isEmpty() ? null : map.get(last(deque));
32
32
  }
33
33
 
34
34
  public E pop() {
35
- return isEmpty() ? null : map.remove(removeLast(deque));
35
+ return isEmpty() ? null : map.remove(removeLast(deque));
36
36
  }
37
37
 
38
38
  public boolean isEmpty() {
@@ -57,8 +57,8 @@ public class IdStack<E> implements Iterable<String> {
57
57
  }
58
58
 
59
59
  public E get(final int index) {
60
- return map.get(deque.get(index));
61
- }
60
+ return map.get(deque.get(index));
61
+ }
62
62
 
63
63
  public boolean containsId(final String id) {
64
64
  return deque.contains(id);
@@ -77,7 +77,7 @@ public class IdStack<E> implements Iterable<String> {
77
77
  }
78
78
 
79
79
  @NonNull
80
- @Override
80
+ @Override
81
81
  public Iterator<String> iterator() {
82
82
  return deque.iterator();
83
83
  }
@@ -87,8 +87,8 @@ public class IdStack<E> implements Iterable<String> {
87
87
  return map(deque, map::get);
88
88
  }
89
89
 
90
- public void remove(Iterator<String> iterator, String id) {
91
- iterator.remove();
92
- map.remove(id);
93
- }
90
+ public void remove(Iterator<String> iterator, String id) {
91
+ iterator.remove();
92
+ map.remove(id);
93
+ }
94
94
  }
@@ -45,7 +45,7 @@ import static com.reactnativenavigation.utils.ObjectUtils.perform;
45
45
 
46
46
  public class StackController extends ParentController<StackLayout> {
47
47
 
48
- private IdStack<ViewController> stack = new IdStack<>();
48
+ private IdStack<ViewController<?>> stack = new IdStack<>();
49
49
  private final StackAnimator animator;
50
50
  private final EventEmitter eventEmitter;
51
51
  private final TopBarController topBarController;
@@ -53,7 +53,7 @@ public class StackController extends ParentController<StackLayout> {
53
53
  private final StackPresenter presenter;
54
54
  private final FabPresenter fabPresenter;
55
55
 
56
- public StackController(Activity activity, List<ViewController> children, ChildControllersRegistry childRegistry, EventEmitter eventEmitter, TopBarController topBarController, StackAnimator animator, String id, Options initialOptions, BackButtonHelper backButtonHelper, StackPresenter stackPresenter, Presenter presenter, FabPresenter fabPresenter) {
56
+ public StackController(Activity activity, List<ViewController<?>> children, ChildControllersRegistry childRegistry, EventEmitter eventEmitter, TopBarController topBarController, StackAnimator animator, String id, Options initialOptions, BackButtonHelper backButtonHelper, StackPresenter stackPresenter, Presenter presenter, FabPresenter fabPresenter) {
57
57
  super(activity, childRegistry, id, presenter, initialOptions);
58
58
  this.eventEmitter = eventEmitter;
59
59
  this.topBarController = topBarController;
@@ -108,7 +108,7 @@ public class StackController extends ParentController<StackLayout> {
108
108
  }
109
109
 
110
110
  @Override
111
- public void applyChildOptions(Options options, ViewController child) {
111
+ public void applyChildOptions(Options options, ViewController<?> child) {
112
112
  super.applyChildOptions(options, child);
113
113
  presenter.applyChildOptions(resolveCurrentOptions(), this, child);
114
114
  fabPresenter.applyOptions(this.options.fabOptions, child, getView());
@@ -126,7 +126,7 @@ public class StackController extends ParentController<StackLayout> {
126
126
  }
127
127
 
128
128
  @Override
129
- public void mergeChildOptions(Options options, ViewController child) {
129
+ public void mergeChildOptions(Options options, ViewController<?> child) {
130
130
  super.mergeChildOptions(options, child);
131
131
  if (child.isViewShown() && peek() == child) {
132
132
  presenter.mergeChildOptions(options, resolveCurrentOptions(), this, child);
@@ -148,17 +148,17 @@ public class StackController extends ParentController<StackLayout> {
148
148
  }
149
149
 
150
150
  @Override
151
- public void onChildDestroyed(ViewController child) {
151
+ public void onChildDestroyed(ViewController<?> child) {
152
152
  super.onChildDestroyed(child);
153
153
  presenter.onChildDestroyed(child);
154
154
  }
155
155
 
156
- public void push(ViewController child, CommandListener listener) {
156
+ public void push(ViewController<?> child, CommandListener listener) {
157
157
  if (findController(child.getId()) != null) {
158
158
  listener.onError("A stack can't contain two children with the same id: " + child.getId());
159
159
  return;
160
160
  }
161
- final ViewController toRemove = stack.peek();
161
+ final ViewController<?> toRemove = stack.peek();
162
162
  if (size() > 0) backButtonHelper.addToPushedChild(child);
163
163
  child.setParentController(this);
164
164
  stack.push(child.getId(), child);
@@ -190,30 +190,30 @@ public class StackController extends ParentController<StackLayout> {
190
190
  animator.cancelAllAnimations();
191
191
  }
192
192
 
193
- private void onPushAnimationComplete(ViewController toAdd, ViewController toRemove, CommandListener listener) {
193
+ private void onPushAnimationComplete(ViewController<?> toAdd, ViewController<?> toRemove, CommandListener listener) {
194
194
  toAdd.onViewDidAppear();
195
195
  if (!peek().equals(toRemove)) getView().removeView(toRemove.getView());
196
196
  listener.onSuccess(toAdd.getId());
197
197
  }
198
198
 
199
- private void addChildToStack(ViewController child, Options resolvedOptions) {
199
+ private void addChildToStack(ViewController<?> child, Options resolvedOptions) {
200
200
  child.setWaitForRender(resolvedOptions.animations.push.waitForRender);
201
201
  if (size() == 1) presenter.applyInitialChildLayoutOptions(resolvedOptions);
202
202
  getView().addView(child.getView(), getView().getChildCount() - 1, matchParentWithBehaviour(new StackBehaviour(this)));
203
203
  }
204
204
 
205
- public void setRoot(@Size(min = 1) List<ViewController> children, CommandListener listener) {
205
+ public void setRoot(@Size(min = 1) List<ViewController<?>> children, CommandListener listener) {
206
206
  if (!isViewCreated()) {
207
207
  setChildren(children);
208
208
  return;
209
209
  }
210
210
 
211
211
  animator.cancelPushAnimations();
212
- final ViewController toRemove = stack.peek();
213
- IdStack stackToDestroy = stack;
212
+ final ViewController<?> toRemove = stack.peek();
213
+ IdStack<?> stackToDestroy = stack;
214
214
  stack = new IdStack<>();
215
215
 
216
- ViewController child = requireLast(children);
216
+ ViewController<?> child = requireLast(children);
217
217
  if (children.size() == 1) {
218
218
  backButtonHelper.clear(child);
219
219
  } else {
@@ -270,9 +270,9 @@ public class StackController extends ParentController<StackLayout> {
270
270
  }
271
271
  }
272
272
 
273
- private void setChildren(List<ViewController> children) {
273
+ private void setChildren(List<ViewController<?>> children) {
274
274
  stack.clear();
275
- for (ViewController child : children) {
275
+ for (ViewController<?> child : children) {
276
276
  if (stack.containsId(child.getId())) {
277
277
  throw new IllegalArgumentException("A stack can't contain two children with the same id: " + child.getId());
278
278
  }
@@ -282,10 +282,10 @@ public class StackController extends ParentController<StackLayout> {
282
282
  }
283
283
  }
284
284
 
285
- private void destroyStack(IdStack stack) {
285
+ private void destroyStack(IdStack<?> stack) {
286
286
  animator.cancelAllAnimations();
287
287
  for (String s : (Iterable<String>) stack) {
288
- ((ViewController) stack.get(s)).destroy();
288
+ ((ViewController<?>) stack.get(s)).destroy();
289
289
  }
290
290
  }
291
291
 
@@ -298,9 +298,9 @@ public class StackController extends ParentController<StackLayout> {
298
298
  peek().mergeOptions(mergeOptions);
299
299
  Options disappearingOptions = resolveCurrentOptions(presenter.getDefaultOptions());
300
300
 
301
- final ViewController disappearing = stack.pop();
301
+ final ViewController<?> disappearing = stack.pop();
302
302
  if (!isViewCreated()) return;
303
- final ViewController appearing = stack.peek();
303
+ final ViewController<?> appearing = stack.peek();
304
304
 
305
305
  disappearing.onViewWillDisappear();
306
306
 
@@ -325,14 +325,14 @@ public class StackController extends ParentController<StackLayout> {
325
325
  }
326
326
  }
327
327
 
328
- private void finishPopping(ViewController appearing, ViewController disappearing, CommandListener listener) {
328
+ private void finishPopping(ViewController<?> appearing, ViewController<?> disappearing, CommandListener listener) {
329
329
  appearing.onViewDidAppear();
330
330
  disappearing.destroy();
331
331
  listener.onSuccess(disappearing.getId());
332
332
  eventEmitter.emitScreenPoppedEvent(disappearing.getId());
333
333
  }
334
334
 
335
- public void popTo(ViewController viewController, Options mergeOptions, CommandListener listener) {
335
+ public void popTo(ViewController<?> viewController, Options mergeOptions, CommandListener listener) {
336
336
  if (!stack.containsId(viewController.getId()) || peek().equals(viewController)) {
337
337
  listener.onError("Nothing to pop");
338
338
  return;
@@ -346,7 +346,7 @@ public class StackController extends ParentController<StackLayout> {
346
346
  break;
347
347
  }
348
348
 
349
- ViewController controller = stack.get(currentControlId);
349
+ ViewController<?> controller = stack.get(currentControlId);
350
350
  stack.remove(controller.getId());
351
351
  controller.destroy();
352
352
  }
@@ -364,7 +364,7 @@ public class StackController extends ParentController<StackLayout> {
364
364
  Iterator<String> iterator = stack.iterator();
365
365
  iterator.next();
366
366
  while (stack.size() > 2) {
367
- ViewController controller = stack.get(iterator.next());
367
+ ViewController<?> controller = stack.get(iterator.next());
368
368
  if (!stack.isTop(controller.getId())) {
369
369
  stack.remove(iterator, controller.getId());
370
370
  controller.destroy();
@@ -374,7 +374,7 @@ public class StackController extends ParentController<StackLayout> {
374
374
  pop(mergeOptions, listener);
375
375
  }
376
376
 
377
- ViewController peek() {
377
+ ViewController<?> peek() {
378
378
  return stack.peek();
379
379
  }
380
380
 
@@ -386,7 +386,7 @@ public class StackController extends ParentController<StackLayout> {
386
386
  return stack.isEmpty();
387
387
  }
388
388
 
389
- public boolean isChildInTransition(ViewController child) {
389
+ public boolean isChildInTransition(ViewController<?> child) {
390
390
  return animator.isChildInTransition(child);
391
391
  }
392
392
 
@@ -419,7 +419,7 @@ public class StackController extends ParentController<StackLayout> {
419
419
 
420
420
  private void addInitialChild(StackLayout stackLayout) {
421
421
  if (isEmpty()) return;
422
- ViewController childController = peek();
422
+ ViewController<?> childController = peek();
423
423
  ViewGroup child = childController.getView();
424
424
  child.setId(CompatUtils.generateViewId());
425
425
  childController.addOnAppearedListener(this::startChildrenBellowTopChild);
@@ -428,7 +428,7 @@ public class StackController extends ParentController<StackLayout> {
428
428
  }
429
429
 
430
430
  private void startChildrenBellowTopChild() {
431
- ArrayList<ViewController> children = new ArrayList(getChildControllers());
431
+ ArrayList<ViewController<?>> children = new ArrayList<>(getChildControllers());
432
432
  for (int i = children.size() - 2; i >= 0; i--) {
433
433
  children.get(i).start();
434
434
  }
@@ -448,7 +448,7 @@ public class StackController extends ParentController<StackLayout> {
448
448
 
449
449
  @NonNull
450
450
  @Override
451
- public Collection<ViewController> getChildControllers() {
451
+ public Collection<ViewController<?>> getChildControllers() {
452
452
  return stack.values();
453
453
  }
454
454
 
@@ -473,7 +473,7 @@ public class StackController extends ParentController<StackLayout> {
473
473
  }
474
474
 
475
475
  @Override
476
- public int getTopInset(ViewController child) {
476
+ public int getTopInset(ViewController<?> child) {
477
477
  return presenter.getTopInset(resolveChildOptions(child));
478
478
  }
479
479
 
@@ -24,7 +24,7 @@ public class StackControllerBuilder {
24
24
  private BackButtonHelper backButtonHelper = new BackButtonHelper();
25
25
  private Presenter presenter;
26
26
  private StackPresenter stackPresenter;
27
- private List<ViewController> children = new ArrayList<>();
27
+ private List<ViewController<?>> children = new ArrayList<>();
28
28
  private EventEmitter eventEmitter;
29
29
  private FabPresenter fabPresenter = new FabPresenter();
30
30
 
@@ -40,11 +40,11 @@ public class StackControllerBuilder {
40
40
  return this;
41
41
  }
42
42
 
43
- public StackControllerBuilder setChildren(ViewController... children) {
43
+ public StackControllerBuilder setChildren(ViewController<?>... children) {
44
44
  return setChildren(Arrays.asList(children));
45
45
  }
46
46
 
47
- public StackControllerBuilder setChildren(List<ViewController> children) {
47
+ public StackControllerBuilder setChildren(List<ViewController<?>> children) {
48
48
  this.children = children;
49
49
  return this;
50
50
  }