You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cake_wallet/lib/src/screens/restore/restore_wallet_from_seed_pa...

68 lines
2.2 KiB

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/seed_widget.dart';
import 'package:cake_wallet/src/domain/common/wallet_type.dart';
import 'package:cake_wallet/core/seed_validator.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/core/mnemonic_length.dart';
class RestoreWalletFromSeedPage extends BasePage {
RestoreWalletFromSeedPage({@required this.type, @required this.language});
final WalletType type;
final String language;
final formKey = GlobalKey<_RestoreFromSeedFormState>();
@override
String get title => S.current.restore_title_from_seed;
@override
Color get backgroundLightColor => Palette.lavender;
@override
Color get backgroundDarkColor => PaletteDark.lightNightBlue;
@override
Widget body(BuildContext context) =>
RestoreFromSeedForm(key: formKey, type: type, language: language);
}
class RestoreFromSeedForm extends StatefulWidget {
RestoreFromSeedForm({Key key, this.type, this.language}) : super(key: key);
final WalletType type;
final String language;
@override
_RestoreFromSeedFormState createState() => _RestoreFromSeedFormState();
}
class _RestoreFromSeedFormState extends State<RestoreFromSeedForm> {
final _seedKey = GlobalKey<SeedWidgetState>();
String mnemonic() => _seedKey.currentState.items.map((e) => e.text).join(' ');
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () =>
SystemChannels.textInput.invokeMethod<void>('TextInput.hide'),
child: Container(
color: Theme.of(context).backgroundColor,
child: SeedWidget(
key: _seedKey,
maxLength: mnemonicLength(widget.type),
onMnemonicChange: (seed) => null,
onFinish: () => Navigator.of(context).pushNamed(
Routes.restoreWalletFromSeedDetails,
arguments: [widget.type, widget.language, mnemonic()]),
validator:
SeedValidator(type: widget.type, language: widget.language),
),
),
);
}
}