Nipodemos

insert all docs that were missing

@@ -31,15 +31,26 @@ class GetImpl implements GetService { @@ -31,15 +31,26 @@ class GetImpl implements GetService {
31 31
32 /// Pushes a new [page] to the stack 32 /// Pushes a new [page] to the stack
33 /// 33 ///
34 - /// It has the advantage of not needing context, so you can call from your business logic 34 + /// It has the advantage of not needing context,
  35 + /// so you can call from your business logic
  36 + ///
  37 + /// You can set a custom [transition], and a transition [duration].
35 /// 38 ///
36 - /// You can set a custom [transition], a transition [duration].  
37 /// You can send any type of value to the other route in the [arguments]. 39 /// You can send any type of value to the other route in the [arguments].
38 - /// If you're using the [Bindings] api, it's here that you use it  
39 /// 40 ///
40 - /// It replaces Navigator.push and it doesn't have the Navigator.push  
41 - /// routes rebuild bug present in Flutter. If for some strange reason you want the default behavior  
42 - /// of rebuilding every app after a route, use opaque = true as the parameter. 41 + /// Just like native routing in Flutter, you can push a route
  42 + /// as a [fullscreenDialog],
  43 + ///
  44 + /// [id] is for when you are using nested navigation,
  45 + /// as explained in documentation
  46 + ///
  47 + /// If you want the same behavior of ios that pops a route when the user drag,
  48 + /// you can set [popGesture] to true
  49 + ///
  50 + /// If you're using the [Bindings] api, you must define it here
  51 + ///
  52 + /// By default, GetX will prevent you from push a route that you already in,
  53 + /// if you want to push anyway, set [preventDuplicates] to false
43 Future<T> to<T>( 54 Future<T> to<T>(
44 Widget page, { 55 Widget page, {
45 bool opaque, 56 bool opaque,
@@ -75,11 +86,18 @@ class GetImpl implements GetService { @@ -75,11 +86,18 @@ class GetImpl implements GetService {
75 86
76 /// Pushes a new named [page] to the stack 87 /// Pushes a new named [page] to the stack
77 /// 88 ///
78 - /// It has the advantage of not needing context, so you can call from your business logic. 89 + /// It has the advantage of not needing context, so you can call
  90 + /// from your business logic.
79 /// 91 ///
80 /// You can send any type of value to the other route in the [arguments]. 92 /// You can send any type of value to the other route in the [arguments].
81 /// 93 ///
82 - /// Note: Always put a slash on the route ('/page1'), since this package expects that 94 + /// [id] is for when you are using nested navigation,
  95 + /// as explained in documentation
  96 + ///
  97 + /// By default, GetX will prevent you from push a route that you already in,
  98 + /// if you want to push anyway, set [preventDuplicates] to false
  99 + ///
  100 + /// Note: Always put a slash on the route ('/page1'), to avoid unnexpected errors
83 Future<T> toNamed<T>( 101 Future<T> toNamed<T>(
84 String page, { 102 String page, {
85 Object arguments, 103 Object arguments,
@@ -94,13 +112,24 @@ class GetImpl implements GetService { @@ -94,13 +112,24 @@ class GetImpl implements GetService {
94 112
95 /// Pop the current named [page] in the stack and push a new one in its place 113 /// Pop the current named [page] in the stack and push a new one in its place
96 /// 114 ///
97 - /// It has the advantage of not needing context, so you can call from your business logic. 115 + /// It has the advantage of not needing context, so you can call
  116 + /// from your business logic.
98 /// 117 ///
99 /// You can send any type of value to the other route in the [arguments]. 118 /// You can send any type of value to the other route in the [arguments].
100 /// 119 ///
101 - /// Note: Always put a slash on the route ('/page1'), since this package expects that  
102 - Future<T> offNamed<T>(String page,  
103 - {Object arguments, int id, preventDuplicates = true}) { 120 + /// [id] is for when you are using nested navigation,
  121 + /// as explained in documentation
  122 + ///
  123 + /// By default, GetX will prevent you from push a route that you already in,
  124 + /// if you want to push anyway, set [preventDuplicates] to false
  125 + ///
  126 + /// Note: Always put a slash on the route ('/page1'), to avoid unnexpected errors
  127 + Future<T> offNamed<T>(
  128 + String page, {
  129 + Object arguments,
  130 + int id,
  131 + preventDuplicates = true,
  132 + }) {
104 if (preventDuplicates && page == currentRoute) { 133 if (preventDuplicates && page == currentRoute) {
105 return null; 134 return null;
106 } 135 }
@@ -111,7 +140,14 @@ class GetImpl implements GetService { @@ -111,7 +140,14 @@ class GetImpl implements GetService {
111 140
112 /// Calls pop several times in the stack until [predicate] returns true 141 /// Calls pop several times in the stack until [predicate] returns true
113 /// 142 ///
114 - /// TODO: complement this doc 143 + /// [id] is for when you are using nested navigation,
  144 + /// as explained in documentation
  145 + ///
  146 + /// [predicate] can be used like this:
  147 + /// `Get.until(Get.currentRoute == '/home')`so when you get to home page,
  148 + ///
  149 + /// or also like this:
  150 + /// `Get.until(!Get.isDialogOpen())`, to make sure the dialog is closed
115 void until(RoutePredicate predicate, {int id}) { 151 void until(RoutePredicate predicate, {int id}) {
116 // if (key.currentState.mounted) // add this if appear problems on future with route navigate 152 // if (key.currentState.mounted) // add this if appear problems on future with route navigate
117 // when widget don't mounted 153 // when widget don't mounted
@@ -121,20 +157,40 @@ class GetImpl implements GetService { @@ -121,20 +157,40 @@ class GetImpl implements GetService {
121 /// Push the given [page], and then pop several [pages] in the stack until 157 /// Push the given [page], and then pop several [pages] in the stack until
122 /// [predicate] returns true 158 /// [predicate] returns true
123 /// 159 ///
124 - /// TODO: complement this doc 160 + /// [id] is for when you are using nested navigation,
  161 + /// as explained in documentation
  162 + ///
  163 + /// [predicate] can be used like this:
  164 + /// `Get.until(Get.currentRoute == '/home')`so when you get to home page,
  165 + ///
  166 + /// or also like this:
  167 + /// `Get.until(!Get.isDialogOpen())`, to make sure the dialog is closed
125 Future<T> offUntil<T>(Route<T> page, RoutePredicate predicate, {int id}) { 168 Future<T> offUntil<T>(Route<T> page, RoutePredicate predicate, {int id}) {
126 // if (key.currentState.mounted) // add this if appear problems on future with route navigate 169 // if (key.currentState.mounted) // add this if appear problems on future with route navigate
127 // when widget don't mounted 170 // when widget don't mounted
128 return global(id).currentState.pushAndRemoveUntil(page, predicate); 171 return global(id).currentState.pushAndRemoveUntil(page, predicate);
129 } 172 }
130 173
131 - /// Push the given named [page], and then pop several [pages] in the stack 174 + /// Push the given named [page], and then pop several pages in the stack
132 /// until [predicate] returns true 175 /// until [predicate] returns true
133 /// 176 ///
134 /// You can send any type of value to the other route in the [arguments]. 177 /// You can send any type of value to the other route in the [arguments].
135 - /// TODO: complement this doc  
136 - Future<T> offNamedUntil<T>(String page, RoutePredicate predicate,  
137 - {int id, Object arguments}) { 178 + ///
  179 + /// [id] is for when you are using nested navigation,
  180 + /// as explained in documentation
  181 + ///
  182 + /// [predicate] can be used like this:
  183 + /// `Get.until(Get.currentRoute == '/home')`so when you get to home page,
  184 + /// or also like
  185 + /// `Get.until(!Get.isDialogOpen())`, to make sure the dialog is closed
  186 + ///
  187 + /// Note: Always put a slash on the route ('/page1'), to avoid unnexpected errors
  188 + Future<T> offNamedUntil<T>(
  189 + String page,
  190 + RoutePredicate predicate, {
  191 + int id,
  192 + Object arguments,
  193 + }) {
138 return global(id) 194 return global(id)
139 .currentState 195 .currentState
140 .pushNamedAndRemoveUntil(page, predicate, arguments: arguments); 196 .pushNamedAndRemoveUntil(page, predicate, arguments: arguments);
@@ -143,8 +199,11 @@ class GetImpl implements GetService { @@ -143,8 +199,11 @@ class GetImpl implements GetService {
143 /// Pop the current named page and pushes a new [page] to the stack in its place 199 /// Pop the current named page and pushes a new [page] to the stack in its place
144 /// 200 ///
145 /// You can send any type of value to the other route in the [arguments]. 201 /// You can send any type of value to the other route in the [arguments].
146 - /// TODO: complement this doc  
147 - /// TODO: ask jonatas what is that result argument 202 + /// It is very similar to `offNamed()` but use a different approach
  203 + ///
  204 + /// The `offNamed()` pop a page, and goes to the next. The `offAndToNamed()` goes
  205 + /// to the next page, and removes the previous one. The route transition
  206 + /// animation is different.
148 Future<T> offAndToNamed<T>(String page, 207 Future<T> offAndToNamed<T>(String page,
149 {Object arguments, int id, dynamic result}) { 208 {Object arguments, int id, dynamic result}) {
150 return global(id) 209 return global(id)
@@ -153,17 +212,24 @@ class GetImpl implements GetService { @@ -153,17 +212,24 @@ class GetImpl implements GetService {
153 } 212 }
154 213
155 /// Remove a specific [route] from the stack 214 /// Remove a specific [route] from the stack
  215 + ///
  216 + /// [id] is for when you are using nested navigation,
  217 + /// as explained in documentation
156 void removeRoute(Route<dynamic> route, {int id}) { 218 void removeRoute(Route<dynamic> route, {int id}) {
157 return global(id).currentState.removeRoute(route); 219 return global(id).currentState.removeRoute(route);
158 } 220 }
159 221
160 - /// Push a named page and remove all other pages from stack 222 + /// Push a named [page] and remove all other pages from stack
161 /// 223 ///
162 - /// It has the advantage of not needing context, so you can call from your business logic. 224 + /// It has the advantage of not needing context, so you can
  225 + /// call from your business logic.
163 /// 226 ///
164 /// You can send any type of value to the other route in the [arguments]. 227 /// You can send any type of value to the other route in the [arguments].
165 /// 228 ///
166 - /// Note: Always put a slash on the route ('/page1'), since this package expects that 229 + /// [id] is for when you are using nested navigation,
  230 + /// as explained in documentation
  231 + ///
  232 + /// Note: Always put a slash on the route ('/page1'), to avoid unexpected errors
167 Future<T> offAllNamed<T>(String newRouteName, 233 Future<T> offAllNamed<T>(String newRouteName,
168 {RoutePredicate predicate, Object arguments, int id}) { 234 {RoutePredicate predicate, Object arguments, int id}) {
169 var route = (Route<dynamic> rota) => false; 235 var route = (Route<dynamic> rota) => false;
@@ -186,14 +252,17 @@ class GetImpl implements GetService { @@ -186,14 +252,17 @@ class GetImpl implements GetService {
186 /// if your set [closeOverlays] to true, Get.back() will close the currently open 252 /// if your set [closeOverlays] to true, Get.back() will close the currently open
187 /// snackbar/dialog/bottomsheet AND the current page 253 /// snackbar/dialog/bottomsheet AND the current page
188 /// 254 ///
189 - /// TODO: ask jonatas about "canPop" 255 + /// [id] is for when you are using nested navigation,
  256 + /// as explained in documentation
190 /// 257 ///
191 - /// It has the advantage of not needing context, so you can call from your business logic.  
192 - void back(  
193 - {dynamic result, 258 + /// It has the advantage of not needing context, so you can call
  259 + /// from your business logic.
  260 + void back({
  261 + dynamic result,
194 bool closeOverlays = false, 262 bool closeOverlays = false,
195 bool canPop = true, 263 bool canPop = true,
196 - int id}) { 264 + int id,
  265 + }) {
197 if (closeOverlays && isOverlaysOpen) { 266 if (closeOverlays && isOverlaysOpen) {
198 navigator.popUntil((route) { 267 navigator.popUntil((route) {
199 return (isOverlaysClosed); 268 return (isOverlaysClosed);
@@ -220,21 +289,31 @@ class GetImpl implements GetService { @@ -220,21 +289,31 @@ class GetImpl implements GetService {
220 return back; 289 return back;
221 } 290 }
222 291
223 - /// Pop the current [page] in the stack and push a new one in its place 292 + /// Pop the current page and pushes a new [page] to the stack
224 /// 293 ///
225 - /// It has the advantage of not needing context, so you can call from your business logic. 294 + /// It has the advantage of not needing context,
  295 + /// so you can call from your business logic
226 /// 296 ///
227 - /// You can send any type of value to the other route in the [arguments]. 297 + /// You can set a custom [transition], and a transition [duration].
228 /// 298 ///
229 - /// You can set a custom [transition], a transition [duration].  
230 /// You can send any type of value to the other route in the [arguments]. 299 /// You can send any type of value to the other route in the [arguments].
231 - /// If you're using the [Bindings] api, it's here that you use it  
232 /// 300 ///
233 - /// It replaces Navigator.pushReplacement and it doesn't have the Navigator.pushReplacement  
234 - /// routes rebuild bug present in Flutter. If for some strange reason you want the default behavior  
235 - /// of rebuilding every app after a route, use opaque = true as the parameter.  
236 - Future<T> off<T>(Widget page,  
237 - {bool opaque = false, 301 + /// Just like native routing in Flutter, you can push a route
  302 + /// as a [fullscreenDialog],
  303 + ///
  304 + /// [id] is for when you are using nested navigation,
  305 + /// as explained in documentation
  306 + ///
  307 + /// If you want the same behavior of ios that pops a route when the user drag,
  308 + /// you can set [popGesture] to true
  309 + ///
  310 + /// If you're using the [Bindings] api, you must define it here
  311 + ///
  312 + /// By default, GetX will prevent you from push a route that you already in,
  313 + /// if you want to push anyway, set [preventDuplicates] to false
  314 + Future<T> off<T>(
  315 + Widget page, {
  316 + bool opaque = false,
238 Transition transition, 317 Transition transition,
239 bool popGesture, 318 bool popGesture,
240 int id, 319 int id,
@@ -242,7 +321,8 @@ class GetImpl implements GetService { @@ -242,7 +321,8 @@ class GetImpl implements GetService {
242 Bindings binding, 321 Bindings binding,
243 bool fullscreenDialog = false, 322 bool fullscreenDialog = false,
244 preventDuplicates = true, 323 preventDuplicates = true,
245 - Duration duration}) { 324 + Duration duration,
  325 + }) {
246 if (preventDuplicates && '/${page.runtimeType}' == currentRoute) { 326 if (preventDuplicates && '/${page.runtimeType}' == currentRoute) {
247 return null; 327 return null;
248 } 328 }
@@ -258,21 +338,36 @@ class GetImpl implements GetService { @@ -258,21 +338,36 @@ class GetImpl implements GetService {
258 transitionDuration: duration ?? defaultDurationTransition)); 338 transitionDuration: duration ?? defaultDurationTransition));
259 } 339 }
260 340
261 - /// Pop all pages of the stack and push a new one 341 + /// Pop all pages in the stack and pushes a new [page] to it
262 /// 342 ///
263 - /// It has the advantage of not needing context, so you can call from your business logic. 343 + /// It has the advantage of not needing context,
  344 + /// so you can call from your business logic
264 /// 345 ///
265 - /// You can send any type of value to the other route in the [arguments]. 346 + /// You can set a custom [transition], and a transition [duration].
266 /// 347 ///
267 - /// You can set a custom [transition] and a transition [duration].  
268 /// You can send any type of value to the other route in the [arguments]. 348 /// You can send any type of value to the other route in the [arguments].
269 - /// If you're using the [Bindings] api, it's here that you use it  
270 /// 349 ///
271 - /// It replaces Navigator.pushReplacement and it doesn't have the Navigator.pushReplacement  
272 - /// routes rebuild bug present in Flutter. If for some strange reason you want the default behavior  
273 - /// of rebuilding every app after a route, use opaque = true as the parameter.  
274 - Future<T> offAll<T>(Widget page,  
275 - {RoutePredicate predicate, 350 + /// Just like native routing in Flutter, you can push a route
  351 + /// as a [fullscreenDialog],
  352 + ///
  353 + /// [predicate] can be used like this:
  354 + /// `Get.until(Get.currentRoute == '/home')`so when you get to home page,
  355 + /// or also like
  356 + /// `Get.until(!Get.isDialogOpen())`, to make sure the dialog is closed
  357 + ///
  358 + /// [id] is for when you are using nested navigation,
  359 + /// as explained in documentation
  360 + ///
  361 + /// If you want the same behavior of ios that pops a route when the user drag,
  362 + /// you can set [popGesture] to true
  363 + ///
  364 + /// If you're using the [Bindings] api, you must define it here
  365 + ///
  366 + /// By default, GetX will prevent you from push a route that you already in,
  367 + /// if you want to push anyway, set [preventDuplicates] to false
  368 + Future<T> offAll<T>(
  369 + Widget page, {
  370 + RoutePredicate predicate,
276 bool opaque = false, 371 bool opaque = false,
277 bool popGesture, 372 bool popGesture,
278 int id, 373 int id,
@@ -280,7 +375,8 @@ class GetImpl implements GetService { @@ -280,7 +375,8 @@ class GetImpl implements GetService {
280 Bindings binding, 375 Bindings binding,
281 bool fullscreenDialog = false, 376 bool fullscreenDialog = false,
282 Duration duration, 377 Duration duration,
283 - Transition transition}) { 378 + Transition transition,
  379 + }) {
284 var route = (Route<dynamic> rota) => false; 380 var route = (Route<dynamic> rota) => false;
285 381
286 return global(id).currentState.pushAndRemoveUntil( 382 return global(id).currentState.pushAndRemoveUntil(