diff --git a/lib/src/screens/restore/restore_options_page.dart b/lib/src/screens/restore/restore_options_page.dart index da50c6a76..6a0dec278 100644 --- a/lib/src/screens/restore/restore_options_page.dart +++ b/lib/src/screens/restore/restore_options_page.dart @@ -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, + ); + } } diff --git a/lib/src/screens/restore/restore_wallet_options_page.dart b/lib/src/screens/restore/restore_wallet_options_page.dart index e0f9bc72b..39ac97a4d 100644 --- a/lib/src/screens/restore/restore_wallet_options_page.dart +++ b/lib/src/screens/restore/restore_wallet_options_page.dart @@ -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, ); } } diff --git a/lib/src/screens/restore/widgets/base_restore_widget.dart b/lib/src/screens/restore/widgets/base_restore_widget.dart new file mode 100644 index 000000000..4b8c3c6d3 --- /dev/null +++ b/lib/src/screens/restore/widgets/base_restore_widget.dart @@ -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 + ], + ), + ) + ); + } +} \ No newline at end of file diff --git a/lib/src/screens/restore/widgets/image_widget.dart b/lib/src/screens/restore/widgets/image_widget.dart new file mode 100644 index 000000000..016bd9ce8 --- /dev/null +++ b/lib/src/screens/restore/widgets/image_widget.dart @@ -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; + } +} \ No newline at end of file diff --git a/lib/src/screens/restore/widgets/restore_button.dart b/lib/src/screens/restore/widgets/restore_button.dart index 9df200685..ffa73a2fb 100644 --- a/lib/src/screens/restore/widgets/restore_button.dart +++ b/lib/src/screens/restore/widgets/restore_button.dart @@ -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(