Merge pull request #104 from cake-tech/CAKE-288-hidden-balance-fixes

Cake 288 hidden balance fixes
This commit is contained in:
M 2021-04-06 18:55:33 +03:00
commit c3fb0cfcd4
7 changed files with 120 additions and 107 deletions

View file

@ -10,100 +10,108 @@ class BalancePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.transparent,
padding: EdgeInsets.all(24),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Observer(builder: (_) {
return Text(
dashboardViewModel.balanceViewModel.currency.toString(),
style: TextStyle(
fontSize: 40,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.accentTextTheme
.display2
.backgroundColor,
height: 1),
);
}),
SizedBox(height: 10),
Observer(builder: (_) {
return Row(
children: [
Expanded(
child: Text(
'${dashboardViewModel.balanceViewModel.availableBalanceLabel} (${dashboardViewModel.balanceViewModel.availableFiatBalance.toString()})',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme
.display2
.backgroundColor,
height: 1),
)
)
],
);
}),
SizedBox(height: 10),
Observer(builder: (_) {
return AutoSizeText(
dashboardViewModel.balanceViewModel.availableBalance,
return GestureDetector(
onLongPress: () =>
dashboardViewModel.balanceViewModel.isReversing =
!dashboardViewModel.balanceViewModel.isReversing,
onLongPressUp: () =>
dashboardViewModel.balanceViewModel.isReversing =
!dashboardViewModel.balanceViewModel.isReversing,
child: Container(
color: Colors.transparent,
padding: EdgeInsets.all(24),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Observer(builder: (_) {
return Text(
dashboardViewModel.balanceViewModel.currency.toString(),
style: TextStyle(
fontSize: 54,
fontSize: 40,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.accentTextTheme
.display3
.display2
.backgroundColor,
height: 1),
maxLines: 1,
textAlign: TextAlign.center);
}),
SizedBox(height: 10),
Observer(builder: (_) {
return Row(
children: [
Expanded(
child: Text(
'${dashboardViewModel.balanceViewModel.additionalBalanceLabel} (${dashboardViewModel.balanceViewModel.additionalFiatBalance.toString()})',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme
.display2
.backgroundColor,
height: 1),
);
}),
SizedBox(height: 10),
Observer(builder: (_) {
return Row(
children: [
Expanded(
child: Text(
'${dashboardViewModel.balanceViewModel.availableBalanceLabel} (${dashboardViewModel.balanceViewModel.availableFiatBalance.toString()})',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme
.display2
.backgroundColor,
height: 1),
)
)
)
],
);
}),
SizedBox(height: 10),
Observer(builder: (_) {
return AutoSizeText(
dashboardViewModel.balanceViewModel.additionalBalance
.toString(),
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.accentTextTheme
.display3
.backgroundColor,
height: 1),
maxLines: 1,
textAlign: TextAlign.center);
}),
],
],
);
}),
SizedBox(height: 10),
Observer(builder: (_) {
return AutoSizeText(
dashboardViewModel.balanceViewModel.availableBalance,
style: TextStyle(
fontSize: 54,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.accentTextTheme
.display3
.backgroundColor,
height: 1),
maxLines: 1,
textAlign: TextAlign.center);
}),
SizedBox(height: 10),
Observer(builder: (_) {
return Row(
children: [
Expanded(
child: Text(
'${dashboardViewModel.balanceViewModel.additionalBalanceLabel} (${dashboardViewModel.balanceViewModel.additionalFiatBalance.toString()})',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme
.display2
.backgroundColor,
height: 1),
)
)
],
);
}),
SizedBox(height: 10),
Observer(builder: (_) {
return AutoSizeText(
dashboardViewModel.balanceViewModel.additionalBalance
.toString(),
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.accentTextTheme
.display3
.backgroundColor,
height: 1),
maxLines: 1,
textAlign: TextAlign.center);
}),
],
),
),
);
}

View file

