redesign | merged with dev branch

OleksandrSobol committed Sep 14, 2020 at 22:07 UTC 18ccd5de35d7a5b559122246df4b9b52442909ec
6 files changed +301 -294
lib/di.dart
+2 -2
@@ -257,8 +257,8 @@ Future setup(
257 getIt.registerFactory(
258 () => SendPage(sendViewModel: getIt.get<SendViewModel>()));
259
260 - // getIt.registerFactory(
261 - // () => SendTemplatePage(sendViewModel: getIt.get<SendViewModel>()));
260 + getIt.registerFactory(
261 + () => SendTemplatePage(sendViewModel: getIt.get<SendViewModel>()));
262
263 getIt.registerFactory(() => WalletListViewModel(
264 walletInfoSource, getIt.get<AppStore>(), getIt.get<KeyService>()));
lib/reactions/bootstrap.dart
+2 -2
@@ -24,8 +24,8 @@ import 'package:cake_wallet/store/dashboard/fiat_convertation_store.dart';
24 // FIXME: move me
25 Future<void> loadCurrentWallet() async {
26 final appStore = getIt.get<AppStore>();
27 - final name = 'test';
28 - getIt.get<SharedPreferences>().getString('current_wallet_name');
27 + //final name = 'test';
28 + final name = getIt.get<SharedPreferences>().getString('current_wallet_name');
29 final typeRaw =
30 getIt.get<SharedPreferences>().getInt('current_wallet_type') ?? 0;
31 final type = deserializeFromInt(typeRaw);
lib/src/screens/dashboard/dashboard_page.dart
+15 -3
@@ -104,9 +104,12 @@ class DashboardPage extends BasePage {
104 )),
105 Container(
106 width: double.infinity,
107 - padding: EdgeInsets.only(left: 44, right: 0, bottom: 24),
107 + padding: EdgeInsets.only(
108 + left: 45,
109 + right: 45,
110 + bottom: 24
111 + ),
112 child: Row(
109 - mainAxisAlignment: MainAxisAlignment.spaceBetween,
113 children: <Widget>[
114 Flexible(
115 child: ActionButton(
@@ -120,7 +123,16 @@ class DashboardPage extends BasePage {
123 child: ActionButton(
124 image: exchangeImage,
125 title: S.of(context).exchange,
123 - route: Routes.exchange),
126 + route: Routes.exchange
127 + ),
128 + ),
129 + Flexible(
130 + child: ActionButton(
131 + image: receiveImage,
132 + title: S.of(context).receive,
133 + route: Routes.receive,
134 + alignment: Alignment.centerRight,
135 + ),
136 )
137 ],
138 ),
lib/src/screens/dashboard/wallet_menu.dart
+4 -4
@@ -79,13 +79,13 @@ class WalletMenu {
79 return AlertWithTwoActions(
80 alertTitle: S.of(context).reconnection,
81 alertContent: S.of(context).reconnect_alert_text,
82 - leftButtonText: S.of(context).ok,
83 - rightButtonText: S.of(context).cancel,
84 - actionLeftButton: () async {
82 + rightButtonText: S.of(context).ok,
83 + leftButtonText: S.of(context).cancel,
84 + actionRightButton: () async {
85 await reconnect?.call();
86 Navigator.of(context).pop();
87 },
88 - actionRightButton: () => Navigator.of(context).pop());
88 + actionLeftButton: () => Navigator.of(context).pop());
89 });
90 }
91 }
lib/src/screens/send/widgets/base_send_widget.dart
+266 -264
@@ -10,6 +10,7 @@ import 'package:cake_wallet/view_model/send/send_view_model.dart';
10 import 'package:flutter/services.dart';
11 import 'package:flutter_mobx/flutter_mobx.dart';
12 import 'package:mobx/mobx.dart';
13 +import 'package:cake_wallet/palette.dart';
14 import 'package:cake_wallet/src/widgets/address_text_field.dart';
15 import 'package:cake_wallet/generated/i18n.dart';
16 import 'package:cake_wallet/src/widgets/top_panel.dart';
@@ -25,9 +26,9 @@ import 'package:cake_wallet/routes.dart';
26 class BaseSendWidget extends StatelessWidget {
27 BaseSendWidget(
28 {@required this.sendViewModel,
28 - @required this.leading,
29 - @required this.middle,
30 - this.isTemplate = false});
29 + @required this.leading,
30 + @required this.middle,
31 + this.isTemplate = false});
32
33 final SendViewModel sendViewModel;
34 final bool isTemplate;
@@ -72,32 +73,33 @@ class BaseSendWidget extends StatelessWidget {
73 children: <Widget>[
74 isTemplate
75 ? BaseTextFormField(
75 - controller: _nameController,
76 - hintText: S.of(context).send_name,
77 - borderColor: Theme.of(context)
78 - .primaryTextTheme
79 - .headline
80 - .color,
81 - textStyle: TextStyle(
82 - fontSize: 14,
83 - fontWeight: FontWeight.w500,
84 - color: Colors.white),
85 - placeholderTextStyle: TextStyle(
86 - color: Theme.of(context)
87 - .primaryTextTheme
88 - .headline
89 - .decorationColor,
90 - fontWeight: FontWeight.w500,
91 - fontSize: 14),
92 - validator: sendViewModel.templateValidator,
93 - )
76 + controller: _nameController,
77 + hintText: S.of(context).send_name,
78 + borderColor: Theme.of(context)
79 + .primaryTextTheme
80 + .headline
81 + .color,
82 + textStyle: TextStyle(
83 + fontSize: 14,
84 + fontWeight: FontWeight.w500,
85 + color: Colors.white),
86 + placeholderTextStyle: TextStyle(
87 + color: Theme.of(context)
88 + .primaryTextTheme
89 + .headline
90 + .decorationColor,
91 + fontWeight: FontWeight.w500,
92 + fontSize: 14),
93 + validator: sendViewModel.templateValidator,
94 + )
95 : Offstage(),
96 Padding(
97 padding: EdgeInsets.only(top: isTemplate ? 20 : 0),
98 child: AddressTextField(
99 controller: _addressController,
99 - placeholder: S.of(context).send_address(
100 - sendViewModel.cryptoCurrencyTitle),
100 + // placeholder: S
101 + // .of(context)
102 + // .send_address(sendViewModel.cryptoCurrencyTitle),
103 focusNode: _focusNode,
104 onURIScanned: (uri) {
105 var address = '';
@@ -119,9 +121,9 @@ class BaseSendWidget extends StatelessWidget {
121 AddressTextFieldOption.addressBook
122 ],
123 buttonColor:
122 - Theme.of(context).primaryTextTheme.display1.color,
124 + Theme.of(context).primaryTextTheme.display1.color,
125 borderColor:
124 - Theme.of(context).primaryTextTheme.headline.color,
126 + Theme.of(context).primaryTextTheme.headline.color,
127 textStyle: TextStyle(
128 fontSize: 14,
129 fontWeight: FontWeight.w500,
@@ -150,43 +152,43 @@ class BaseSendWidget extends StatelessWidget {
152 prefixIcon: Padding(
153 padding: EdgeInsets.only(top: 9),
154 child:
153 - Text(sendViewModel.currency.title + ':',
154 - style: TextStyle(
155 - fontSize: 16,
156 - fontWeight: FontWeight.w600,
157 - color: Colors.white,
158 - )),
155 + Text(sendViewModel.currency.title + ':',
156 + style: TextStyle(
157 + fontSize: 16,
158 + fontWeight: FontWeight.w600,
159 + color: Colors.white,
160 + )),
161 ),
162 suffixIcon: isTemplate
163 ? Offstage()
164 : Container(
163 - height: 32,
164 - width: 32,
165 - margin: EdgeInsets.only(
166 - left: 14, top: 4, bottom: 10),
167 - decoration: BoxDecoration(
168 - color: Theme.of(context)
169 - .primaryTextTheme
170 - .display1
171 - .color,
172 - borderRadius: BorderRadius.all(
173 - Radius.circular(6))),
174 - child: InkWell(
175 - onTap: () =>
176 - sendViewModel.setSendAll(),
177 - child: Center(
178 - child: Text(S.of(context).all,
179 - textAlign: TextAlign.center,
180 - style: TextStyle(
181 - fontSize: 12,
182 - fontWeight: FontWeight.bold,
183 - color: Theme.of(context)
184 - .primaryTextTheme
185 - .display1
186 - .decorationColor)),
187 - ),
188 - ),
189 - ),
165 + height: 32,
166 + width: 32,
167 + margin: EdgeInsets.only(
168 + left: 14, top: 4, bottom: 10),
169 + decoration: BoxDecoration(
170 + color: Theme.of(context)
171 + .primaryTextTheme
172 + .display1
173 + .color,
174 + borderRadius: BorderRadius.all(
175 + Radius.circular(6))),
176 + child: InkWell(
177 + onTap: () =>
178 + sendViewModel.setSendAll(),
179 + child: Center(
180 + child: Text(S.of(context).all,
181 + textAlign: TextAlign.center,
182 + style: TextStyle(
183 + fontSize: 12,
184 + fontWeight: FontWeight.bold,
185 + color: Theme.of(context)
186 + .primaryTextTheme
187 + .display1
188 + .decorationColor)),
189 + ),
190 + ),
191 + ),
192 hintText: '0.0000',
193 borderColor: Theme.of(context)
194 .primaryTextTheme
@@ -208,37 +210,37 @@ class BaseSendWidget extends StatelessWidget {
210 isTemplate
211 ? Offstage()
212 : Observer(
211 - builder: (_) => Padding(
212 - padding: EdgeInsets.only(top: 10),
213 - child: Row(
214 - mainAxisSize: MainAxisSize.max,
215 - mainAxisAlignment:
216 - MainAxisAlignment.spaceBetween,
217 - children: <Widget>[
218 - Expanded(
219 - child: Text(
220 - S.of(context).available_balance + ':',
221 - style: TextStyle(
222 - fontSize: 12,
223 - fontWeight: FontWeight.w600,
224 - color: Theme.of(context)
225 - .primaryTextTheme
226 - .headline
227 - .decorationColor),
228 - )),
229 - Text(
230 - sendViewModel.balance,
231 - style: TextStyle(
232 - fontSize: 12,
233 - fontWeight: FontWeight.w600,
234 - color: Theme.of(context)
235 - .primaryTextTheme
236 - .headline
237 - .decorationColor),
238 - )
239 - ],
240 - ),
241 - )),
213 + builder: (_) => Padding(
214 + padding: EdgeInsets.only(top: 10),
215 + child: Row(
216 + mainAxisSize: MainAxisSize.max,
217 + mainAxisAlignment:
218 + MainAxisAlignment.spaceBetween,
219 + children: <Widget>[
220 + Expanded(
221 + child: Text(
222 + S.of(context).available_balance + ':',
223 + style: TextStyle(
224 + fontSize: 12,
225 + fontWeight: FontWeight.w600,
226 + color: Theme.of(context)
227 + .primaryTextTheme
228 + .headline
229 + .decorationColor),
230 + )),
231 + Text(
232 + sendViewModel.balance,
233 + style: TextStyle(
234 + fontSize: 12,
235 + fontWeight: FontWeight.w600,
236 + color: Theme.of(context)
237 + .primaryTextTheme
238 + .headline
239 + .decorationColor),
240 + )
241 + ],
242 + ),
243 + )),
244 Padding(
245 padding: const EdgeInsets.only(top: 20),
246 child: BaseTextFormField(
@@ -278,52 +280,52 @@ class BaseSendWidget extends StatelessWidget {
280 isTemplate
281 ? Offstage()
282 : Observer(
281 - builder: (_) => GestureDetector(
282 - onTap: () =>
283 - _setTransactionPriority(context),
284 - child: Container(
285 - padding: EdgeInsets.only(top: 24),
286 - child: Row(
287 - mainAxisAlignment:
288 - MainAxisAlignment.spaceBetween,
289 - children: <Widget>[
290 - Text(S.of(context).send_estimated_fee,
291 - style: TextStyle(
292 - fontSize: 12,
293 - fontWeight: FontWeight.w500,
294 - //color: Theme.of(context).primaryTextTheme.display2.color,
295 - color: Colors.white)),
296 - Container(
297 - child: Row(
298 - children: <Widget>[
299 - Text(
300 - sendViewModel.estimatedFee
301 - .toString() +
302 - ' ' +
303 - sendViewModel
304 - .currency.title,
305 - style: TextStyle(
306 - fontSize: 12,
307 - fontWeight:
308 - FontWeight.w600,
309 - //color: Theme.of(context).primaryTextTheme.display2.color,
310 - color: Colors.white)),
311 - Padding(
312 - padding:
313 - EdgeInsets.only(left: 5),
314 - child: Icon(
315 - Icons.arrow_forward_ios,
316 - size: 12,
317 - color: Colors.white,
318 - ),
319 - )
320 - ],
321 - ),
322 - )
323 - ],
324 - ),
283 + builder: (_) => GestureDetector(
284 + onTap: () =>
285 + _setTransactionPriority(context),
286 + child: Container(
287 + padding: EdgeInsets.only(top: 24),
288 + child: Row(
289 + mainAxisAlignment:
290 + MainAxisAlignment.spaceBetween,
291 + children: <Widget>[
292 + Text(S.of(context).send_estimated_fee,
293 + style: TextStyle(
294 + fontSize: 12,
295 + fontWeight: FontWeight.w500,
296 + //color: Theme.of(context).primaryTextTheme.display2.color,
297 + color: Colors.white)),
298 + Container(
299 + child: Row(
300 + children: <Widget>[
301 + Text(
302 + sendViewModel.estimatedFee
303 + .toString() +
304 + ' ' +
305 + sendViewModel
306 + .currency.title,
307 + style: TextStyle(
308 + fontSize: 12,
309 + fontWeight:
310 + FontWeight.w600,
311 + //color: Theme.of(context).primaryTextTheme.display2.color,
312 + color: Colors.white)),
313 + Padding(
314 + padding:
315 + EdgeInsets.only(left: 5),
316 + child: Icon(
317 + Icons.arrow_forward_ios,
318 + size: 12,
319 + color: Colors.white,
320 + ),
321 + )
322 + ],
323 ),
326 - ))
324 + )
325 + ],
326 + ),
327 + ),
328 + ))
329 ],
330 ),
331 )
@@ -333,117 +335,117 @@ class BaseSendWidget extends StatelessWidget {
335 isTemplate
336 ? Offstage()
337 : Padding(
336 - padding: EdgeInsets.only(top: 30, left: 24, bottom: 24),
337 - child: Row(
338 - mainAxisAlignment: MainAxisAlignment.start,
339 - children: <Widget>[
340 - Text(
341 - S.of(context).send_templates,
342 - style: TextStyle(
343 - fontSize: 18,
344 - fontWeight: FontWeight.w600,
345 - color: Theme.of(context)
346 - .primaryTextTheme
347 - .display4
348 - .color),
349 - )
350 - ],
351 - ),
352 - ),
338 + padding: EdgeInsets.only(top: 30, left: 24, bottom: 24),
339 + child: Row(
340 + mainAxisAlignment: MainAxisAlignment.start,
341 + children: <Widget>[
342 + Text(
343 + S.of(context).send_templates,
344 + style: TextStyle(
345 + fontSize: 18,
346 + fontWeight: FontWeight.w600,
347 + color: Theme.of(context)
348 + .primaryTextTheme
349 + .display4
350 + .color),
351 + )
352 + ],
353 + ),
354 + ),
355 isTemplate
356 ? Offstage()
357 : Container(
356 - height: 40,
357 - width: double.infinity,
358 - padding: EdgeInsets.only(left: 24),
359 - child: SingleChildScrollView(
360 - scrollDirection: Axis.horizontal,
361 - child: Row(
362 - children: <Widget>[
363 - GestureDetector(
364 - onTap: () => Navigator.of(context)
365 - .pushNamed(Routes.sendTemplate),
358 + height: 40,
359 + width: double.infinity,
360 + padding: EdgeInsets.only(left: 24),
361 + child: SingleChildScrollView(
362 + scrollDirection: Axis.horizontal,
363 + child: Row(
364 + children: <Widget>[
365 + GestureDetector(
366 + onTap: () => Navigator.of(context)
367 + .pushNamed(Routes.sendTemplate),
368 + child: Container(
369 + padding: EdgeInsets.only(left: 1, right: 10),
370 + child: DottedBorder(
371 + borderType: BorderType.RRect,
372 + dashPattern: [6, 4],
373 + color: Theme.of(context)
374 + .primaryTextTheme
375 + .display2
376 + .decorationColor,
377 + strokeWidth: 2,
378 + radius: Radius.circular(20),
379 child: Container(
367 - padding: EdgeInsets.only(left: 1, right: 10),
368 - child: DottedBorder(
369 - borderType: BorderType.RRect,
370 - dashPattern: [6, 4],
371 - color: Theme.of(context)
372 - .primaryTextTheme
373 - .display2
374 - .decorationColor,
375 - strokeWidth: 2,
376 - radius: Radius.circular(20),
377 - child: Container(
378 - height: 34,
379 - width: 75,
380 - padding: EdgeInsets.only(left: 10, right: 10),
381 - alignment: Alignment.center,
382 - decoration: BoxDecoration(
383 - borderRadius:
384 - BorderRadius.all(Radius.circular(20)),
385 - color: Colors.transparent,
386 - ),
387 - child: Text(
388 - S.of(context).send_new,
389 - style: TextStyle(
390 - fontSize: 14,
391 - fontWeight: FontWeight.w600,
392 - color: Theme.of(context)
393 - .primaryTextTheme
394 - .display3
395 - .color),
396 - ),
397 - )),
398 - ),
399 - ),
400 - // Observer(
401 - // builder: (_) {
402 - // final templates = sendViewModel.templates;
403 - // final itemCount = templates.length;
380 + height: 34,
381 + width: 75,
382 + padding: EdgeInsets.only(left: 10, right: 10),
383 + alignment: Alignment.center,
384 + decoration: BoxDecoration(
385 + borderRadius:
386 + BorderRadius.all(Radius.circular(20)),
387 + color: Colors.transparent,
388 + ),
389 + child: Text(
390 + S.of(context).send_new,
391 + style: TextStyle(
392 + fontSize: 14,
393 + fontWeight: FontWeight.w600,
394 + color: Theme.of(context)
395 + .primaryTextTheme
396 + .display3
397 + .color),
398 + ),
399 + )),
400 + ),
401 + ),
402 + // Observer(
403 + // builder: (_) {
404 + // final templates = sendViewModel.templates;
405 + // final itemCount = templates.length;
406
405 - // return ListView.builder(
406 - // scrollDirection: Axis.horizontal,
407 - // shrinkWrap: true,
408 - // physics: NeverScrollableScrollPhysics(),
409 - // itemCount: itemCount,
410 - // itemBuilder: (context, index) {
411 - // final template = templates[index];
407 + // return ListView.builder(
408 + // scrollDirection: Axis.horizontal,
409 + // shrinkWrap: true,
410 + // physics: NeverScrollableScrollPhysics(),
411 + // itemCount: itemCount,
412 + // itemBuilder: (context, index) {
413 + // final template = templates[index];
414
413 - return TemplateTile(
414 - key: UniqueKey(),
415 - to: template.name,
416 - amount: template.amount,
417 - from: template.cryptoCurrency,
418 - onTap: () {
419 - _addressController.text = template.address;
420 - _cryptoAmountController.text = template.amount;
421 - getOpenaliasRecord(context);
422 - },
423 - onRemove: () {
424 - showDialog<void>(
425 - context: context,
426 - builder: (dialogContext) {
427 - return AlertWithTwoActions(
428 - alertTitle: S.of(context).template,
429 - alertContent: S.of(context).confirm_delete_template,
430 - rightButtonText: S.of(context).delete,
431 - leftButtonText: S.of(context).cancel,
432 - actionRightButton: () {
433 - Navigator.of(dialogContext).pop();
434 - sendViewModel.sendTemplateStore.remove(template: template);
435 - sendViewModel.sendTemplateStore.update();
436 - },
437 - actionLeftButton: () => Navigator.of(dialogContext).pop()
438 - );
439 - }
440 - );
441 - },
442 - );
443 - }
444 - );
445 - }
446 - )
415 + // return TemplateTile(
416 + // key: UniqueKey(),
417 + // to: template.name,
418 + // amount: template.amount,
419 + // from: template.cryptoCurrency,
420 + // onTap: () {
421 + // _addressController.text = template.address;
422 + // _cryptoAmountController.text = template.amount;
423 + // getOpenaliasRecord(context);
424 + // },
425 + // onRemove: () {
426 + // showDialog<void>(
427 + // context: context,
428 + // builder: (dialogContext) {
429 + // return AlertWithTwoActions(
430 + // alertTitle: S.of(context).template,
431 + // alertContent: S.of(context).confirm_delete_template,
432 + // leftButtonText: S.of(context).delete,
433 + // rightButtonText: S.of(context).cancel,
434 + // actionLeftButton: () {
435 + // Navigator.of(dialogContext).pop();
436 + // sendViewModel.sendTemplateStore.remove(template: template);
437 + // sendViewModel.sendTemplateStore.update();
438 + // },
439 + // actionRightButton: () => Navigator.of(dialogContext).pop()
440 + // );
441 + // }
442 + // );
443 + // },
444 + // );
445 + // }
446 + // );
447 + // }
448 + // )
449 ],
450 ),
451 ),
@@ -453,20 +455,20 @@ class BaseSendWidget extends StatelessWidget {
455 bottomSectionPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24),
456 bottomSection: isTemplate
457 ? PrimaryButton(
456 - onPressed: () {
457 - if (_formKey.currentState.validate()) {
458 - // sendViewModel.sendTemplateStore.addTemplate(
459 - // name: _nameController.text,
460 - // address: _addressController.text,
461 - // cryptoCurrency: sendViewModel.currency.title,
462 - // amount: _cryptoAmountController.text);
463 - // sendViewModel.sendTemplateStore.update();
464 - Navigator.of(context).pop();
465 - }
466 - },
467 - text: S.of(context).save,
468 - color: Colors.green,
469 - textColor: Colors.white)
458 + onPressed: () {
459 + if (_formKey.currentState.validate()) {
460 + // sendViewModel.sendTemplateStore.addTemplate(
461 + // name: _nameController.text,
462 + // address: _addressController.text,
463 + // cryptoCurrency: sendViewModel.currency.title,
464 + // amount: _cryptoAmountController.text);
465 + // sendViewModel.sendTemplateStore.update();
466 + Navigator.of(context).pop();
467 + }
468 + },
469 + text: S.of(context).save,
470 + color: Colors.green,
471 + textColor: Colors.white)
472 : Observer(builder: (_) {
473 return LoadingPrimaryButton(
474 onPressed: () {
@@ -552,7 +554,7 @@ class BaseSendWidget extends StatelessWidget {
554 alertTitle: S.of(context).confirm_sending,
555 amount: S.of(context).send_amount,
556 amountValue:
555 - sendViewModel.pendingTransaction.amountFormatted,
557 + sendViewModel.pendingTransaction.amountFormatted,
558 fee: S.of(context).send_fee,
559 feeValue: sendViewModel.pendingTransaction.feeFormatted,
560 leftButtonText: S.of(context).ok,
@@ -694,14 +696,14 @@ class BaseSendWidget extends StatelessWidget {
696
697 await showDialog<void>(
698 builder: (_) => Picker(
697 - items: items,
698 - selectedAtIndex: selectedItem,
699 - title: S.of(context).please_select,
700 - mainAxisAlignment: MainAxisAlignment.center,
701 - onItemSelected: (TransactionPriority priority) => null,
702 - // sendViewModel.setTransactionPriority(priority),
703 - isAlwaysShowScrollThumb: true,
704 - ),
699 + items: items,
700 + selectedAtIndex: selectedItem,
701 + title: S.of(context).please_select,
702 + mainAxisAlignment: MainAxisAlignment.center,
703 + onItemSelected: (TransactionPriority priority) => null,
704 + // sendViewModel.setTransactionPriority(priority),
705 + isAlwaysShowScrollThumb: true,
706 + ),
707 context: context);
708 }
707 -}
709 +}
\ No newline at end of file
pubspec.lock
+12 -19
@@ -42,7 +42,7 @@ packages:
42 name: async
43 url: "https://pub.dartlang.org"
44 source: hosted
45 - version: "2.4.2"
45 + version: "2.4.1"
46 auto_size_text:
47 dependency: "direct main"
48 description:
@@ -210,7 +210,7 @@ packages:
210 name: collection
211 url: "https://pub.dartlang.org"
212 source: hosted
213 - version: "1.14.13"
213 + version: "1.14.12"
214 convert:
215 dependency: transitive
216 description:
@@ -224,7 +224,7 @@ packages:
224 name: crypto
225 url: "https://pub.dartlang.org"
226 source: hosted
227 - version: "2.1.5"
227 + version: "2.1.4"
228 csslib:
229 dependency: transitive
230 description:
@@ -302,13 +302,6 @@ packages:
302 url: "https://pub.dartlang.org"
303 source: hosted
304 version: "1.0.2"
305 - fake_async:
306 - dependency: transitive
307 - description:
308 - name: fake_async
309 - url: "https://pub.dartlang.org"
310 - source: hosted
311 - version: "1.1.0"
305 ffi:
306 dependency: transitive
307 description:
@@ -475,7 +468,7 @@ packages:
468 name: image
469 url: "https://pub.dartlang.org"
470 source: hosted
478 - version: "2.1.14"
471 + version: "2.1.12"
472 intl:
473 dependency: "direct main"
474 description:
@@ -524,7 +517,7 @@ packages:
517 name: matcher
518 url: "https://pub.dartlang.org"
519 source: hosted
527 - version: "0.12.8"
520 + version: "0.12.6"
521 meta:
522 dependency: transitive
523 description:
@@ -594,7 +587,7 @@ packages:
587 name: path
588 url: "https://pub.dartlang.org"
589 source: hosted
597 - version: "1.7.0"
590 + version: "1.6.4"
591 path_drawing:
592 dependency: transitive
593 description:
@@ -650,7 +643,7 @@ packages:
643 name: petitparser
644 url: "https://pub.dartlang.org"
645 source: hosted
653 - version: "3.0.4"
646 + version: "2.4.0"
647 platform:
648 dependency: transitive
649 description:
@@ -830,7 +823,7 @@ packages:
823 name: stack_trace
824 url: "https://pub.dartlang.org"
825 source: hosted
833 - version: "1.9.5"
826 + version: "1.9.3"
827 stream_channel:
828 dependency: transitive
829 description:
@@ -865,7 +858,7 @@ packages:
858 name: test_api
859 url: "https://pub.dartlang.org"
860 source: hosted
868 - version: "0.2.17"
861 + version: "0.2.15"
862 time:
863 dependency: transitive
864 description:
@@ -886,7 +879,7 @@ packages:
879 name: typed_data
880 url: "https://pub.dartlang.org"
881 source: hosted
889 - version: "1.2.0"
882 + version: "1.1.6"
883 url_launcher:
884 dependency: "direct main"
885 description:
@@ -963,7 +956,7 @@ packages:
956 name: xml
957 url: "https://pub.dartlang.org"
958 source: hosted
966 - version: "4.2.0"
959 + version: "3.6.1"
960 yaml:
961 dependency: "direct main"
962 description:
@@ -972,5 +965,5 @@ packages:
965 source: hosted
966 version: "2.2.1"
967 sdks:
975 - dart: ">=2.9.0-14.0.dev <3.0.0"
968 + dart: ">=2.7.0 <3.0.0"
969 flutter: ">=1.12.13+hotfix.5 <2.0.0"