mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-02-02 19:26:27 +00:00
CWA-179 | added image_widget and base_restore_widget, refactored restore_options_page and restore_wallet_options_page, added scale factor
This commit is contained in:
parent
6e7ba33ecd
commit
859afef931
5 changed files with 144 additions and 78 deletions
|
@ -3,6 +3,8 @@ import 'package:cake_wallet/palette.dart';
|
|||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:cake_wallet/src/screens/restore/widgets/restore_button.dart';
|
||||
import 'package:cake_wallet/src/screens/restore/widgets/image_widget.dart';
|
||||
import 'package:cake_wallet/src/screens/restore/widgets/base_restore_widget.dart';
|
||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
|
||||
|
@ -19,42 +21,39 @@ class RestoreOptionsPage extends BasePage {
|
|||
final _imageRestoreSeed = Image.asset('assets/images/restoreSeed.png');
|
||||
|
||||
@override
|
||||
Widget body(BuildContext context) => Container(
|
||||
padding: EdgeInsets.only(
|
||||
left: 20.0,
|
||||
right: 20.0,
|
||||
Widget body(BuildContext context) {
|
||||
final isLargeScreen = MediaQuery.of(context).size.height > largeHeight;
|
||||
|
||||
return BaseRestoreWidget(
|
||||
firstRestoreButton: RestoreButton(
|
||||
onPressed: () =>
|
||||
Navigator.pushNamed(
|
||||
context, Routes.restoreWalletOptionsFromWelcome),
|
||||
imageWidget: ImageWidget(
|
||||
image: _imageSeedKeys,
|
||||
aspectRatioImage: _aspectRatioImage,
|
||||
isLargeScreen: isLargeScreen,
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
child: RestoreButton(
|
||||
onPressed: () {
|
||||
Navigator.pushNamed(
|
||||
context, Routes.restoreWalletOptionsFromWelcome);
|
||||
},
|
||||
image: _imageSeedKeys,
|
||||
aspectRatioImage: _aspectRatioImage,
|
||||
titleColor: Palette.lightViolet,
|
||||
color: Palette.lightViolet,
|
||||
title: S.of(context).restore_title_from_seed_keys,
|
||||
description: S.of(context).restore_description_from_seed_keys,
|
||||
textButton: S.of(context).restore_next,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
child: RestoreButton(
|
||||
onPressed: () {},
|
||||
image: _imageRestoreSeed,
|
||||
aspectRatioImage: _aspectRatioImage,
|
||||
titleColor: Palette.cakeGreen,
|
||||
color: Palette.cakeGreen,
|
||||
title: S.of(context).restore_title_from_backup,
|
||||
description: S.of(context).restore_description_from_backup,
|
||||
textButton: S.of(context).restore_next,
|
||||
))
|
||||
],
|
||||
),
|
||||
titleColor: Palette.lightViolet,
|
||||
color: Palette.lightViolet,
|
||||
title: S.of(context).restore_title_from_seed_keys,
|
||||
description: S.of(context).restore_description_from_seed_keys,
|
||||
textButton: S.of(context).restore_next,
|
||||
),
|
||||
secondRestoreButton: RestoreButton(
|
||||
onPressed: () {},
|
||||
imageWidget: ImageWidget(
|
||||
image: _imageRestoreSeed,
|
||||
aspectRatioImage: _aspectRatioImage,
|
||||
isLargeScreen: isLargeScreen,
|
||||
),
|
||||
);
|
||||
titleColor: Palette.cakeGreen,
|
||||
color: Palette.cakeGreen,
|
||||
title: S.of(context).restore_title_from_backup,
|
||||
description: S.of(context).restore_description_from_backup,
|
||||
textButton: S.of(context).restore_next,
|
||||
),
|
||||
isLargeScreen: isLargeScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@ import 'package:flutter/cupertino.dart';
|
|||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/src/screens/restore/widgets/restore_button.dart';
|
||||
import 'package:cake_wallet/src/screens/restore/widgets/image_widget.dart';
|
||||
import 'package:cake_wallet/src/screens/restore/widgets/base_restore_widget.dart';
|
||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
|
||||
|
@ -23,46 +25,40 @@ class RestoreWalletOptionsPage extends BasePage {
|
|||
@override
|
||||
Widget body(BuildContext context) {
|
||||
final seedLanguageStore = Provider.of<SeedLanguageStore>(context);
|
||||
final isLargeScreen = MediaQuery.of(context).size.height > largeHeight;
|
||||
|
||||
return Container(
|
||||
padding: EdgeInsets.only(
|
||||
left: 20.0,
|
||||
right: 20.0,
|
||||
return BaseRestoreWidget(
|
||||
firstRestoreButton: RestoreButton(
|
||||
onPressed: () {
|
||||
seedLanguageStore.setCurrentRoute(Routes.restoreWalletFromSeed);
|
||||
Navigator.pushNamed(context, Routes.seedLanguage);
|
||||
},
|
||||
imageWidget: ImageWidget(
|
||||
image: _imageSeed,
|
||||
aspectRatioImage: _aspectRatioImage,
|
||||
isLargeScreen: isLargeScreen),
|
||||
titleColor: Palette.lightViolet,
|
||||
color: Palette.lightViolet,
|
||||
title: S.of(context).restore_title_from_seed,
|
||||
description: S.of(context).restore_description_from_seed,
|
||||
textButton: S.of(context).restore_next,
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
child: RestoreButton(
|
||||
onPressed: () {
|
||||
seedLanguageStore.setCurrentRoute(Routes.restoreWalletFromSeed);
|
||||
Navigator.pushNamed(context, Routes.seedLanguage);
|
||||
},
|
||||
image: _imageSeed,
|
||||
aspectRatioImage: _aspectRatioImage,
|
||||
titleColor: Palette.lightViolet,
|
||||
color: Palette.lightViolet,
|
||||
title: S.of(context).restore_title_from_seed,
|
||||
description: S.of(context).restore_description_from_seed,
|
||||
textButton: S.of(context).restore_next,
|
||||
)),
|
||||
Container(
|
||||
child: RestoreButton(
|
||||
onPressed: () {
|
||||
seedLanguageStore.setCurrentRoute(Routes.restoreWalletFromKeys);
|
||||
Navigator.pushNamed(context, Routes.seedLanguage);
|
||||
},
|
||||
image: _imageKeys,
|
||||
aspectRatioImage: _aspectRatioImage,
|
||||
titleColor: Palette.cakeGreen,
|
||||
color: Palette.cakeGreen,
|
||||
title: S.of(context).restore_title_from_keys,
|
||||
description: S.of(context).restore_description_from_keys,
|
||||
textButton: S.of(context).restore_next,
|
||||
))
|
||||
],
|
||||
),
|
||||
secondRestoreButton: RestoreButton(
|
||||
onPressed: () {
|
||||
seedLanguageStore.setCurrentRoute(Routes.restoreWalletFromKeys);
|
||||
Navigator.pushNamed(context, Routes.seedLanguage);
|
||||
},
|
||||
imageWidget: ImageWidget(
|
||||
image: _imageKeys,
|
||||
aspectRatioImage: _aspectRatioImage,
|
||||
isLargeScreen: isLargeScreen),
|
||||
titleColor: Palette.cakeGreen,
|
||||
color: Palette.cakeGreen,
|
||||
title: S.of(context).restore_title_from_keys,
|
||||
description: S.of(context).restore_description_from_keys,
|
||||
textButton: S.of(context).restore_next,
|
||||
),
|
||||
isLargeScreen: isLargeScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
44
lib/src/screens/restore/widgets/base_restore_widget.dart
Normal file
44
lib/src/screens/restore/widgets/base_restore_widget.dart
Normal file
|
@ -0,0 +1,44 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
const largeHeight = 800;
|
||||
|
||||
class BaseRestoreWidget extends StatelessWidget {
|
||||
BaseRestoreWidget({
|
||||
@required this.firstRestoreButton,
|
||||
@required this.secondRestoreButton,
|
||||
this.isLargeScreen = false
|
||||
});
|
||||
|
||||
final Widget firstRestoreButton;
|
||||
final Widget secondRestoreButton;
|
||||
final bool isLargeScreen;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
padding: EdgeInsets.only(
|
||||
left: 20.0,
|
||||
right: 20.0,
|
||||
),
|
||||
child: isLargeScreen
|
||||
? Column(
|
||||
children: <Widget>[
|
||||
Flexible(
|
||||
child: firstRestoreButton
|
||||
),
|
||||
Flexible(
|
||||
child: secondRestoreButton
|
||||
)
|
||||
],
|
||||
)
|
||||
: SingleChildScrollView(
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
firstRestoreButton,
|
||||
secondRestoreButton
|
||||
],
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
29
lib/src/screens/restore/widgets/image_widget.dart
Normal file
29
lib/src/screens/restore/widgets/image_widget.dart
Normal file
|
@ -0,0 +1,29 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class ImageWidget extends StatelessWidget {
|
||||
ImageWidget({
|
||||
@required this.image,
|
||||
@required this.aspectRatioImage,
|
||||
this.isLargeScreen = false});
|
||||
|
||||
final Image image;
|
||||
final double aspectRatioImage;
|
||||
final bool isLargeScreen;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return isLargeScreen
|
||||
? Flexible(
|
||||
child: Container(
|
||||
child: AspectRatio(
|
||||
aspectRatio: aspectRatioImage,
|
||||
child: FittedBox(
|
||||
fit: BoxFit.contain,
|
||||
child: image,
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
: image;
|
||||
}
|
||||
}
|
|
@ -5,8 +5,7 @@ import 'package:auto_size_text/auto_size_text.dart';
|
|||
class RestoreButton extends StatelessWidget {
|
||||
const RestoreButton(
|
||||
{@required this.onPressed,
|
||||
@required this.image,
|
||||
@required this.aspectRatioImage,
|
||||
@required this.imageWidget,
|
||||
@required this.color,
|
||||
@required this.titleColor,
|
||||
this.title = '',
|
||||
|
@ -14,8 +13,7 @@ class RestoreButton extends StatelessWidget {
|
|||
this.textButton = ''});
|
||||
|
||||
final VoidCallback onPressed;
|
||||
final Image image;
|
||||
final double aspectRatioImage;
|
||||
final Widget imageWidget;
|
||||
final Color color;
|
||||
final Color titleColor;
|
||||
final String title;
|
||||
|
@ -45,7 +43,7 @@ class RestoreButton extends StatelessWidget {
|
|||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: <Widget>[
|
||||
image,
|
||||
imageWidget,
|
||||
Column(
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
|
|
Loading…
Reference in a new issue