CAKE-208 | changed MoneroBalance to Balance property and handled BitcoinBalance case in the balance_view_model.dart
OleksandrSobol committed
Dec 24, 2020 at 22:57 UTC
d93c706997031ac9b18a3be4ccc0c00bb77e5664
1 file changed
+39
-21
lib/view_model/dashboard/balance_view_model.dart
+39
-21
@@ -1,5 +1,7 @@
1
+import 'package:cake_wallet/bitcoin/bitcoin_balance.dart';
2
import 'package:cake_wallet/bitcoin/bitcoin_wallet.dart';
3
import 'package:cake_wallet/core/wallet_base.dart';
4
+import 'package:cake_wallet/entities/balance.dart';
5
import 'package:cake_wallet/entities/crypto_currency.dart';
6
import 'package:cake_wallet/monero/monero_balance.dart';
7
import 'package:cake_wallet/monero/monero_wallet.dart';
@@ -31,10 +33,17 @@ abstract class BalanceViewModelBase with Store {
33
final _wallet = wallet;
34
35
if (_wallet is MoneroWallet) {
34
- moneroBalance = _wallet.balance;
36
+ balance = _wallet.balance;
37
38
_onMoneroBalanceChangeReaction = reaction((_) => _wallet.balance,
37
- (MoneroBalance balance) => moneroBalance = balance);
39
+ (MoneroBalance moneroBalance) => balance = moneroBalance);
40
+ }
41
+
42
+ if (_wallet is BitcoinWallet) {
43
+ balance = _wallet.balance;
44
+
45
+ _onBitcoinBalanceChangeReaction = reaction((_) => _wallet.balance,
46
+ (BitcoinBalance bitcoinBalance) => balance = bitcoinBalance);
47
}
48
}
49
@@ -49,7 +58,7 @@ abstract class BalanceViewModelBase with Store {
58
bool isReversing;
59
60
@observable
52
- MoneroBalance moneroBalance;
61
+ Balance balance;
62
63
@observable
64
WalletBase wallet;
@@ -70,24 +79,24 @@ abstract class BalanceViewModelBase with Store {
79
@computed
80
String get cryptoBalance {
81
final walletBalance = _walletBalance;
73
- var balance = '---';
82
+ var _balance = '---';
83
84
if (displayMode == BalanceDisplayMode.availableBalance) {
76
- balance = walletBalance.unlockedBalance ?? '0.0';
85
+ _balance = walletBalance.unlockedBalance ?? '0.0';
86
}
87
88
if (displayMode == BalanceDisplayMode.fullBalance) {
80
- balance = walletBalance.totalBalance ?? '0.0';
89
+ _balance = walletBalance.totalBalance ?? '0.0';
90
}
91
83
- return balance;
92
+ return _balance;
93
}
94
95
@computed
96
String get fiatBalance {
97
final walletBalance = _walletBalance;
98
final fiatCurrency = settingsStore.fiatCurrency;
90
- var balance = '---';
99
+ var _balance = '---';
100
101
final totalBalance =
102
_getFiatBalance(price: price, cryptoAmount: walletBalance.totalBalance);
@@ -96,30 +105,30 @@ abstract class BalanceViewModelBase with Store {
105
price: price, cryptoAmount: walletBalance.unlockedBalance);
106
107
if (displayMode == BalanceDisplayMode.availableBalance) {
99
- balance = fiatCurrency.toString() + ' ' + unlockedBalance ?? '0.00';
108
+ _balance = fiatCurrency.toString() + ' ' + unlockedBalance ?? '0.00';
109
}
110
111
if (displayMode == BalanceDisplayMode.fullBalance) {
103
- balance = fiatCurrency.toString() + ' ' + totalBalance ?? '0.00';
112
+ _balance = fiatCurrency.toString() + ' ' + totalBalance ?? '0.00';
113
}
114
106
- return balance;
115
+ return _balance;
116
}
117
118
@computed
119
WalletBalance get _walletBalance {
111
- final _wallet = wallet;
120
+ final _balance = balance;
121
113
- if (_wallet is MoneroWallet) {
122
+ if (_balance is MoneroBalance) {
123
return WalletBalance(
115
- unlockedBalance: moneroBalance.formattedUnlockedBalance,
116
- totalBalance: moneroBalance.formattedFullBalance);
124
+ unlockedBalance: _balance.formattedUnlockedBalance,
125
+ totalBalance: _balance.formattedFullBalance);
126
}
127
119
- if (_wallet is BitcoinWallet) {
128
+ if (_balance is BitcoinBalance) {
129
return WalletBalance(
121
- unlockedBalance: _wallet.balance.availableBalanceFormatted,
122
- totalBalance: _wallet.balance.totalFormatted);
130
+ unlockedBalance: _balance.availableBalanceFormatted,
131
+ totalBalance: _balance.totalFormatted);
132
}
133
134
return null;
@@ -133,17 +142,26 @@ abstract class BalanceViewModelBase with Store {
142
this.wallet = wallet;
143
144
if (wallet is MoneroWallet) {
136
- moneroBalance = wallet.balance;
145
+ balance = wallet.balance;
146
147
_onMoneroBalanceChangeReaction?.reaction?.dispose();
148
149
_onMoneroBalanceChangeReaction = reaction((_) => wallet.balance,
141
- (MoneroBalance balance) => moneroBalance = balance);
150
+ (MoneroBalance moneroBalance) => balance = moneroBalance);
151
+ }
152
+
153
+ if (wallet is BitcoinWallet) {
154
+ balance = wallet.balance;
155
+
156
+ _onBitcoinBalanceChangeReaction?.reaction?.dispose();
157
+
158
+ _onBitcoinBalanceChangeReaction = reaction((_) => wallet.balance,
159
+ (BitcoinBalance bitcoinBalance) => balance = bitcoinBalance);
160
}
161
}
162
163
ReactionDisposer _onMoneroBalanceChangeReaction;
146
-
164
+ ReactionDisposer _onBitcoinBalanceChangeReaction;
165
ReactionDisposer _reaction;
166
167
String _getFiatBalance({double price, String cryptoAmount}) {