diff --git a/android/gradle.properties b/android/gradle.properties index db7a1ee2908d6e94aeb319e1c1b548a8bb245891..14eed3944b547f02179b1b42f4b601f91b7957c0 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 6104e4047ac05d580cb442f22a6256733ef9764e..5979a1ba28d69118bb64e34670c2eb2d500e77bf 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 92ae40c2e100772bd794897bc5ccb37898523979..87da3b9c2437a87b64a98f07a4291cebc34b8ab1 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 ), ) );