From 1cd90cf57d0149bd72f1ed77c5ed1bc320720421 Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 31 Mar 2022 17:16:42 +0300 Subject: [PATCH] Cw 09 implement picker screen with ability to search (#250) * Added new picker screen with search bar and currency icons --- assets/images/ada_icon.png | Bin 0 -> 5676 bytes assets/images/bch_icon.png | Bin 0 -> 3431 bytes assets/images/bitcoin_icon.png | Bin 0 -> 1708 bytes assets/images/bnb_icon.png | Bin 0 -> 1494 bytes assets/images/btc.png | Bin 0 -> 5061 bytes assets/images/dai_icon.png | Bin 0 -> 4752 bytes assets/images/dash_icon.png | Bin 0 -> 2257 bytes assets/images/eos_icon.png | Bin 0 -> 3005 bytes assets/images/eth_icon.png | Bin 0 -> 3437 bytes assets/images/litecoin-ltc_icon.png | Bin 0 -> 4855 bytes assets/images/litecoin_img.png | Bin 0 -> 1541 bytes assets/images/monero_icon.png | Bin 0 -> 20217 bytes assets/images/trx_icon.png | Bin 0 -> 6884 bytes assets/images/usdt_icon.png | Bin 0 -> 2113 bytes assets/images/usdterc20_icon.png | Bin 0 -> 5023 bytes assets/images/usdterc_icon.png | Bin 0 -> 391 bytes assets/images/xlm_icon.png | Bin 0 -> 2452 bytes assets/images/xrp_icon.png | Bin 0 -> 2393 bytes lib/src/screens/exchange/exchange_page.dart | 4 +- .../exchange/widgets/currency_picker.dart | 324 ++++++++++-------- .../widgets/currency_picker_item_widget.dart | 93 +++++ .../widgets/currency_picker_widget.dart | 61 ++++ .../exchange/widgets/currency_utils.dart | 99 ++++++ .../exchange/widgets/exchange_card.dart | 227 ++++++------ .../screens/exchange/widgets/picker_item.dart | 10 + lib/src/widgets/standard_list.dart | 11 +- res/values/strings_de.arb | 2 +- res/values/strings_en.arb | 2 +- res/values/strings_es.arb | 2 +- res/values/strings_hi.arb | 2 +- res/values/strings_hr.arb | 2 +- res/values/strings_it.arb | 2 +- res/values/strings_ja.arb | 2 +- res/values/strings_ko.arb | 2 +- res/values/strings_nl.arb | 2 +- res/values/strings_pl.arb | 2 +- res/values/strings_pt.arb | 2 +- res/values/strings_ru.arb | 2 +- res/values/strings_uk.arb | 2 +- res/values/strings_zh.arb | 2 +- 40 files changed, 578 insertions(+), 279 deletions(-) create mode 100644 assets/images/ada_icon.png create mode 100644 assets/images/bch_icon.png create mode 100644 assets/images/bitcoin_icon.png create mode 100644 assets/images/bnb_icon.png create mode 100644 assets/images/btc.png create mode 100644 assets/images/dai_icon.png create mode 100644 assets/images/dash_icon.png create mode 100644 assets/images/eos_icon.png create mode 100644 assets/images/eth_icon.png create mode 100644 assets/images/litecoin-ltc_icon.png create mode 100644 assets/images/litecoin_img.png create mode 100644 assets/images/monero_icon.png create mode 100644 assets/images/trx_icon.png create mode 100644 assets/images/usdt_icon.png create mode 100644 assets/images/usdterc20_icon.png create mode 100644 assets/images/usdterc_icon.png create mode 100644 assets/images/xlm_icon.png create mode 100644 assets/images/xrp_icon.png create mode 100644 lib/src/screens/exchange/widgets/currency_picker_item_widget.dart create mode 100644 lib/src/screens/exchange/widgets/currency_picker_widget.dart create mode 100644 lib/src/screens/exchange/widgets/currency_utils.dart create mode 100644 lib/src/screens/exchange/widgets/picker_item.dart diff --git a/assets/images/ada_icon.png b/assets/images/ada_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..61ccdfbfbce18ad33b217c1020e8735a1db244c1 GIT binary patch literal 5676 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 b(%1h3QzdzwKAFM*00000NkvXXu0mjf^-G#0 literal 0 HcmV?d00001 diff --git a/assets/images/dai_icon.png b/assets/images/dai_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9aaa9566857d356187d0bc9c6e0d18577aa52bce GIT binary patch literal 4752 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 literal 0 HcmV?d00001 diff --git a/assets/images/eth_icon.png b/assets/images/eth_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c96f24cafb98f4c7110e8b93c41cabb7beea2099 GIT binary patch literal 3437 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 literal 0 HcmV?d00001 diff --git a/assets/images/litecoin_img.png b/assets/images/litecoin_img.png new file mode 100644 index 0000000000000000000000000000000000000000..8bf55f7a4bdbd26a102763ce30c0569ac7a1e3c8 GIT binary patch literal 1541 zcmV+g2KxDlP)Px)zez+vR9HuyS9?%YRT%$$_b$6EAPR^mV&X*Q$fzkWRwm(83OK`LqLU9m!0<8C z1Ib5?6^&-)i)@Axlb0AX2&2`MM1v*18cHc0m2A{RC?6ogAh5vh`I>u|T^_Q#*Y00C zdw$<{e&;*C?{Nqkzp%6%5AKiyCCEXLc^W}_j9K`C0g%*4;43U}PC(aSrdv197p-g8 z;+kB6f)?&FjyC!&21F8=CjbZl;AXXBn>_>S&mMs9fTU|eaDl1I>#Iwpi@Kfd;gCRB zT8kkl^m{{oN#bPfYUUn5aZ!ZIMvSf#~-tU6hA{>}eNvB?{ zxtP16xj$e4f#9focmE(RWa9aK_dK*eA8&VLrbQyqe^{>^7+J;DIDP&fN4%9Q`1VXu z>Ow_4Hjtgbq=lJ!50Bu@5SH~?LjJ^fUwpnX2Hu_q6@I_78>_Y+!R5LE2OPo`WwEhm zgH0250#7FGo2e7@J%Hg_2*f`>5$h74hD25ubvIkF>Z5WrwRAW&XV5(}IPP3g>PZEt zT8G4ZW*Fh`RRLy2?JhsXD0^cxA|?gev8T?}BO|L47GaOBLq81q>8?!kt`{VmR083N z`6;NrYi!u(kQQqC@ettaiJW(0Fm{x;3KxR0Irjv< zJ8?yexgEnmw*bwd@Pxc{06Y8Db*GLdhxj9VLo|#AYddIZGpXvoT7R!s(%N`1gPACU zB9`T5GhwwYBV3uM#7)KO_%J){PIEg-D{JxSI3MI3szJl;Hdiie!evPE9tum$DY;;Eg?R$6%DNr|L{;yKnCN5!Dy|{a*wa)J;rt zH5a01rUYSU`V02{f4jL|?S2h+w5k39mW&3Lq`V-k$xW@?VLHlu`sRKSwsXzp{@>-g}Fcp5pv!_HB;g7!`) zDaXLEnmTOBJvGGPA(&}J&4HABl|b3Rzdnd)Kax_Nf*O6L!RUdR6d7EeHz0_!Ek00000NkvXXu0mjfO(fM~ literal 0 HcmV?d00001 diff --git a/assets/images/monero_icon.png b/assets/images/monero_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7b6f74df6eac941cd255391a33ef10cee8b86677 GIT binary patch literal 20217 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 e9e#LMg8v7TR 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 E53?C^B>(^b literal 0 HcmV?d00001 diff --git a/assets/images/usdterc_icon.png b/assets/images/usdterc_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e2e736a6a66bd4f223a54001a1f3b1693a8d2204 GIT binary patch literal 391 zcmV;20eJq2P)Px$K}keGR9HvNmO&1}AP_}|gSd9#(hHb)0NZQm!pl^TVS54N5!{%#Ht`-BnqVk0 zFdt~zE?eNg`G24&n)p!@>k|u5wWm)>xUN2UwY)D&iVm<&|_G36;yYO=WZ9W&w%{taNCWamW71wie0gMY`04;cZ zJ*m0h`rtC(f(_Yw{e(OZR@FH{8rpvQ7+MI*3%zNJJ2mmLpb)uJ2 z=}(H=ZXt0I02hbEfta`$K++TLUYCeN00@Ls90rg;AmT{?AqZ4F8NdgTBAx|cL!^pl l1E7}}-}vZ3R6-=Q#uq<@wkv=2kNf}t002ovPDHLkV1oA}nsxvH literal 0 HcmV?d00001 diff --git a/assets/images/xlm_icon.png b/assets/images/xlm_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9274038141c3053c17010daebf7374e94a2d4a GIT binary patch literal 2452 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 literal 0 HcmV?d00001 diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 39a274ccd..3299543bb 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -206,8 +206,8 @@ class ExchangePage extends BasePage { onCurrencySelected: (currency) { // FIXME: need to move it into view model if (currency == CryptoCurrency.xmr && - exchangeViewModel.wallet.type == - WalletType.bitcoin) { + exchangeViewModel.wallet.type != + WalletType.monero) { showPopUp( context: context, builder: (dialogContext) { diff --git a/lib/src/screens/exchange/widgets/currency_picker.dart b/lib/src/screens/exchange/widgets/currency_picker.dart index 7e149c875..4cbda9b99 100644 --- a/lib/src/screens/exchange/widgets/currency_picker.dart +++ b/lib/src/screens/exchange/widgets/currency_picker.dart @@ -1,176 +1,210 @@ import 'dart:ui'; +import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/src/screens/exchange/widgets/currency_utils.dart'; +import 'package:cake_wallet/src/screens/exchange/widgets/picker_item.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:cw_core/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'; +import 'currency_picker_widget.dart'; class CurrencyPicker extends StatefulWidget { - CurrencyPicker({ - @required this.selectedAtIndex, - @required this.items, - @required this.title, - @required this.onItemSelected, - }); + CurrencyPicker( + {@required this.selectedAtIndex, + @required this.items, + @required this.title, + @required this.onItemSelected, + this.isMoneroWallet = false, + this.isConvertFrom = false}); - final int selectedAtIndex; + int selectedAtIndex; final List items; final String title; final Function(CryptoCurrency) onItemSelected; + final bool isMoneroWallet; + final bool isConvertFrom; @override - CurrencyPickerState createState() => CurrencyPickerState( - selectedAtIndex, - items, - title, - onItemSelected - ); + CurrencyPickerState createState() => CurrencyPickerState(items); } class CurrencyPickerState extends State { - CurrencyPickerState( - this.selectedAtIndex, - this.items, - this.title, - this.onItemSelected): itemsCount = items.length; + CurrencyPickerState(this.items) + : isSearchBarActive = false, + textFieldValue = '', + subPickerItemsList = [], + appBarTextStyle = TextStyle( + fontSize: 20, + fontFamily: 'Lato', + backgroundColor: Colors.transparent, + color: Colors.white); - final int selectedAtIndex; - final List items; - final String title; - final Function(CryptoCurrency) onItemSelected; + @override + void initState() { + pickerItemsList = CryptoCurrency.all + .map((CryptoCurrency cur) => PickerItem(cur, + title: CurrencyUtils.titleForCurrency(cur), + iconPath: CurrencyUtils.iconPathForCurrency(cur), + tag: CurrencyUtils.tagForCurrency(cur), + description: CurrencyUtils.descriptionForCurrency(cur))) + .toList(); + cleanSubPickerItemsList(); + super.initState(); + } - final closeButton = Image.asset('assets/images/close.png', - color: Palette.darkBlueCraiola, - ); - final int crossAxisCount = 3; - final int maxNumberItemsInAlert = 12; - final int itemsCount; - final double backgroundHeight = 280; - final double thumbHeight = 72; - ScrollController controller = ScrollController(); - double fromTop = 0; + List> pickerItemsList; + List items; + bool isSearchBarActive; + String textFieldValue; + List> subPickerItemsList; + TextStyle appBarTextStyle; + + void cleanSubPickerItemsList() { + subPickerItemsList = pickerItemsList + .where((element) => items.contains(element.original)) + .toList(); + } + + void currencySearchBySubstring( + String subString, List> list) { + setState(() { + if (subString.isNotEmpty) { + subPickerItemsList = subPickerItemsList + .where((element) => + element.title.contains(subString.toUpperCase()) || + element.description.contains(subString.toLowerCase())) + .toList(); + } else { + cleanSubPickerItemsList(); + } + }); + } @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, - children: [ - Column( - mainAxisSize: MainAxisSize.min, - children: [ - Container( - padding: EdgeInsets.only(left: 24, right: 24), - child: Text( - title, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 18, - fontFamily: 'Lato', - fontWeight: FontWeight.bold, - decoration: TextDecoration.none, - color: Colors.white + child: SafeArea( + child: Scaffold( + resizeToAvoidBottomInset: false, + backgroundColor: Colors.transparent, + body: Column( + children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 26.0, vertical: 0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + isSearchBarActive + ? Expanded( + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + InkWell( + child: Text( + S.of(context).cancel, + style: appBarTextStyle, + ), + onTap: () { + setState(() { + isSearchBarActive = false; + textFieldValue = ''; + cleanSubPickerItemsList(); + }); + }), + Container( + width: 100.0, + child: CupertinoTextField( + autofocus: true, + placeholder: + S.of(context).search + '...', + placeholderStyle: appBarTextStyle, + decoration: BoxDecoration( + color: Colors.transparent), + cursorColor: Colors.white, + cursorHeight: 23.0, + style: appBarTextStyle, + onChanged: (value) { + this.textFieldValue = value; + cleanSubPickerItemsList(); + currencySearchBySubstring( + textFieldValue, + subPickerItemsList); + }), + ) + ], + ), + ) + : Text( + widget.title, + style: appBarTextStyle, + ), + IconButton( + splashRadius: 23, + icon: Icon(Icons.search, color: Colors.white), + onPressed: () { + setState(() { + isSearchBarActive = true; + }); + }, + ) + ]), + ), + Expanded( + flex: 12, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 26.0, vertical: 26.0), + child: Container( + child: CurrencyPickerWidget( + crossAxisCount: 2, + selectedAtIndex: widget.selectedAtIndex, + itemsCount: subPickerItemsList.length, + pickerItemsList: subPickerItemsList, + pickListItem: (int index) { + setState(() { + widget.selectedAtIndex = index; + }); + widget + .onItemSelected(subPickerItemsList[index].original); + if (widget.isConvertFrom && + !widget.isMoneroWallet && + (subPickerItemsList[index].original == + CryptoCurrency.xmr)) { + } else { + Navigator.of(context).pop(); + } + }, ), ), ), - Padding( - padding: EdgeInsets.only(top: 24), - child: GestureDetector( - onTap: () => null, - child: ClipRRect( - borderRadius: BorderRadius.all(Radius.circular(14)), - child: Container( - height: 320, - width: 300, - color: Theme.of(context).accentTextTheme.title.backgroundColor, - child: Stack( - alignment: Alignment.center, - children: [ - GridView.count( - padding: EdgeInsets.all(0), - controller: controller, - crossAxisCount: crossAxisCount, - childAspectRatio: 1.25, - crossAxisSpacing: 1, - mainAxisSpacing: 1, - children: List.generate( - itemsCount - + getExtraEmptyTilesCount(crossAxisCount, itemsCount), - (index) { - - if (index >= itemsCount) { - return Container( - color: Theme.of(context).accentTextTheme.title.color, - ); - } - - final item = items[index]; - final isItemSelected = index == selectedAtIndex; - - 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: 'Lato', - fontWeight: FontWeight.w600, - decoration: TextDecoration.none, - color: textColor - ), - ), - ), - ), - ); - }) - ), - if (itemsCount > maxNumberItemsInAlert) - CakeScrollbar( - backgroundHeight: backgroundHeight, - thumbHeight: thumbHeight, - fromTop: fromTop - ) - ], - ) + ), + Expanded( + flex: 2, + child: Container( + width: 42.0, + alignment: Alignment.topCenter, + child: FittedBox( + child: FloatingActionButton( + elevation: 0, + backgroundColor: Colors.white, + onPressed: () { + Navigator.of(context).pop(); + }, + child: Icon( + Icons.close_outlined, + color: Palette.darkBlueCraiola, + size: 30.0, ), ), ), - ) - ], - ), - AlertCloseButton(image: closeButton) - ], - ) + ), + ), + ], + ), + ), + ), ); } - - int getExtraEmptyTilesCount(int crossAxisCount, int itemsCount) { - final int tilesInNewRowCount = itemsCount % crossAxisCount; - return tilesInNewRowCount == 0 ? 0 : crossAxisCount - tilesInNewRowCount; - } -} \ No newline at end of file +} diff --git a/lib/src/screens/exchange/widgets/currency_picker_item_widget.dart b/lib/src/screens/exchange/widgets/currency_picker_item_widget.dart new file mode 100644 index 000000000..d38c5bd45 --- /dev/null +++ b/lib/src/screens/exchange/widgets/currency_picker_item_widget.dart @@ -0,0 +1,93 @@ +import 'package:flutter/material.dart'; +import 'package:cake_wallet/palette.dart'; + +class PickerItemWidget extends StatelessWidget { + const PickerItemWidget( + {this.iconPath, this.title, this.isSelected, this.tag, this.onTap}); + + final String iconPath; + final String title; + final bool isSelected; + final String tag; + final void Function() onTap; + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Container( + color: isSelected + ? Theme.of(context).textTheme.bodyText1.color + : Theme.of(context).accentTextTheme.headline6.color, + child: Center( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Container( + child: Image.asset( + iconPath, + height: 32.0, + width: 32.0, + ), + ), + ), + Expanded( + child: Stack( + clipBehavior: Clip.none, + alignment: Alignment.centerLeft, + children: [ + Text( + title, + style: TextStyle( + color: isSelected + ? Palette.blueCraiola + : Theme.of(context).primaryTextTheme.title.color, + fontSize: 18.0, + fontFamily: 'Lato', + ), + ), + tag != null + ? Positioned( + top: -20.0, + right: 7.0, + child: Container( + width: 35.0, + height: 18.0, + child: Center( + child: Text( + tag, + style: TextStyle( + fontSize: 7.0, + fontFamily: 'Lato', + color: Theme.of(context) + .textTheme + .body1 + .color), + ), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6.0), + //border: Border.all(color: ), + color: Theme.of(context) + .textTheme + .body1 + .decorationColor, + ), + ), + ) + : Container(), + ], + ), + ), + ], + ), + ), + ), + ), + ); + ; + } +} diff --git a/lib/src/screens/exchange/widgets/currency_picker_widget.dart b/lib/src/screens/exchange/widgets/currency_picker_widget.dart new file mode 100644 index 000000000..46029a44a --- /dev/null +++ b/lib/src/screens/exchange/widgets/currency_picker_widget.dart @@ -0,0 +1,61 @@ +import 'package:flutter/material.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'picker_item.dart'; +import 'currency_picker_item_widget.dart'; + +class CurrencyPickerWidget extends StatelessWidget { + const CurrencyPickerWidget({ + @required this.crossAxisCount, + @required this.selectedAtIndex, + @required this.itemsCount, + @required this.pickerItemsList, + @required this.pickListItem, + }); + + final int crossAxisCount; + final int selectedAtIndex; + final int itemsCount; + final Function pickListItem; + final List> pickerItemsList; + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (BuildContext context, BoxConstraints constraints) { + return Container( + decoration: BoxDecoration( + color: Theme.of(context).accentTextTheme.headline6.backgroundColor, + borderRadius: BorderRadius.circular(14.0), + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(14.0), + child: Scrollbar( + showTrackOnHover: true, + isAlwaysShown: true, + thickness: 6.0, + radius: Radius.circular(3), + child: GridView.builder( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: crossAxisCount, + crossAxisSpacing: 1, + mainAxisExtent: constraints.maxHeight / 8, + mainAxisSpacing: 1), + itemCount: pickerItemsList.length, + itemBuilder: (BuildContext ctx, index) { + return PickerItemWidget( + onTap: () { + pickListItem(index); + }, + title: pickerItemsList[index].title, + iconPath: pickerItemsList[index].iconPath, + isSelected: index == selectedAtIndex, + tag: pickerItemsList[index].tag, + ); + }), + ), + ), + ); + }, + ); + } +} diff --git a/lib/src/screens/exchange/widgets/currency_utils.dart b/lib/src/screens/exchange/widgets/currency_utils.dart new file mode 100644 index 000000000..aaf9ea57c --- /dev/null +++ b/lib/src/screens/exchange/widgets/currency_utils.dart @@ -0,0 +1,99 @@ +import 'package:cw_core/crypto_currency.dart'; + +class CurrencyUtils { + static String tagForCurrency(CryptoCurrency cur) { + switch (cur) { + case CryptoCurrency.bnb: + return 'BEP2'; + case CryptoCurrency.dai: + return 'ETH'; + case CryptoCurrency.usdt: + return 'OMNI'; + case CryptoCurrency.usdterc20: + return 'ETH'; + default: + return null; + } + } + + static String iconPathForCurrency(CryptoCurrency cur) { + switch (cur) { + case CryptoCurrency.xmr: + return 'assets/images/monero_icon.png'; + case CryptoCurrency.ada: + return 'assets/images/ada_icon.png'; + case CryptoCurrency.bch: + return 'assets/images/bch_icon.png'; + case CryptoCurrency.bnb: + return 'assets/images/bnb_icon.png'; + case CryptoCurrency.btc: + return 'assets/images/btc.png'; + case CryptoCurrency.dai: + return 'assets/images/dai_icon.png'; + case CryptoCurrency.dash: + return 'assets/images/dash_icon.png'; + case CryptoCurrency.eos: + return 'assets/images/eos_icon.png'; + case CryptoCurrency.eth: + return 'assets/images/eth_icon.png'; + case CryptoCurrency.ltc: + return 'assets/images/litecoin-ltc_icon.png'; + case CryptoCurrency.trx: + return 'assets/images/trx_icon.png'; + case CryptoCurrency.usdt: + return 'assets/images/usdt_icon.png'; + case CryptoCurrency.usdterc20: + return 'assets/images/usdterc20_icon.png'; + case CryptoCurrency.xlm: + return 'assets/images/xlm_icon.png'; + case CryptoCurrency.xrp: + return 'assets/images/xrp_icon.png'; + default: + return null; + } + } + + static String titleForCurrency(CryptoCurrency cur) { + switch (cur) { + case CryptoCurrency.bnb: + return 'BNB'; + case CryptoCurrency.usdterc20: + return 'USDT'; + default: + return cur.title; + } + } + + static String descriptionForCurrency(CryptoCurrency cur) { + switch (cur) { + case CryptoCurrency.xmr: + return 'monero'; + case CryptoCurrency.ada: + return 'cardano'; + case CryptoCurrency.bch: + return 'bitcoin cash'; + case CryptoCurrency.bnb: + return 'binance bep2'; + case CryptoCurrency.btc: + return 'bitcoin'; + case CryptoCurrency.dai: + return 'dai eth'; + case CryptoCurrency.eth: + return 'ethereum'; + case CryptoCurrency.ltc: + return 'litecoin'; + case CryptoCurrency.trx: + return 'tron'; + case CryptoCurrency.usdt: + return 'usdt omni'; + case CryptoCurrency.usdterc20: + return 'tether ERC20 eth'; + case CryptoCurrency.xlm: + return 'lumens'; + case CryptoCurrency.xrp: + return 'ripple'; + default: + return cur.title; + } + } +} diff --git a/lib/src/screens/exchange/widgets/exchange_card.dart b/lib/src/screens/exchange/widgets/exchange_card.dart index f1a8597ba..b86d1cf63 100644 --- a/lib/src/screens/exchange/widgets/exchange_card.dart +++ b/lib/src/screens/exchange/widgets/exchange_card.dart @@ -306,126 +306,121 @@ class ExchangeCardState extends State { ? Padding( padding: EdgeInsets.only(top: 20), child: AddressTextField( - focusNode: widget.addressFocusNode, - controller: addressController, - placeholder: widget.hasRefundAddress - ? S.of(context).refund_address - : null, - options: [ - AddressTextFieldOption.paste, - AddressTextFieldOption.qrCode, - AddressTextFieldOption.addressBook, - ], - isBorderExist: false, - textStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Colors.white), - hintStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Theme.of(context) - .accentTextTheme - .display4 - .decorationColor), - buttonColor: widget.addressButtonsColor, - validator: widget.addressTextFieldValidator, - onPushPasteButton: widget.onPushPasteButton, - onPushAddressBookButton: widget.onPushAddressBookButton - ), + focusNode: widget.addressFocusNode, + controller: addressController, + placeholder: widget.hasRefundAddress + ? S.of(context).refund_address + : null, + options: [ + AddressTextFieldOption.paste, + AddressTextFieldOption.qrCode, + AddressTextFieldOption.addressBook, + ], + isBorderExist: false, + textStyle: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Colors.white), + hintStyle: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Theme.of(context) + .accentTextTheme + .display4 + .decorationColor), + buttonColor: widget.addressButtonsColor, + validator: widget.addressTextFieldValidator, + onPushPasteButton: widget.onPushPasteButton, + onPushAddressBookButton: widget.onPushAddressBookButton), ) : Padding( padding: EdgeInsets.only(top: 10), child: Builder( - builder: (context) => Stack( - children: [ - BaseTextFormField( - controller: addressController, - readOnly: true, - borderColor: Colors.transparent, - suffixIcon: SizedBox( - width: _isMoneroWallet ? 80 : 36 - ), - textStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Colors.white), - validator: widget.addressTextFieldValidator - ), - Positioned( - top: 2, - right: 0, - child: SizedBox( - width: _isMoneroWallet ? 80 : 36, - child: Row( - children: [ - if (_isMoneroWallet) Padding( - padding: EdgeInsets.only(left: 10), - child: Container( - width: 34, - height: 34, - padding: EdgeInsets.only(top: 0), - child: InkWell( - onTap: () async { - final contact = await Navigator - .of(context, rootNavigator: true) - .pushNamed( - Routes.pickerAddressBook); + builder: (context) => Stack(children: [ + BaseTextFormField( + controller: addressController, + readOnly: true, + borderColor: Colors.transparent, + suffixIcon: + SizedBox(width: _isMoneroWallet ? 80 : 36), + textStyle: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Colors.white), + validator: widget.addressTextFieldValidator), + Positioned( + top: 2, + right: 0, + child: SizedBox( + width: _isMoneroWallet ? 80 : 36, + child: Row(children: [ + if (_isMoneroWallet) + Padding( + padding: EdgeInsets.only(left: 10), + child: Container( + width: 34, + height: 34, + padding: EdgeInsets.only(top: 0), + child: InkWell( + onTap: () async { + final contact = + await Navigator.of(context, + rootNavigator: true) + .pushNamed(Routes + .pickerAddressBook); - if (contact is ContactBase && - contact.address != null) { - setState(() => - addressController.text = - contact.address); - widget.onPushAddressBookButton - ?.call(context); - } - }, - child: Container( - padding: EdgeInsets.all(8), - decoration: BoxDecoration( - color: widget - .addressButtonsColor, - borderRadius: BorderRadius - .all(Radius.circular(6))), - child: Image.asset( - 'assets/images/open_book.png', - color: Theme.of(context) - .primaryTextTheme - .display1 - .decorationColor, - )), - )), - ), - Padding( - padding: EdgeInsets.only(left: 2), - child: Container( - width: 34, - height: 34, - padding: EdgeInsets.only(top: 0), - child: InkWell( - onTap: () { - Clipboard.setData( - ClipboardData( - text: addressController.text)); - showBar( - context, S.of(context) - .copied_to_clipboard); - }, - child: Container( - padding: EdgeInsets - .fromLTRB(8, 8, 0, 8), - color: Colors.transparent, - child: copyImage), - )) - ) - ] - ) - ) - ) - ] - ) - ), + if (contact is ContactBase && + contact.address != null) { + setState(() => + addressController.text = + contact.address); + widget.onPushAddressBookButton + ?.call(context); + } + }, + child: Container( + padding: EdgeInsets.all(8), + decoration: BoxDecoration( + color: widget + .addressButtonsColor, + borderRadius: + BorderRadius.all( + Radius.circular( + 6))), + child: Image.asset( + 'assets/images/open_book.png', + color: Theme.of(context) + .primaryTextTheme + .display1 + .decorationColor, + )), + )), + ), + Padding( + padding: EdgeInsets.only(left: 2), + child: Container( + width: 34, + height: 34, + padding: EdgeInsets.only(top: 0), + child: InkWell( + onTap: () { + Clipboard.setData(ClipboardData( + text: addressController + .text)); + showBar( + context, + S + .of(context) + .copied_to_clipboard); + }, + child: Container( + padding: EdgeInsets.fromLTRB( + 8, 8, 0, 8), + color: Colors.transparent, + child: copyImage), + ))) + ]))) + ])), ), ]), ); @@ -437,6 +432,8 @@ class ExchangeCardState extends State { selectedAtIndex: widget.currencies.indexOf(_selectedCurrency), items: widget.currencies, title: S.of(context).change_currency, + isMoneroWallet: _isMoneroWallet, + isConvertFrom: widget.hasRefundAddress, onItemSelected: (CryptoCurrency item) => widget.onCurrencySelected != null ? widget.onCurrencySelected(item) diff --git a/lib/src/screens/exchange/widgets/picker_item.dart b/lib/src/screens/exchange/widgets/picker_item.dart new file mode 100644 index 000000000..4642c79d7 --- /dev/null +++ b/lib/src/screens/exchange/widgets/picker_item.dart @@ -0,0 +1,10 @@ +class PickerItem { + PickerItem(this.original, + {this.title, this.iconPath, this.tag, this.description}); + + final String title; + final String iconPath; + final String tag; + final T original; + final String description; +} diff --git a/lib/src/widgets/standard_list.dart b/lib/src/widgets/standard_list.dart index 9d8e117ac..c9c555e81 100644 --- a/lib/src/widgets/standard_list.dart +++ b/lib/src/widgets/standard_list.dart @@ -69,18 +69,22 @@ class SectionHeaderListRow extends StatelessWidget { } class StandardListSeparator extends StatelessWidget { - StandardListSeparator({this.padding}); + + StandardListSeparator({this.padding,this.height=1}); final EdgeInsets padding; + final double height; + + @override Widget build(BuildContext context) { return Container( - height: 1, + height: height, padding: padding, color: Theme.of(context).backgroundColor, child: Container( - height: 1, + height: height, color: Theme.of(context).primaryTextTheme.title.backgroundColor)); } } @@ -98,6 +102,7 @@ class StandardList extends StatelessWidget { StandardListSeparator(padding: EdgeInsets.only(left: 24)), itemCount: itemCount, itemBuilder: itemBuilder); + } } diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index c898d93b3..c65b1a9e7 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat spielt gut mit anderen", "third_intro_content" : "Yats leben auch außerhalb von Cake Wallet. Jede Wallet-Adresse auf der Welt kann durch ein Yat ersetzt werden!", "learn_more" : "Erfahren Sie mehr", - + "search": "Suche", "new_template" : "neue Vorlage", "electrum_address_disclaimer": "Wir generieren jedes Mal neue Adressen, wenn Sie eine verwenden, aber vorherige Adressen funktionieren weiterhin" } diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 5eccf598a..d6c99a594 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat plays nicely with others", "third_intro_content" : "Yats live outside of Cake Wallet, too. Any wallet address on earth can be replaced with a Yat!", "learn_more" : "Learn More", - + "search": "Search", "new_template" : "New Template", "electrum_address_disclaimer": "We generate new addresses each time you use one, but previous addresses continue to work" } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 2b2a0263a..2ccf30077 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat juega muy bien con otras", "third_intro_content" : "Los Yats también viven fuera de Cake Wallet. Cualquier dirección de billetera en la tierra se puede reemplazar con un Yat!", "learn_more" : "Aprende más", - + "search": "Búsqueda", "new_template" : "Nueva plantilla", "electrum_address_disclaimer": "Generamos nuevas direcciones cada vez que usa una, pero las direcciones anteriores siguen funcionando" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 0e8542804..d6ff77d76 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat दूसरों के साथ अच्छा खेलता है", "third_intro_content" : "Yats Cake Wallet के बाहर भी रहता है। धरती पर किसी भी वॉलेट पते को Yat से बदला जा सकता है!", "learn_more" : "और अधिक जानें", - + "search": "खोज", "new_template" : "नया टेम्पलेट", "electrum_address_disclaimer": "हर बार जब आप एक का उपयोग करते हैं तो हम नए पते उत्पन्न करते हैं, लेकिन पिछले पते काम करना जारी रखते हैं" } \ No newline at end of file diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 70ae48051..34f99adb8 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat se lijepo igra s drugima", "third_intro_content" : "Yats žive i izvan Cake Wallet -a. Bilo koja adresa novčanika na svijetu može se zamijeniti Yat!", "learn_more" : "Saznajte više", - + "search": "Traži", "new_template" : "novi predložak", "electrum_address_disclaimer": "Minden egyes alkalommal új címeket generálunk, de a korábbi címek továbbra is működnek" } \ No newline at end of file diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 9dea0b0f5..3cd380159 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat gioca bene con gli altri", "third_intro_content" : "Anche Yats vive fuori da Cake Wallet. Qualsiasi indirizzo di portafoglio sulla terra può essere sostituito con un Yat!", "learn_more" : "Impara di più", - + "search": "Ricerca", "new_template" : "Nuovo modello", "electrum_address_disclaimer": "Generiamo nuovi indirizzi ogni volta che ne utilizzi uno, ma gli indirizzi precedenti continuano a funzionare" } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 0a8a4696a..5a47c7c40 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yatは他の人とうまく遊ぶ", "third_intro_content" : "YatsはCakeWalletの外にも住んでいます。 地球上のどのウォレットアドレスもYatに置き換えることができます!", "learn_more" : "もっと詳しく知る", - + "search": "検索", "new_template" : "新しいテンプレート", "electrum_address_disclaimer": "使用するたびに新しいアドレスが生成されますが、以前のアドレスは引き続き機能します" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index bac95b1f7..6c0f08af4 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat는 다른 사람들과 잘 놉니다.", "third_intro_content" : "Yats는 Cake Wallet 밖에서도 살고 있습니다. 지구상의 모든 지갑 주소는 Yat!", "learn_more" : "더 알아보기", - + "search": "찾다", "new_template" : "새 템플릿", "electrum_address_disclaimer": "사용할 때마다 새 주소가 생성되지만 이전 주소는 계속 작동합니다." } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 0f554140f..21e1ed0b4 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat speelt leuk met anderen", "third_intro_content" : "Yats wonen ook buiten Cake Wallet. Elk portemonnee-adres op aarde kan worden vervangen door een Yat!", "learn_more" : "Kom meer te weten", - + "search": "Zoekopdracht", "new_template" : "Nieuwe sjabloon", "electrum_address_disclaimer": "We generate new addresses each time you use one, but previous addresses continue to work" } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index fa06d5642..c47c566ae 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -527,7 +527,7 @@ "third_intro_title" : "Yat ładnie bawi się z innymi", "third_intro_content" : "Yats mieszkają również poza Cake Wallet. Każdy adres portfela na ziemi można zastąpić Yat!", "learn_more" : "Ucz się więcej", - + "search": "Szukaj", "new_template" : "Nowy szablon", "electrum_address_disclaimer": "Za każdym razem, gdy korzystasz z jednego z nich, generujemy nowe adresy, ale poprzednie adresy nadal działają" } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 04494b2f6..0f692d0b7 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat joga bem com os outros", "third_intro_content" : "Yats também mora fora da Cake Wallet. Qualquer endereço de carteira na Terra pode ser substituído por um Yat!", "learn_more" : "Saber mais", - + "search": "Procurar", "new_template" : "Novo modelo", "electrum_address_disclaimer": "Geramos novos endereços cada vez que você usa um, mas os endereços anteriores continuam funcionando" } \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index eeaed0998..127ea5114 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -524,7 +524,7 @@ "third_intro_title" : "Yat хорошо взаимодействует с другими", "third_intro_content" : "Yat находятся за пределами Cake Wallet. Любой адрес кошелька на земле можно заменить на Yat!", "learn_more" : "Узнать больше", - + "search": "Поиск", "new_template" : "Новый шаблон", "electrum_address_disclaimer": "Мы генерируем новые адреса каждый раз, когда вы их используете, но предыдущие адреса продолжают работать." } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 2f0968098..94ea5b7d4 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -523,7 +523,7 @@ "third_intro_title" : "Yat добре взаємодіє з іншими", "third_intro_content" : "Yat знаходиться за межами Cake Wallet. Будь-яку адресу гаманця на землі можна замінити на Yat!", "learn_more" : "Дізнатися більше", - + "search": "Пошук", "new_template" : "Новий шаблон", "electrum_address_disclaimer": "Ми створюємо нові адреси щоразу, коли ви використовуєте їх, але попередні адреси продовжують працювати" } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 745d7a7b1..0fe27248f 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -522,7 +522,7 @@ "third_intro_title" : "Yat 和別人玩得很好", "third_intro_content" : "Yats 也住在 Cake Wallet 之外。 地球上任何一個錢包地址都可以用一個Yat來代替!", "learn_more" : "了解更多", - + "search": "搜索", "new_template" : "新模板", "electrum_address_disclaimer": "每次您使用一个地址时,我们都会生成新地址,但之前的地址仍然有效" } \ No newline at end of file