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

Improve select image layout

parent 2b0050ba
No related branches found
No related tags found
1 merge request!13Resolve "Improve select image layout"
Pipeline #1246 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.9 app.versionName=0.0.10
app.versionCode=9 app.versionCode=10
...@@ -12,7 +12,6 @@ import '../utils/get_images_list.dart'; ...@@ -12,7 +12,6 @@ import '../utils/get_images_list.dart';
class Home extends StatelessWidget { class Home extends StatelessWidget {
static const String id = 'home'; static const String id = 'home';
double _selectorImageSize = 200;
double _tipImageSize = 100; double _tipImageSize = 100;
double _tileImageSize = 80; double _tileImageSize = 80;
...@@ -30,6 +29,7 @@ class Home extends StatelessWidget { ...@@ -30,6 +29,7 @@ class Home extends StatelessWidget {
await getImagesList.init(); await getImagesList.init();
if (getImagesList.images != null) { if (getImagesList.images != null) {
myProvider.updateImages = getImagesList.images; myProvider.updateImages = getImagesList.images;
shuffleImages(myProvider);
} }
} }
...@@ -40,7 +40,13 @@ class Home extends StatelessWidget { ...@@ -40,7 +40,13 @@ class Home extends StatelessWidget {
myProvider.updateShuffling = false; myProvider.updateShuffling = false;
} }
Container _buildImageSelectorItem(Data myProvider, String image) { void shuffleImages(Data myProvider) {
List images = myProvider.images;
images.shuffle();
myProvider.updateImages = images;
}
Container _buildImageSelectorItem(Data myProvider, String image, double size) {
return Container( return Container(
child: FlatButton( child: FlatButton(
child: Container( child: Container(
...@@ -54,8 +60,8 @@ class Home extends StatelessWidget { ...@@ -54,8 +60,8 @@ class Home extends StatelessWidget {
margin: EdgeInsets.all(2), margin: EdgeInsets.all(2),
child: Image( child: Image(
image: AssetImage(getImageAssetName(image)), image: AssetImage(getImageAssetName(image)),
width: _selectorImageSize, width: size,
height: _selectorImageSize, height: size,
fit: BoxFit.fill fit: BoxFit.fill
), ),
), ),
...@@ -64,7 +70,7 @@ class Home extends StatelessWidget { ...@@ -64,7 +70,7 @@ class Home extends StatelessWidget {
); );
} }
Container _buildImageSelector(Data myProvider) { Container _buildImageSelector(Data myProvider, double size) {
if (myProvider.images.length == 0) { if (myProvider.images.length == 0) {
getImagesList(myProvider); getImagesList(myProvider);
} }
...@@ -74,8 +80,27 @@ class Home extends StatelessWidget { ...@@ -74,8 +80,27 @@ class Home extends StatelessWidget {
padding: EdgeInsets.all(5), padding: EdgeInsets.all(5),
child: ListView( child: ListView(
children: [ children: [
for (var image in images) Table(
_buildImageSelectorItem(myProvider, image), defaultColumnWidth: IntrinsicColumnWidth(),
children: [
for (var imageIndex = 0; imageIndex < images.length; imageIndex+=2)
TableRow(
children: [
Column(
children: [
_buildImageSelectorItem(myProvider, images[imageIndex], size)
]
),
Column(
children: [
if (imageIndex+1 < images.length)
_buildImageSelectorItem(myProvider, images[imageIndex+1], size)
]
),
]
),
],
),
], ],
), ),
); );
...@@ -253,29 +278,37 @@ class Home extends StatelessWidget { ...@@ -253,29 +278,37 @@ class Home extends StatelessWidget {
var content; var content;
double _selectorImageSize = MediaQuery.of(context).size.width / 3;
if (_myProvider.shuffling) { if (_myProvider.shuffling) {
content = _buildShufflingIndicatorWidget(); content = _buildShufflingIndicatorWidget();
} else { } else {
if (_myProvider.image == '') { if (_myProvider.image == '') {
content = _buildImageSelector(_myProvider); content = _buildImageSelector(_myProvider, _selectorImageSize);
} else { } else {
content = _buildGameWidget(_myProvider); content = _buildGameWidget(_myProvider);
} }
} }
return Scaffold( List<Widget> menuActions = [
appBar: AppBar( IconButton(
title: Text('Puzzle'), icon: const Icon(Icons.shuffle),
actions: <Widget>[ onPressed: () => shuffleImages(_myProvider),
_myProvider.image == '' ),
? Text('') _buildTilesetSizeSelector(_myProvider),
: IconButton( ];
List<Widget> gameActions = [
IconButton(
icon: const Icon(Icons.arrow_left_outlined), icon: const Icon(Icons.arrow_left_outlined),
onPressed: () => resetGame(_myProvider), onPressed: () => resetGame(_myProvider),
) )
, ];
_myProvider.image == '' ? _buildTilesetSizeSelector(_myProvider) : Text(''),
], return Scaffold(
appBar: AppBar(
title: Text('Puzzle'),
actions: _myProvider.image == '' ? menuActions : gameActions,
), ),
body: SafeArea( body: SafeArea(
child: Center( child: Center(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment