Added ability to track trade in trade details page

Tanner Silva committed Feb 1, 2021 at 19:36 UTC e08f665e4a60e51392cc98a0f35d19d33018a2cd
3 files changed +26 -6
lib/src/screens/trade_details/track_trade_list_item.dart
+2 -3
@@ -1,7 +1,6 @@
1 -import 'package:cake_wallet/src/widgets/standart_list_row.dart';
2 -import 'package:flutter/material.dart';
1 +import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
2
4 -class TrackTradeListItem extends StandartListRow {
3 +class TrackTradeListItem extends StandartListItem {
4 TrackTradeListItem({String title, String value, this.onTap})
5 : super(title: title, value: value);
6 final Function() onTap;
lib/src/screens/trade_details/trade_details_page.dart
+12 -1
@@ -8,6 +8,7 @@ import 'package:flutter_mobx/flutter_mobx.dart';
8 import 'package:cake_wallet/generated/i18n.dart';
9 import 'package:cake_wallet/src/screens/base_page.dart';
10 import 'package:cake_wallet/src/widgets/standart_list_row.dart';
11 +import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart';
12
13 class TradeDetailsPage extends BasePage {
14 TradeDetailsPage(this.tradeDetailsViewModel);
@@ -26,6 +27,16 @@ class TradeDetailsPage extends BasePage {
27 itemBuilder: (_, __, index) {
28 final item = tradeDetailsViewModel.items[index];
29
30 + if (item is TrackTradeListItem) {
31 + return GestureDetector(
32 + onTap: item.onTap,
33 + child: StandartListRow(
34 + title: '${item.title}',
35 + value: '${item.value}'
36 + ));
37 + }
38 +
39 + if (item is SectionStandardListItem) {
40 return GestureDetector(
41 onTap: () {
42 Clipboard.setData(ClipboardData(text: '${item.value}'));
@@ -37,7 +48,7 @@ class TradeDetailsPage extends BasePage {
48 title: '${item.title}',
49 value: '${item.value}'
50 ));
40 - });
51 + }
52 });
53 }
54 }
\ No newline at end of file
lib/view_model/trade_details_view_model.dart
+12 -2
@@ -10,7 +10,8 @@ import 'package:hive/hive.dart';
10 import 'package:mobx/mobx.dart';
11 import 'package:cake_wallet/generated/i18n.dart';
12 import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
13 -
13 +import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart';
14 +import 'package:url_launcher/url_launcher.dart';
15 part 'trade_details_view_model.g.dart';
16
17 class TradeDetailsViewModel = TradeDetailsViewModelBase
@@ -90,6 +91,15 @@ abstract class TradeDetailsViewModelBase with Store {
91 value: trade.provider.toString()));
92 }
93
94 + if (trade.provider.title == "ChangeNOW") {
95 + items.add(TrackTradeListItem(
96 + title: "Track",
97 + value: "https://changenow.io/exchange/txs/${trade.id.toString()}",
98 + onTap: () {
99 + launch("https://www.blockchain.com/btc/tx/${tx.id}");
100 + }));
101 + }
102 +
103 if (trade.createdAt != null) {
104 items.add(StandartListItem(
105 title: S.current.trade_details_created_at,
@@ -102,4 +112,4 @@ abstract class TradeDetailsViewModelBase with Store {
112 value: '${trade.from.toString()} → ${trade.to.toString()}'));
113 }
114 }
105 -}
\ No newline at end of file
115 +}