mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-23 06:38:35 +02:00
Merge branch 'new-world' of github.com:cake-tech/cake_wallet_private into rework-restore-wallet
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import 'package:cake_wallet/src/screens/dashboard/wallet_menu_item.dart';
|
||||
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/src/screens/auth/auth_page.dart';
|
||||
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
|
||||
@@ -11,26 +11,35 @@ import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
|
||||
class WalletMenu {
|
||||
WalletMenu(this.context, this.reconnect);
|
||||
|
||||
final List<String> items = [
|
||||
S.current.reconnect,
|
||||
S.current.rescan,
|
||||
S.current.wallets,
|
||||
S.current.nodes,
|
||||
S.current.show_seed,
|
||||
S.current.show_keys,
|
||||
S.current.address_book_menu,
|
||||
S.current.settings_title
|
||||
];
|
||||
|
||||
final List<Image> images = [
|
||||
Image.asset('assets/images/reconnect_menu.png', height: 16, width: 16),
|
||||
Image.asset('assets/images/filter_icon.png', height: 16, width: 16),
|
||||
Image.asset('assets/images/wallet_menu.png', height: 16, width: 16),
|
||||
Image.asset('assets/images/nodes_menu.png', height: 16, width: 16),
|
||||
Image.asset('assets/images/eye_menu.png', height: 16, width: 16),
|
||||
Image.asset('assets/images/key_menu.png', height: 16, width: 16),
|
||||
Image.asset('assets/images/open_book_menu.png', height: 16, width: 16),
|
||||
Image.asset('assets/images/settings_menu.png', height: 16, width: 16),
|
||||
final List<WalletMenuItem> items = [
|
||||
WalletMenuItem(
|
||||
title: S.current.reconnect,
|
||||
image: Image.asset('assets/images/reconnect_menu.png',
|
||||
height: 16, width: 16)),
|
||||
WalletMenuItem(
|
||||
title: S.current.rescan,
|
||||
image: Image.asset('assets/images/filter_icon.png',
|
||||
height: 16, width: 16)),
|
||||
WalletMenuItem(
|
||||
title: S.current.wallets,
|
||||
image: Image.asset('assets/images/wallet_menu.png',
|
||||
height: 16, width: 16)),
|
||||
WalletMenuItem(
|
||||
title: S.current.nodes,
|
||||
image: Image.asset('assets/images/nodes_menu.png',
|
||||
height: 16, width: 16)),
|
||||
WalletMenuItem(
|
||||
title: S.current.show_keys,
|
||||
image: Image.asset('assets/images/key_menu.png',
|
||||
height: 16, width: 16)),
|
||||
WalletMenuItem(
|
||||
title: S.current.address_book_menu,
|
||||
image: Image.asset('assets/images/open_book_menu.png',
|
||||
height: 16, width: 16)),
|
||||
WalletMenuItem(
|
||||
title: S.current.settings_title,
|
||||
image: Image.asset('assets/images/settings_menu.png',
|
||||
height: 16, width: 16)),
|
||||
];
|
||||
|
||||
final BuildContext context;
|
||||
@@ -51,14 +60,6 @@ class WalletMenu {
|
||||
Navigator.of(context).pushNamed(Routes.nodeList);
|
||||
break;
|
||||
case 4:
|
||||
Navigator.of(context).pushNamed(Routes.auth,
|
||||
arguments: (bool isAuthenticatedSuccessfully, AuthPageState auth) =>
|
||||
isAuthenticatedSuccessfully
|
||||
? Navigator.of(auth.context).popAndPushNamed(Routes.seed, arguments: false)
|
||||
: null);
|
||||
|
||||
break;
|
||||
case 5:
|
||||
Navigator.of(context).pushNamed(Routes.auth,
|
||||
arguments: (bool isAuthenticatedSuccessfully, AuthPageState auth) =>
|
||||
isAuthenticatedSuccessfully
|
||||
@@ -66,10 +67,10 @@ class WalletMenu {
|
||||
.popAndPushNamed(Routes.showKeys)
|
||||
: null);
|
||||
break;
|
||||
case 6:
|
||||
case 5:
|
||||
Navigator.of(context).pushNamed(Routes.addressBook);
|
||||
break;
|
||||
case 7:
|
||||
case 6:
|
||||
Navigator.of(context).pushNamed(Routes.settings);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class WalletMenuItem {
|
||||
WalletMenuItem({
|
||||
@required this.title,
|
||||
@required this.image});
|
||||
|
||||
final String title;
|
||||
final Image image;
|
||||
}
|
||||
@@ -168,7 +168,8 @@ class MenuWidgetState extends State<MenuWidget> {
|
||||
index--;
|
||||
|
||||
final item = walletMenu.items[index];
|
||||
final image = walletMenu.images[index] ?? Offstage();
|
||||
final title = item.title;
|
||||
final image = item.image ?? Offstage();
|
||||
final isLastTile = index == itemCount - 1;
|
||||
|
||||
return GestureDetector(
|
||||
@@ -199,7 +200,7 @@ class MenuWidgetState extends State<MenuWidget> {
|
||||
SizedBox(width: 16),
|
||||
Expanded(
|
||||
child: Text(
|
||||
item,
|
||||
title,
|
||||
style: TextStyle(
|
||||
color: Theme.of(context)
|
||||
.textTheme
|
||||
|
||||
@@ -373,7 +373,9 @@ class ExchangePage extends BasePage {
|
||||
child: Observer(builder: (_) {
|
||||
final description =
|
||||
exchangeViewModel.provider is XMRTOExchangeProvider
|
||||
? S.of(context).amount_is_guaranteed
|
||||
? exchangeViewModel.isReceiveAmountEntered
|
||||
? S.of(context).amount_is_guaranteed
|
||||
: S.of(context).amount_is_estimate
|
||||
: S.of(context).amount_is_estimate;
|
||||
return Center(
|
||||
child: Text(
|
||||
@@ -433,6 +435,7 @@ class ExchangePage extends BasePage {
|
||||
exchangeViewModel.changeDepositAmount(amount: template.amount);
|
||||
exchangeViewModel.depositAddress = template.depositAddress;
|
||||
exchangeViewModel.receiveAddress = template.receiveAddress;
|
||||
exchangeViewModel.isReceiveAmountEntered = false;
|
||||
}
|
||||
|
||||
void _setReactions(
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'dart:ui';
|
||||
import 'package:cake_wallet/exchange/exchange_provider.dart';
|
||||
import 'package:cake_wallet/exchange/exchange_template.dart';
|
||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
|
||||
@@ -169,7 +170,9 @@ class ExchangeTemplatePage extends BasePage {
|
||||
exchangeViewModel.wallet.currency
|
||||
? exchangeViewModel.wallet.address
|
||||
: exchangeViewModel.receiveAddress,
|
||||
initialIsAmountEditable: false,
|
||||
initialIsAmountEditable:
|
||||
exchangeViewModel.provider is
|
||||
XMRTOExchangeProvider ? true : false,
|
||||
initialIsAddressEditable:
|
||||
exchangeViewModel.isReceiveAddressEnabled,
|
||||
isAmountEstimated: true,
|
||||
@@ -202,7 +205,9 @@ class ExchangeTemplatePage extends BasePage {
|
||||
child: Observer(builder: (_) {
|
||||
final description =
|
||||
exchangeViewModel.provider is XMRTOExchangeProvider
|
||||
? S.of(context).amount_is_guaranteed
|
||||
? exchangeViewModel.isReceiveAmountEntered
|
||||
? S.of(context).amount_is_guaranteed
|
||||
: S.of(context).amount_is_estimate
|
||||
: S.of(context).amount_is_estimate;
|
||||
return Center(
|
||||
child: Text(
|
||||
@@ -328,6 +333,12 @@ class ExchangeTemplatePage extends BasePage {
|
||||
receiveKey.currentState.isAddressEditable(isEditable: isEnabled);
|
||||
});
|
||||
|
||||
reaction((_) => exchangeViewModel.provider, (ExchangeProvider provider) {
|
||||
provider is XMRTOExchangeProvider
|
||||
? receiveKey.currentState.isAmountEditable(isEditable: true)
|
||||
: receiveKey.currentState.isAmountEditable(isEditable: false);
|
||||
});
|
||||
|
||||
/*reaction((_) => exchangeViewModel.limitsState, (LimitsState state) {
|
||||
String min;
|
||||
String max;
|
||||
@@ -358,6 +369,7 @@ class ExchangeTemplatePage extends BasePage {
|
||||
if (depositAmountController.text != exchangeViewModel.depositAmount) {
|
||||
exchangeViewModel.changeDepositAmount(
|
||||
amount: depositAmountController.text);
|
||||
exchangeViewModel.isReceiveAmountEntered = false;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -368,6 +380,7 @@ class ExchangeTemplatePage extends BasePage {
|
||||
if (receiveAmountController.text != exchangeViewModel.receiveAmount) {
|
||||
exchangeViewModel.changeReceiveAmount(
|
||||
amount: receiveAmountController.text);
|
||||
exchangeViewModel.isReceiveAmountEntered = true;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -44,8 +44,8 @@ class QRWidget extends StatelessWidget {
|
||||
child: QrImage(
|
||||
data: addressListViewModel.uri.toString(),
|
||||
backgroundColor: Colors.transparent,
|
||||
foregroundColor:
|
||||
Theme.of(context).textTheme.headline.color,
|
||||
foregroundColor: Colors.white,
|
||||
//Theme.of(context).textTheme.headline.color,
|
||||
))))),
|
||||
Spacer(flex: 3)
|
||||
]),
|
||||
|
||||
@@ -163,14 +163,14 @@ class SendPage extends BasePage {
|
||||
.decorationColor),
|
||||
validator: sendViewModel.addressValidator,
|
||||
),
|
||||
Padding(
|
||||
Observer(builder: (_) => Padding(
|
||||
padding: const EdgeInsets.only(top: 20),
|
||||
child: BaseTextFormField(
|
||||
focusNode: _cryptoAmountFocus,
|
||||
controller: _cryptoAmountController,
|
||||
keyboardType:
|
||||
TextInputType.numberWithOptions(
|
||||
signed: false, decimal: true),
|
||||
TextInputType.numberWithOptions(
|
||||
signed: false, decimal: true),
|
||||
prefixIcon: Padding(
|
||||
padding: EdgeInsets.only(top: 9),
|
||||
child: Text(
|
||||
@@ -226,7 +226,9 @@ class SendPage extends BasePage {
|
||||
fontWeight: FontWeight.w500,
|
||||
fontSize: 14),
|
||||
validator:
|
||||
sendViewModel.amountValidator)),
|
||||
sendViewModel.sendAll
|
||||
? sendViewModel.allAmountValidator
|
||||
: sendViewModel.amountValidator))),
|
||||
Observer(
|
||||
builder: (_) => Padding(
|
||||
padding: EdgeInsets.only(top: 10),
|
||||
@@ -513,6 +515,7 @@ class SendPage extends BasePage {
|
||||
final amount = _fiatAmountController.text;
|
||||
|
||||
if (amount != sendViewModel.fiatAmount) {
|
||||
sendViewModel.sendAll = false;
|
||||
sendViewModel.setFiatAmount(amount);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user