Skip to content
Snippets Groups Projects
Commit b941c17b authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Add "shuffling" indicator

parent e919f342
No related branches found
No related tags found
1 merge request!6Resolve "Add loading indicator when splitting/shuffling image"
Pipeline #1188 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.0.3 app.versionName=0.0.4
app.versionCode=3 app.versionCode=4
...@@ -7,6 +7,8 @@ class Data extends ChangeNotifier { ...@@ -7,6 +7,8 @@ class Data extends ChangeNotifier {
String _image = ''; String _image = '';
List _tiles = []; List _tiles = [];
// application state
bool _shuffling = false;
String get image => _image; String get image => _image;
...@@ -29,6 +31,13 @@ class Data extends ChangeNotifier { ...@@ -29,6 +31,13 @@ class Data extends ChangeNotifier {
notifyListeners(); notifyListeners();
} }
bool get shuffling => _shuffling;
set updateShuffling(bool value) {
_shuffling = value;
notifyListeners();
}
void resetGame() { void resetGame() {
_image = ''; _image = '';
notifyListeners(); notifyListeners();
......
...@@ -36,8 +36,10 @@ class Home extends StatelessWidget { ...@@ -36,8 +36,10 @@ class Home extends StatelessWidget {
} }
Future<void> selectImage(Data myProvider, String imageCode) async { Future<void> selectImage(Data myProvider, String imageCode) async {
myProvider.updateShuffling = true;
myProvider.updateImage = imageCode; myProvider.updateImage = imageCode;
myProvider.updateTiles = await splitImageInTiles(myProvider); myProvider.updateTiles = await splitImageInTiles(myProvider);
myProvider.updateShuffling = false;
} }
Container _buildImageSelectorItem(Data myProvider, String image) { Container _buildImageSelectorItem(Data myProvider, String image) {
...@@ -205,10 +207,41 @@ class Home extends StatelessWidget { ...@@ -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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Data _myProvider = Provider.of<Data>(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( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text('Puzzle'), title: Text('Puzzle'),
...@@ -223,9 +256,7 @@ class Home extends StatelessWidget { ...@@ -223,9 +256,7 @@ class Home extends StatelessWidget {
), ),
body: SafeArea( body: SafeArea(
child: Center( child: Center(
child: _myProvider.image == '' child: content
? _buildImageSelector(_myProvider)
: _buildGameWidget(_myProvider),
), ),
) )
); );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment