From b941c17b844e2650d35006ebd0a1a3d6225f71a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Tue, 25 May 2021 19:24:11 +0200 Subject: [PATCH] Add "shuffling" indicator --- android/gradle.properties | 4 ++-- lib/provider/data.dart | 9 +++++++++ lib/screens/home.dart | 37 ++++++++++++++++++++++++++++++++++--- 3 files changed, 45 insertions(+), 5 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index db7a1ee..14eed39 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -app.versionName=0.0.3 -app.versionCode=3 +app.versionName=0.0.4 +app.versionCode=4 diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 6104e40..5979a1b 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -7,6 +7,8 @@ class Data extends ChangeNotifier { String _image = ''; List _tiles = []; + // application state + bool _shuffling = false; String get image => _image; @@ -29,6 +31,13 @@ class Data extends ChangeNotifier { notifyListeners(); } + bool get shuffling => _shuffling; + + set updateShuffling(bool value) { + _shuffling = value; + notifyListeners(); + } + void resetGame() { _image = ''; notifyListeners(); diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 92ae40c..87da3b9 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -36,8 +36,10 @@ class Home extends StatelessWidget { } Future<void> selectImage(Data myProvider, String imageCode) async { + myProvider.updateShuffling = true; myProvider.updateImage = imageCode; myProvider.updateTiles = await splitImageInTiles(myProvider); + myProvider.updateShuffling = false; } Container _buildImageSelectorItem(Data myProvider, String image) { @@ -205,10 +207,41 @@ class Home extends StatelessWidget { ); } + Container _buildShufflingIndicatorWidget() { + return Container( + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'â³', + style: TextStyle( + fontSize: 60, + fontWeight: FontWeight.w600, + color: Colors.black, + ), + ), + ], + ), + ); + } + @override Widget build(BuildContext context) { Data _myProvider = Provider.of<Data>(context); + var content; + + if (_myProvider.shuffling) { + content = _buildShufflingIndicatorWidget(); + } else { + if (_myProvider.image == '') { + content = _buildImageSelector(_myProvider); + } else { + content = _buildGameWidget(_myProvider); + } + } + return Scaffold( appBar: AppBar( title: Text('Puzzle'), @@ -223,9 +256,7 @@ class Home extends StatelessWidget { ), body: SafeArea( child: Center( - child: _myProvider.image == '' - ? _buildImageSelector(_myProvider) - : _buildGameWidget(_myProvider), + child: content ), ) ); -- GitLab