mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-23 12:09:43 +00:00
Fixes
This commit is contained in:
parent
64936f3a03
commit
2c6ce75cbd
8 changed files with 73 additions and 82 deletions
|
@ -124,6 +124,7 @@ import 'package:cake_wallet/store/templates/exchange_template_store.dart';
|
||||||
import 'package:cake_wallet/entities/template.dart';
|
import 'package:cake_wallet/entities/template.dart';
|
||||||
import 'package:cake_wallet/exchange/exchange_template.dart';
|
import 'package:cake_wallet/exchange/exchange_template.dart';
|
||||||
import 'package:cake_wallet/.secrets.g.dart' as secrets;
|
import 'package:cake_wallet/.secrets.g.dart' as secrets;
|
||||||
|
import 'package:cake_wallet/src/screens/dashboard/widgets/address_page.dart';
|
||||||
|
|
||||||
final getIt = GetIt.instance;
|
final getIt = GetIt.instance;
|
||||||
|
|
||||||
|
@ -314,6 +315,9 @@ Future setup(
|
||||||
getIt.registerFactory<DashboardPage>(() => DashboardPage( balancePage: getIt.get<BalancePage>(), walletViewModel: getIt.get<DashboardViewModel>(), addressListViewModel: getIt.get<WalletAddressListViewModel>()));
|
getIt.registerFactory<DashboardPage>(() => DashboardPage( balancePage: getIt.get<BalancePage>(), walletViewModel: getIt.get<DashboardViewModel>(), addressListViewModel: getIt.get<WalletAddressListViewModel>()));
|
||||||
getIt.registerFactory<ReceivePage>(() => ReceivePage(
|
getIt.registerFactory<ReceivePage>(() => ReceivePage(
|
||||||
addressListViewModel: getIt.get<WalletAddressListViewModel>()));
|
addressListViewModel: getIt.get<WalletAddressListViewModel>()));
|
||||||
|
getIt.registerFactory<AddressPage>(() => AddressPage(
|
||||||
|
addressListViewModel: getIt.get<WalletAddressListViewModel>(),
|
||||||
|
walletViewModel: getIt.get<DashboardViewModel>()));
|
||||||
|
|
||||||
getIt.registerFactoryParam<WalletAddressEditOrCreateViewModel, dynamic, void>(
|
getIt.registerFactoryParam<WalletAddressEditOrCreateViewModel, dynamic, void>(
|
||||||
(dynamic item, _) => WalletAddressEditOrCreateViewModel(
|
(dynamic item, _) => WalletAddressEditOrCreateViewModel(
|
||||||
|
|
|
@ -69,6 +69,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
import 'package:cake_wallet/wallet_type_utils.dart';
|
import 'package:cake_wallet/wallet_type_utils.dart';
|
||||||
import 'package:cake_wallet/wallet_types.g.dart';
|
import 'package:cake_wallet/wallet_types.g.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/dashboard/widgets/address_page.dart';
|
||||||
|
|
||||||
RouteSettings currentRouteSettings;
|
RouteSettings currentRouteSettings;
|
||||||
|
|
||||||
|
@ -217,6 +218,10 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
return CupertinoPageRoute<void>(
|
return CupertinoPageRoute<void>(
|
||||||
fullscreenDialog: true, builder: (_) => getIt.get<ReceivePage>());
|
fullscreenDialog: true, builder: (_) => getIt.get<ReceivePage>());
|
||||||
|
|
||||||
|
case Routes.addressPage:
|
||||||
|
return CupertinoPageRoute<void>(
|
||||||
|
fullscreenDialog: true, builder: (_) => getIt.get<AddressPage>());
|
||||||
|
|
||||||
case Routes.transactionDetails:
|
case Routes.transactionDetails:
|
||||||
return CupertinoPageRoute<void>(
|
return CupertinoPageRoute<void>(
|
||||||
fullscreenDialog: true,
|
fullscreenDialog: true,
|
||||||
|
|
|
@ -59,4 +59,5 @@ class Routes {
|
||||||
static const unspentCoinsDetails = '/unspent_coins_details';
|
static const unspentCoinsDetails = '/unspent_coins_details';
|
||||||
static const moneroRestoreWalletFromWelcome = '/monero_restore_wallet';
|
static const moneroRestoreWalletFromWelcome = '/monero_restore_wallet';
|
||||||
static const moneroNewWalletFromWelcome = '/monero_new_wallet';
|
static const moneroNewWalletFromWelcome = '/monero_new_wallet';
|
||||||
|
static const addressPage = '/address_page';
|
||||||
}
|
}
|
|
@ -165,7 +165,7 @@ class DashboardPage extends BasePage {
|
||||||
ActionButton(
|
ActionButton(
|
||||||
image: receiveImage,
|
image: receiveImage,
|
||||||
title: S.of(context).receive,
|
title: S.of(context).receive,
|
||||||
route: Routes.receive),
|
route: Routes.addressPage),
|
||||||
if (walletViewModel.hasExchangeAction)
|
if (walletViewModel.hasExchangeAction)
|
||||||
ActionButton(
|
ActionButton(
|
||||||
image: Image.asset('assets/images/transfer.png',
|
image: Image.asset('assets/images/transfer.png',
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||||
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
||||||
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
|
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
|
||||||
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
|
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
|
||||||
|
@ -15,7 +16,7 @@ import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
import 'package:keyboard_actions/keyboard_actions.dart';
|
import 'package:keyboard_actions/keyboard_actions.dart';
|
||||||
import 'package:mobx/mobx.dart';
|
import 'package:mobx/mobx.dart';
|
||||||
|
|
||||||
class AddressPage extends StatelessWidget {
|
class AddressPage extends BasePage {
|
||||||
AddressPage({@required this.addressListViewModel,
|
AddressPage({@required this.addressListViewModel,
|
||||||
this.walletViewModel})
|
this.walletViewModel})
|
||||||
: _cryptoAmountFocus = FocusNode();
|
: _cryptoAmountFocus = FocusNode();
|
||||||
|
@ -26,7 +27,64 @@ class AddressPage extends StatelessWidget {
|
||||||
final FocusNode _cryptoAmountFocus;
|
final FocusNode _cryptoAmountFocus;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
String get title => S.current.receive;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Color get backgroundLightColor => currentTheme.type == ThemeType.bright
|
||||||
|
? Colors.transparent : Colors.white;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Color get backgroundDarkColor => Colors.transparent;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool get resizeToAvoidBottomInset => false;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget leading(BuildContext context) {
|
||||||
|
final _backButton = Icon(Icons.arrow_back_ios,
|
||||||
|
color: Theme.of(context).accentTextTheme.display3.backgroundColor,
|
||||||
|
size: 16,);
|
||||||
|
|
||||||
|
return SizedBox(
|
||||||
|
height: 37,
|
||||||
|
width: 37,
|
||||||
|
child: ButtonTheme(
|
||||||
|
minWidth: double.minPositive,
|
||||||
|
child: FlatButton(
|
||||||
|
highlightColor: Colors.transparent,
|
||||||
|
splashColor: Colors.transparent,
|
||||||
|
padding: EdgeInsets.all(0),
|
||||||
|
onPressed: () => onClose(context),
|
||||||
|
child: _backButton),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget middle(BuildContext context) {
|
||||||
|
return Text(
|
||||||
|
title,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 18.0,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontFamily: 'Lato',
|
||||||
|
color: Theme.of(context).accentTextTheme.display3.backgroundColor),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget Function(BuildContext, Widget) get rootWrapper =>
|
||||||
|
(BuildContext context, Widget scaffold) => Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
gradient: LinearGradient(colors: [
|
||||||
|
Theme.of(context).accentColor,
|
||||||
|
Theme.of(context).scaffoldBackgroundColor,
|
||||||
|
Theme.of(context).primaryColor,
|
||||||
|
], begin: Alignment.topRight, end: Alignment.bottomLeft)),
|
||||||
|
child: scaffold);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget body(BuildContext context) {
|
||||||
autorun((_) async {
|
autorun((_) async {
|
||||||
if (!walletViewModel.isOutdatedElectrumWallet
|
if (!walletViewModel.isOutdatedElectrumWallet
|
||||||
|| !walletViewModel.settingsStore.shouldShowReceiveWarning) {
|
|| !walletViewModel.settingsStore.shouldShowReceiveWarning) {
|
||||||
|
@ -66,7 +124,6 @@ class AddressPage extends StatelessWidget {
|
||||||
)
|
)
|
||||||
]),
|
]),
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 1,
|
|
||||||
padding: EdgeInsets.fromLTRB(24, 24, 24, 32),
|
padding: EdgeInsets.fromLTRB(24, 24, 24, 32),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
|
|
|
@ -109,7 +109,7 @@ class ReceivePage extends BasePage {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget body(BuildContext context) {
|
Widget body(BuildContext context) {
|
||||||
return addressListViewModel.type == WalletType.monero
|
return (addressListViewModel.type == WalletType.monero || addressListViewModel.type == WalletType.haven)
|
||||||
? KeyboardActions(
|
? KeyboardActions(
|
||||||
config: KeyboardActionsConfig(
|
config: KeyboardActionsConfig(
|
||||||
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
|
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
|
||||||
|
|
|
@ -133,54 +133,7 @@ class QRWidget extends StatelessWidget {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
))),
|
))),
|
||||||
),
|
|
||||||
Observer(builder: (_) {
|
|
||||||
return addressListViewModel.emoji.isNotEmpty
|
|
||||||
? Padding(
|
|
||||||
padding: EdgeInsets.only(bottom: 10),
|
|
||||||
child: Builder(
|
|
||||||
builder: (context) => GestureDetector(
|
|
||||||
onTap: () {
|
|
||||||
Clipboard.setData(ClipboardData(
|
|
||||||
text: addressListViewModel.emoji));
|
|
||||||
showBar<void>(
|
|
||||||
context, S.of(context).copied_to_clipboard);
|
|
||||||
},
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
S.of(context).yat,
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 13,
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
color: Theme.of(context).accentTextTheme.
|
|
||||||
display3.backgroundColor),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.only(top: 5),
|
|
||||||
child: Row(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: <Widget>[
|
|
||||||
Expanded(child:Text(
|
|
||||||
addressListViewModel.emoji,
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 26))),
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.only(left: 12),
|
|
||||||
child: copyImage,
|
|
||||||
)]
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
]
|
|
||||||
)
|
|
||||||
)),
|
|
||||||
)
|
|
||||||
: Container();
|
|
||||||
})
|
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,30 +100,7 @@ abstract class WalletAddressListViewModelBase with Store {
|
||||||
}) {
|
}) {
|
||||||
_appStore = appStore;
|
_appStore = appStore;
|
||||||
_wallet = _appStore.wallet;
|
_wallet = _appStore.wallet;
|
||||||
emoji = '';
|
|
||||||
hasAccounts = _wallet?.type == WalletType.monero || _wallet?.type == WalletType.haven;
|
hasAccounts = _wallet?.type == WalletType.monero || _wallet?.type == WalletType.haven;
|
||||||
reaction((_) => _wallet.walletAddresses.address, (String address) {
|
|
||||||
if (address == _wallet.walletInfo.yatLastUsedAddress) {
|
|
||||||
emoji = yatStore.emoji;
|
|
||||||
} else {
|
|
||||||
emoji = '';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
//reaction((_) => yatStore.emoji, (String emojiId) => this.emoji = emojiId);
|
|
||||||
|
|
||||||
//_onLastUsedYatAddressSubscription =
|
|
||||||
// _wallet.walletInfo.yatLastUsedAddressStream.listen((String yatAddress) {
|
|
||||||
// if (yatAddress == _wallet.walletAddresses.address) {
|
|
||||||
// emoji = yatStore.emoji;
|
|
||||||
// } else {
|
|
||||||
// emoji = '';
|
|
||||||
// }
|
|
||||||
//});
|
|
||||||
|
|
||||||
if (_wallet.walletAddresses.address == _wallet.walletInfo.yatLastUsedAddress) {
|
|
||||||
emoji = yatStore.emoji;
|
|
||||||
}
|
|
||||||
|
|
||||||
_onWalletChangeReaction = reaction((_) => _appStore.wallet, (WalletBase<
|
_onWalletChangeReaction = reaction((_) => _appStore.wallet, (WalletBase<
|
||||||
Balance, TransactionHistoryBase<TransactionInfo>, TransactionInfo>
|
Balance, TransactionHistoryBase<TransactionInfo>, TransactionInfo>
|
||||||
|
@ -243,9 +220,6 @@ abstract class WalletAddressListViewModelBase with Store {
|
||||||
@computed
|
@computed
|
||||||
bool get hasAddressList => _wallet.type == WalletType.monero || _wallet.type == WalletType.haven;
|
bool get hasAddressList => _wallet.type == WalletType.monero || _wallet.type == WalletType.haven;
|
||||||
|
|
||||||
@observable
|
|
||||||
String emoji;
|
|
||||||
|
|
||||||
@observable
|
@observable
|
||||||
WalletBase<Balance, TransactionHistoryBase<TransactionInfo>, TransactionInfo>
|
WalletBase<Balance, TransactionHistoryBase<TransactionInfo>, TransactionInfo>
|
||||||
_wallet;
|
_wallet;
|
||||||
|
@ -258,9 +232,6 @@ abstract class WalletAddressListViewModelBase with Store {
|
||||||
|
|
||||||
ReactionDisposer _onWalletChangeReaction;
|
ReactionDisposer _onWalletChangeReaction;
|
||||||
|
|
||||||
StreamSubscription<String> _onLastUsedYatAddressSubscription;
|
|
||||||
StreamSubscription<String> _onEmojiIdChangeSubscription;
|
|
||||||
|
|
||||||
@action
|
@action
|
||||||
void setAddress(WalletAddressListItem address) =>
|
void setAddress(WalletAddressListItem address) =>
|
||||||
_wallet.walletAddresses.address = address.address;
|
_wallet.walletAddresses.address = address.address;
|
||||||
|
|
Loading…
Reference in a new issue