CWA-175 | created seed language picker, added seed language picker to the new wallet page, added decoration to seed language button, translated seed languages

This commit is contained in:
Oleksandr Sobol
2020-03-02 20:11:27 +02:00
parent cb4fff7aec
commit 41dd48e80c
19 changed files with 351 additions and 35 deletions
@@ -14,6 +14,7 @@ import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
import 'package:cake_wallet/src/screens/seed_language/widgets/seed_language_picker.dart';
class NewWalletPage extends BasePage {
NewWalletPage(
@@ -72,11 +73,6 @@ class _WalletNameFormState extends State<WalletNameForm> {
return ScrollableWithBottomSection(
content: Column(children: [
Padding(
padding: EdgeInsets.only(bottom: 10),
child: Image.asset('assets/images/bitmap.png',
height: 224, width: 400),
),
Padding(
padding: EdgeInsets.only(left: 20, right: 20, bottom: 20),
child: Form(
@@ -102,6 +98,16 @@ class _WalletNameFormState extends State<WalletNameForm> {
return walletCreationStore.errorMessage;
},
)),
),
Padding(padding: EdgeInsets.only(bottom: 20),
child: Text(
S.of(context).seed_language_choose,
textAlign: TextAlign.center,
style: TextStyle(fontSize: 19.0),
),
),
Padding(padding: EdgeInsets.only(left: 20, right: 20, bottom: 20),
child: SeedLanguagePicker(),
)
]),
bottomSection: Observer(
@@ -1,13 +1,11 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/src/screens/seed_language/widgets/seed_language_picker.dart';
import 'package:provider/provider.dart';
import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
import 'package:cake_wallet/src/widgets/present_picker.dart';
class SeedLanguage extends BasePage {
final imageSeed = Image.asset('assets/images/seedIco.png');
@@ -34,14 +32,7 @@ class SeedLanguage extends BasePage {
SizedBox(
height: 20.0,
),
Observer(
builder: (_) => InkWell(
onTap: () => _setSeedLanguage(context),
child: Text(seedLanguageStore.selectedSeedLanguage,
textAlign: TextAlign.center,
style: TextStyle(fontSize: 19.0, color: Palette.lightBlue),
),
)),
SeedLanguagePicker(),
],
),
),
@@ -58,14 +49,4 @@ class SeedLanguage extends BasePage {
),
);
}
Future<void> _setSeedLanguage(BuildContext context) async {
final seedLanguageStore = Provider.of<SeedLanguageStore>(context);
final selectedSeedLanguage =
await presentPicker(context, seedLanguages);
if (selectedSeedLanguage != null) {
seedLanguageStore.setSelectedSeedLanguage(selectedSeedLanguage);
}
}
}
@@ -0,0 +1,55 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:provider/provider.dart';
import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
import 'package:cake_wallet/src/widgets/present_picker.dart';
import 'package:cake_wallet/generated/i18n.dart';
class SeedLanguagePicker extends StatelessWidget {
List<String> seedLocales = [
S.current.seed_language_english,
S.current.seed_language_chinese,
S.current.seed_language_dutch,
S.current.seed_language_german,
S.current.seed_language_japanese,
S.current.seed_language_portuguese,
S.current.seed_language_russian,
S.current.seed_language_spanish
];
@override
Widget build(BuildContext context) {
final seedLanguageStore = Provider.of<SeedLanguageStore>(context);
return Observer(
builder: (_) => InkWell(
onTap: () => _setSeedLanguage(context),
child: Container(
padding: EdgeInsets.all(10.0),
width: double.infinity,
decoration: BoxDecoration(
border: Border.all(
color: Theme.of(context).dividerTheme.color
),
borderRadius: BorderRadius.circular(10.0)
),
child: Text(seedLocales[seedLanguages.indexOf(seedLanguageStore.selectedSeedLanguage)],
textAlign: TextAlign.center,
style: TextStyle(fontSize: 19.0, color: Palette.lightBlue),
),
),
));
}
Future<void> _setSeedLanguage(BuildContext context) async {
final seedLanguageStore = Provider.of<SeedLanguageStore>(context);
String selectedSeedLanguage =
await presentPicker(context, seedLocales);
if (selectedSeedLanguage != null) {
selectedSeedLanguage = seedLanguages[seedLocales.indexOf(selectedSeedLanguage)];
seedLanguageStore.setSelectedSeedLanguage(selectedSeedLanguage);
}
}
}
@@ -12,7 +12,6 @@ import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/src/stores/wallet_list/wallet_list_store.dart';
import 'package:cake_wallet/src/screens/wallet_list/wallet_menu.dart';
import 'package:cake_wallet/src/widgets/picker.dart';
import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
class WalletListPage extends BasePage {
@override
@@ -55,7 +54,6 @@ class WalletListBodyState extends State<WalletListBody> {
@override
Widget build(BuildContext context) {
_walletListStore = Provider.of<WalletListStore>(context);
final seedLanguageStore = Provider.of<SeedLanguageStore>(context);
return ScrollableWithBottomSection(
content: Container(
@@ -102,10 +100,7 @@ class WalletListBodyState extends State<WalletListBody> {
),
bottomSection: Column(children: <Widget>[
PrimaryIconButton(
onPressed: () {
seedLanguageStore.setCurrentRoute(Routes.newWallet);
Navigator.of(context).pushNamed(Routes.seedLanguage);
},
onPressed: () => Navigator.of(context).pushNamed(Routes.newWallet),
iconData: Icons.add,
color: Theme.of(context).primaryTextTheme.button.backgroundColor,
borderColor:
@@ -1,5 +1,4 @@
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/routes.dart';
part 'seed_language_store.g.dart';
@@ -19,7 +18,7 @@ class SeedLanguageStore = SeedLanguageStoreBase with _$SeedLanguageStore;
abstract class SeedLanguageStoreBase with Store {
SeedLanguageStoreBase() {
selectedSeedLanguage = seedLanguages[0];
currentRoute = Routes.newWallet;
currentRoute = '';
}
@observable