From dfb3112fd27e5484f9a22e57df35b7256e8d59bc Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Fri, 25 Sep 2020 16:30:39 +0300 Subject: [PATCH] CAKE-54 | added usdt erc20 to cryptocurrencies list; added usdt erc20 to currency picker; added usdt erc20 logo to contact list page; added address validator for usdt erc20; reworked currency picker --- assets/images/usdterc.png | Bin 0 -> 69679 bytes lib/core/address_validator.dart | 4 + lib/entities/crypto_currency.dart | 12 +- .../screens/contact/contact_list_page.dart | 3 + .../exchange/widgets/currency_picker.dart | 151 ++++++++++++------ 5 files changed, 121 insertions(+), 49 deletions(-) create mode 100644 assets/images/usdterc.png diff --git a/assets/images/usdterc.png b/assets/images/usdterc.png new file mode 100644 index 0000000000000000000000000000000000000000..212b301b5199f22124c9a5899e9cb5825c6dae7f GIT binary patch literal 69679 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 z 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 SxbhxSigxhmf!O_q|NS3-W=+BX literal 0 HcmV?d00001 diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 19810c636..e043e3b1e 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -38,6 +38,8 @@ class AddressValidator extends TextValidator { return '[0-9a-zA-Z]'; case CryptoCurrency.usdt: return '[0-9a-zA-Z]'; + case CryptoCurrency.usdterc20: + return '[0-9a-zA-Z]'; case CryptoCurrency.xlm: return '[0-9a-zA-Z]'; case CryptoCurrency.xrp: @@ -75,6 +77,8 @@ class AddressValidator extends TextValidator { return [34]; case CryptoCurrency.usdt: return [42]; + case CryptoCurrency.usdterc20: + return [42]; case CryptoCurrency.xlm: return [56]; case CryptoCurrency.xrp: diff --git a/lib/entities/crypto_currency.dart b/lib/entities/crypto_currency.dart index b836393bd..d5f23a0fa 100644 --- a/lib/entities/crypto_currency.dart +++ b/lib/entities/crypto_currency.dart @@ -22,6 +22,7 @@ class CryptoCurrency extends EnumerableItem with Serializable { CryptoCurrency.nano, CryptoCurrency.trx, CryptoCurrency.usdt, + CryptoCurrency.usdterc20, CryptoCurrency.xlm, CryptoCurrency.xrp ]; @@ -38,8 +39,9 @@ class CryptoCurrency extends EnumerableItem with Serializable { static const nano = CryptoCurrency(title: 'NANO', raw: 10); static const trx = CryptoCurrency(title: 'TRX', raw: 11); static const usdt = CryptoCurrency(title: 'USDT', raw: 12); - static const xlm = CryptoCurrency(title: 'XLM', raw: 13); - static const xrp = CryptoCurrency(title: 'XRP', raw: 14); + static const usdterc20 = CryptoCurrency(title: 'USDTERC20', raw: 13); + static const xlm = CryptoCurrency(title: 'XLM', raw: 14); + static const xrp = CryptoCurrency(title: 'XRP', raw: 15); static CryptoCurrency deserialize({int raw}) { switch (raw) { @@ -70,8 +72,10 @@ class CryptoCurrency extends EnumerableItem with Serializable { case 12: return CryptoCurrency.usdt; case 13: - return CryptoCurrency.xlm; + return CryptoCurrency.usdterc20; case 14: + return CryptoCurrency.xlm; + case 15: return CryptoCurrency.xrp; default: return null; @@ -106,6 +110,8 @@ class CryptoCurrency extends EnumerableItem with Serializable { return CryptoCurrency.trx; case 'usdt': return CryptoCurrency.usdt; + case 'usdterc20': + return CryptoCurrency.usdterc20; case 'xlm': return CryptoCurrency.xlm; case 'xrp': diff --git a/lib/src/screens/contact/contact_list_page.dart b/lib/src/screens/contact/contact_list_page.dart index 988246656..7d846b9de 100644 --- a/lib/src/screens/contact/contact_list_page.dart +++ b/lib/src/screens/contact/contact_list_page.dart @@ -236,6 +236,9 @@ class ContactListPage extends BasePage { case CryptoCurrency.usdt: image = Image.asset('assets/images/usdt.png', height: 24, width: 24); break; + case CryptoCurrency.usdterc20: + image = Image.asset('assets/images/usdterc.png', height: 24, width: 24); + break; case CryptoCurrency.xlm: image = Image.asset('assets/images/xlm.png', height: 24, width: 24); break; diff --git a/lib/src/screens/exchange/widgets/currency_picker.dart b/lib/src/screens/exchange/widgets/currency_picker.dart index 668f99e77..8a5c2794f 100644 --- a/lib/src/screens/exchange/widgets/currency_picker.dart +++ b/lib/src/screens/exchange/widgets/currency_picker.dart @@ -5,8 +5,9 @@ import 'package:flutter/material.dart'; import 'package:cake_wallet/entities/crypto_currency.dart'; import 'package:cake_wallet/src/widgets/alert_background.dart'; import 'package:cake_wallet/src/widgets/alert_close_button.dart'; +import 'package:cake_wallet/src/widgets/cake_scrollbar.dart'; -class CurrencyPicker extends StatelessWidget { +class CurrencyPicker extends StatefulWidget { CurrencyPicker({ @required this.selectedAtIndex, @required this.items, @@ -18,12 +19,47 @@ class CurrencyPicker extends StatelessWidget { final List items; final String title; final Function(CryptoCurrency) onItemSelected; + + @override + CurrencyPickerState createState() => CurrencyPickerState( + selectedAtIndex, + items, + title, + onItemSelected + ); +} + +class CurrencyPickerState extends State { + CurrencyPickerState( + this.selectedAtIndex, + this.items, + this.title, + this.onItemSelected): itemsCount = items.length; + + final int selectedAtIndex; + final List items; + final String title; + final Function(CryptoCurrency) onItemSelected; + final closeButton = Image.asset('assets/images/close.png', color: Palette.darkBlueCraiola, ); + final int crossAxisCount = 3; + final int itemsCount; + final double backgroundHeight = 280; + final double thumbHeight = 72; + ScrollController controller = ScrollController(); + double fromTop = 0; @override Widget build(BuildContext context) { + controller.addListener(() { + fromTop = controller.hasClients + ? (controller.offset / controller.position.maxScrollExtent * (backgroundHeight - thumbHeight)) + : 0; + setState(() {}); + }); + return AlertBackground( child: Stack( alignment: Alignment.center, @@ -52,54 +88,72 @@ class CurrencyPicker extends StatelessWidget { child: ClipRRect( borderRadius: BorderRadius.all(Radius.circular(14)), child: Container( - height: 400, - width: 300, - color: Theme.of(context).accentTextTheme.title.backgroundColor, - child: GridView.count( - shrinkWrap: true, - crossAxisCount: 3, - childAspectRatio: 1.25, - physics: const NeverScrollableScrollPhysics(), - crossAxisSpacing: 1, - mainAxisSpacing: 1, - children: List.generate(items.length, (index) { + height: 320, + width: 300, + color: Theme.of(context).accentTextTheme.title.backgroundColor, + child: Stack( + alignment: Alignment.center, + children: [ + GridView.count( + controller: controller, + crossAxisCount: crossAxisCount, + childAspectRatio: 1.25, + crossAxisSpacing: 1, + mainAxisSpacing: 1, + children: List.generate( + itemsCount + + getExtraEmptyTilesCount(crossAxisCount, itemsCount), + (index) { - final item = items[index]; - final isItemSelected = index == selectedAtIndex; + if (index >= itemsCount) { + return Container( + color: Theme.of(context).accentTextTheme.title.color, + ); + } - final color = isItemSelected - ? Theme.of(context).textTheme.body2.color - : Theme.of(context).accentTextTheme.title.color; - final textColor = isItemSelected - ? Palette.blueCraiola - : Theme.of(context).primaryTextTheme.title.color; + final item = items[index]; + final isItemSelected = index == selectedAtIndex; - return GestureDetector( - onTap: () { - if (onItemSelected == null) { - return; - } - Navigator.of(context).pop(); - onItemSelected(item); - }, - child: Container( - color: color, - child: Center( - child: Text( - item.toString(), - style: TextStyle( - fontSize: 18, - fontFamily: 'Poppins', - fontWeight: FontWeight.w600, - decoration: TextDecoration.none, - color: textColor - ), - ), - ), - ), - ); - }) - ), + final color = isItemSelected + ? Theme.of(context).textTheme.body2.color + : Theme.of(context).accentTextTheme.title.color; + final textColor = isItemSelected + ? Palette.blueCraiola + : Theme.of(context).primaryTextTheme.title.color; + + return GestureDetector( + onTap: () { + if (onItemSelected == null) { + return; + } + Navigator.of(context).pop(); + onItemSelected(item); + }, + child: Container( + color: color, + child: Center( + child: Text( + item.toString(), + style: TextStyle( + fontSize: 15, + fontFamily: 'Poppins', + fontWeight: FontWeight.w600, + decoration: TextDecoration.none, + color: textColor + ), + ), + ), + ), + ); + }) + ), + CakeScrollbar( + backgroundHeight: backgroundHeight, + thumbHeight: thumbHeight, + fromTop: fromTop + ) + ], + ) ), ), ), @@ -111,4 +165,9 @@ class CurrencyPicker extends StatelessWidget { ) ); } + + int getExtraEmptyTilesCount(int crossAxisCount, int itemsCount) { + final int tilesInNewRowCount = itemsCount % crossAxisCount; + return tilesInNewRowCount == 0 ? 0 : crossAxisCount - tilesInNewRowCount; + } } \ No newline at end of file