From 491c1ccccfa6971b122f42be943add625ef6ac42 Mon Sep 17 00:00:00 2001 From: Tanner Silva Date: Sun, 31 Jan 2021 20:18:51 -0600 Subject: [PATCH 1/7] added special list item for tracking trades in trade details screen --- lib/src/screens/trade_details/track_trade_list_item.dart | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 lib/src/screens/trade_details/track_trade_list_item.dart diff --git a/lib/src/screens/trade_details/track_trade_list_item.dart b/lib/src/screens/trade_details/track_trade_list_item.dart new file mode 100644 index 000000000..5845ef753 --- /dev/null +++ b/lib/src/screens/trade_details/track_trade_list_item.dart @@ -0,0 +1,8 @@ +import 'package:cake_wallet/src/widgets/standart_list_row.dart'; +import 'package:flutter/material.dart'; + +class TrackTradeListItem extends StandartListRow { + TrackTradeListItem({String title, String value, this.onTap}) + : super(title: title, value: value); + final Function() onTap; +} From e08f665e4a60e51392cc98a0f35d19d33018a2cd Mon Sep 17 00:00:00 2001 From: Tanner Silva Date: Mon, 1 Feb 2021 19:36:36 -0600 Subject: [PATCH 2/7] Added ability to track trade in trade details page --- .../trade_details/track_trade_list_item.dart | 5 ++--- .../screens/trade_details/trade_details_page.dart | 13 ++++++++++++- lib/view_model/trade_details_view_model.dart | 14 ++++++++++++-- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/lib/src/screens/trade_details/track_trade_list_item.dart b/lib/src/screens/trade_details/track_trade_list_item.dart index 5845ef753..002997bc0 100644 --- a/lib/src/screens/trade_details/track_trade_list_item.dart +++ b/lib/src/screens/trade_details/track_trade_list_item.dart @@ -1,7 +1,6 @@ -import 'package:cake_wallet/src/widgets/standart_list_row.dart'; -import 'package:flutter/material.dart'; +import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart'; -class TrackTradeListItem extends StandartListRow { +class TrackTradeListItem extends StandartListItem { TrackTradeListItem({String title, String value, this.onTap}) : super(title: title, value: value); final Function() onTap; diff --git a/lib/src/screens/trade_details/trade_details_page.dart b/lib/src/screens/trade_details/trade_details_page.dart index e4cad6547..ded8777fe 100644 --- a/lib/src/screens/trade_details/trade_details_page.dart +++ b/lib/src/screens/trade_details/trade_details_page.dart @@ -8,6 +8,7 @@ import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/widgets/standart_list_row.dart'; +import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart'; class TradeDetailsPage extends BasePage { TradeDetailsPage(this.tradeDetailsViewModel); @@ -26,6 +27,16 @@ class TradeDetailsPage extends BasePage { itemBuilder: (_, __, index) { final item = tradeDetailsViewModel.items[index]; + if (item is TrackTradeListItem) { + return GestureDetector( + onTap: item.onTap, + child: StandartListRow( + title: '${item.title}', + value: '${item.value}' + )); + } + + if (item is SectionStandardListItem) { return GestureDetector( onTap: () { Clipboard.setData(ClipboardData(text: '${item.value}')); @@ -37,7 +48,7 @@ class TradeDetailsPage extends BasePage { title: '${item.title}', value: '${item.value}' )); - }); + } }); } } \ No newline at end of file diff --git a/lib/view_model/trade_details_view_model.dart b/lib/view_model/trade_details_view_model.dart index 63cb5f323..b077208a3 100644 --- a/lib/view_model/trade_details_view_model.dart +++ b/lib/view_model/trade_details_view_model.dart @@ -10,7 +10,8 @@ import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart'; - +import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart'; +import 'package:url_launcher/url_launcher.dart'; part 'trade_details_view_model.g.dart'; class TradeDetailsViewModel = TradeDetailsViewModelBase @@ -90,6 +91,15 @@ abstract class TradeDetailsViewModelBase with Store { value: trade.provider.toString())); } + if (trade.provider.title == "ChangeNOW") { + items.add(TrackTradeListItem( + title: "Track", + value: "https://changenow.io/exchange/txs/${trade.id.toString()}", + onTap: () { + launch("https://www.blockchain.com/btc/tx/${tx.id}"); + })); + } + if (trade.createdAt != null) { items.add(StandartListItem( title: S.current.trade_details_created_at, @@ -102,4 +112,4 @@ abstract class TradeDetailsViewModelBase with Store { value: '${trade.from.toString()} → ${trade.to.toString()}')); } } -} \ No newline at end of file +} From d1c7c992799e9cd17b278fb83354ddae64200fcf Mon Sep 17 00:00:00 2001 From: Tanner Silva Date: Tue, 2 Feb 2021 20:23:02 -0600 Subject: [PATCH 3/7] fixed syntax errors --- .../trade_details/trade_details_page.dart | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/lib/src/screens/trade_details/trade_details_page.dart b/lib/src/screens/trade_details/trade_details_page.dart index ded8777fe..17d0f0a7d 100644 --- a/lib/src/screens/trade_details/trade_details_page.dart +++ b/lib/src/screens/trade_details/trade_details_page.dart @@ -27,28 +27,23 @@ class TradeDetailsPage extends BasePage { itemBuilder: (_, __, index) { final item = tradeDetailsViewModel.items[index]; - if (item is TrackTradeListItem) { - return GestureDetector( - onTap: item.onTap, - child: StandartListRow( - title: '${item.title}', - value: '${item.value}' - )); - } + if (item is TrackTradeListItem) { + return GestureDetector( + onTap: item.onTap, + child: StandartListRow( + title: '${item.title}', value: '${item.value}')); + } - if (item is SectionStandardListItem) { - return GestureDetector( - onTap: () { - Clipboard.setData(ClipboardData(text: '${item.value}')); - showBar(context, S - .of(context) - .copied_to_clipboard); - }, - child: StandartListRow( - title: '${item.title}', - value: '${item.value}' - )); - } + if (item is SectionStandardListItem) { + return GestureDetector( + onTap: () { + Clipboard.setData(ClipboardData(text: '${item.value}')); + showBar(context, S.of(context).copied_to_clipboard); + }, + child: StandartListRow( + title: '${item.title}', value: '${item.value}')); + } + }); }); } -} \ No newline at end of file +} From 12d3c03a1ba373c135892a1ad20ba581eef699f2 Mon Sep 17 00:00:00 2001 From: Tanner Silva Date: Wed, 3 Feb 2021 05:47:59 -0600 Subject: [PATCH 4/7] fixed error with URL launcher --- lib/view_model/trade_details_view_model.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/view_model/trade_details_view_model.dart b/lib/view_model/trade_details_view_model.dart index b077208a3..f65f8646e 100644 --- a/lib/view_model/trade_details_view_model.dart +++ b/lib/view_model/trade_details_view_model.dart @@ -96,7 +96,7 @@ abstract class TradeDetailsViewModelBase with Store { title: "Track", value: "https://changenow.io/exchange/txs/${trade.id.toString()}", onTap: () { - launch("https://www.blockchain.com/btc/tx/${tx.id}"); + launch("https://changenow.io/exchange/txs/${trade.id.toString()}"); })); } From 1f401421ead061487710e46cb1aa9ca9961881bb Mon Sep 17 00:00:00 2001 From: Tanner Silva Date: Sat, 6 Feb 2021 14:33:02 -0600 Subject: [PATCH 5/7] fixed error causing trade details page to have no contents --- lib/src/screens/trade_details/trade_details_page.dart | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/src/screens/trade_details/trade_details_page.dart b/lib/src/screens/trade_details/trade_details_page.dart index 17d0f0a7d..e691e7f84 100644 --- a/lib/src/screens/trade_details/trade_details_page.dart +++ b/lib/src/screens/trade_details/trade_details_page.dart @@ -32,9 +32,7 @@ class TradeDetailsPage extends BasePage { onTap: item.onTap, child: StandartListRow( title: '${item.title}', value: '${item.value}')); - } - - if (item is SectionStandardListItem) { + } else { return GestureDetector( onTap: () { Clipboard.setData(ClipboardData(text: '${item.value}')); From c05c2e7c295d4838dae5f3c99b632582835dc61d Mon Sep 17 00:00:00 2001 From: Tanner Silva Date: Mon, 8 Feb 2021 18:31:47 -0600 Subject: [PATCH 6/7] optimized code --- lib/view_model/trade_details_view_model.dart | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/view_model/trade_details_view_model.dart b/lib/view_model/trade_details_view_model.dart index f65f8646e..ba03996ad 100644 --- a/lib/view_model/trade_details_view_model.dart +++ b/lib/view_model/trade_details_view_model.dart @@ -91,12 +91,14 @@ abstract class TradeDetailsViewModelBase with Store { value: trade.provider.toString())); } - if (trade.provider.title == "ChangeNOW") { + if (trade.provider is ChangeNowExchangeProvider) { + final buildURL = + 'https://changenow.io/exchange/txs/${trade.id.toString()}'; items.add(TrackTradeListItem( - title: "Track", - value: "https://changenow.io/exchange/txs/${trade.id.toString()}", + title: 'Track', + value: buildURL, onTap: () { - launch("https://changenow.io/exchange/txs/${trade.id.toString()}"); + launch(buildURL); })); } From f4bc4ce7347082446c1bad261aa5c950de1bb4c7 Mon Sep 17 00:00:00 2001 From: Tanner Silva Date: Tue, 9 Feb 2021 09:50:41 -0600 Subject: [PATCH 7/7] changed if logic to implement ExchangeProviderDescription --- lib/view_model/trade_details_view_model.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/view_model/trade_details_view_model.dart b/lib/view_model/trade_details_view_model.dart index ba03996ad..9c88cb981 100644 --- a/lib/view_model/trade_details_view_model.dart +++ b/lib/view_model/trade_details_view_model.dart @@ -91,7 +91,7 @@ abstract class TradeDetailsViewModelBase with Store { value: trade.provider.toString())); } - if (trade.provider is ChangeNowExchangeProvider) { + if (trade.provider == ExchangeProviderDescription.changeNow) { final buildURL = 'https://changenow.io/exchange/txs/${trade.id.toString()}'; items.add(TrackTradeListItem(