@ -64,7 +64,7 @@ class TransactionsPage extends StatelessWidget {
if (item is TradeListItem) {
final trade = item.trade;
return TradeRow(
return Observer(builder: (_) => TradeRow(
onTap: () => Navigator.of(context).pushNamed(
Routes.tradeDetails,
arguments: trade),
@ -74,13 +74,13 @@ class TransactionsPage extends StatelessWidget {
createdAtFormattedDate:
DateFormat('HH:mm').format(trade.createdAt),
formattedAmount: item.tradeFormattedAmount
);
));
}
if (item is OrderListItem) {
final order = item.order;
return OrderRow(
return Observer(builder: (_) => OrderRow(
onTap: () => Navigator.of(context).pushNamed(
Routes.orderDetails,
arguments: order),
@ -89,7 +89,7 @@ class TransactionsPage extends StatelessWidget {
createdAtFormattedDate:
DateFormat('HH:mm').format(order.createdAt),
formattedAmount: item.orderFormattedAmount,
);
));
}
return Container(

View file

@ -41,5 +41,5 @@ abstract class OrdersStoreBase with Store {
Future updateOrderList() async => orders =
ordersSource.values.map((order) => OrderListItem(
order: order,
displayMode: settingsStore.balanceDisplayMode)).toList();
settingsStore: settingsStore)).toList();
}

View file

@ -1,7 +1,6 @@
import 'dart:async';
import 'package:cake_wallet/exchange/trade.dart';
import 'package:cake_wallet/view_model/dashboard/trade_list_item.dart';
import 'package:flutter/cupertino.dart';
import 'package:hive/hive.dart';
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/store/settings_store.dart';
@ -37,5 +36,5 @@ abstract class TradesStoreBase with Store {
Future updateTradeList() async => trades =
tradesSource.values.map((trade) => TradeListItem(
trade: trade,
displayMode: settingsStore.balanceDisplayMode)).toList();
settingsStore: settingsStore)).toList();
}

View file

@ -69,9 +69,9 @@ abstract class BalanceViewModelBase with Store {
@computed
BalanceDisplayMode get displayMode => isReversing
? (savedDisplayMode == BalanceDisplayMode.availableBalance
? BalanceDisplayMode.fullBalance
: BalanceDisplayMode.availableBalance)
? savedDisplayMode == BalanceDisplayMode.hiddenBalance
? BalanceDisplayMode.displayableBalance
: savedDisplayMode
: savedDisplayMode;
@computed
@ -96,7 +96,7 @@ abstract class BalanceViewModelBase with Store {
String get availableBalance {
final walletBalance = _walletBalance;
if (settingsStore.balanceDisplayMode == BalanceDisplayMode.hiddenBalance) {
if (displayMode == BalanceDisplayMode.hiddenBalance) {
return '---';
}
@ -107,7 +107,7 @@ abstract class BalanceViewModelBase with Store {
String get additionalBalance {
final walletBalance = _walletBalance;
if (settingsStore.balanceDisplayMode == BalanceDisplayMode.hiddenBalance) {
if (displayMode == BalanceDisplayMode.hiddenBalance) {
return '---';
}
@ -119,7 +119,7 @@ abstract class BalanceViewModelBase with Store {
final walletBalance = _walletBalance;
final fiatCurrency = settingsStore.fiatCurrency;
if (settingsStore.balanceDisplayMode == BalanceDisplayMode.hiddenBalance) {
if (displayMode == BalanceDisplayMode.hiddenBalance) {
return '---';
}
@ -135,7 +135,7 @@ abstract class BalanceViewModelBase with Store {
final walletBalance = _walletBalance;
final fiatCurrency = settingsStore.fiatCurrency;
if (settingsStore.balanceDisplayMode == BalanceDisplayMode.hiddenBalance) {
if (displayMode == BalanceDisplayMode.hiddenBalance) {
return '---';
}

View file

@ -1,18 +1,21 @@
import 'package:cake_wallet/entities/order.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cake_wallet/view_model/dashboard/action_list_item.dart';
import 'package:cake_wallet/entities/balance_display_mode.dart';
class OrderListItem extends ActionListItem {
OrderListItem({this.order, this.displayMode});
OrderListItem({this.order, this.settingsStore});
final Order order;
final BalanceDisplayMode displayMode;
final SettingsStore settingsStore;
BalanceDisplayMode get displayMode => settingsStore.balanceDisplayMode;
String get orderFormattedAmount {
return order.amount != null
? displayMode == BalanceDisplayMode.hiddenBalance
? '---'
: order.amountFormatted()
? '---'
: order.amountFormatted()
: order.amount;
}

View file

@ -1,12 +1,15 @@
import 'package:cake_wallet/exchange/trade.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cake_wallet/view_model/dashboard/action_list_item.dart';
import 'package:cake_wallet/entities/balance_display_mode.dart';
class TradeListItem extends ActionListItem {
TradeListItem({this.trade, this.displayMode});
TradeListItem({this.trade, this.settingsStore});
final Trade trade;
final BalanceDisplayMode displayMode;
final SettingsStore settingsStore;
BalanceDisplayMode get displayMode => settingsStore.balanceDisplayMode;
String get tradeFormattedAmount {
return trade.amount != null