diff --git a/android/gradle.properties b/android/gradle.properties index 4bb5439f682100f8ef4ba80a557fe4f2f0ab14c2..6bf54a6ed821c19f76d860d4a24e7c85d440b575 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.9 -app.versionCode=9 +app.versionName=0.0.10 +app.versionCode=10 diff --git a/lib/screens/home.dart b/lib/screens/home.dart index bcb1e8339ef5a07099a7ed168508d13363f4f64e..a2fdd2fce8553d080f9c430aabe910ef3fc5bdec 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -12,7 +12,6 @@ import '../utils/get_images_list.dart'; class Home extends StatelessWidget { static const String id = 'home'; - double _selectorImageSize = 200; double _tipImageSize = 100; double _tileImageSize = 80; @@ -30,6 +29,7 @@ class Home extends StatelessWidget { await getImagesList.init(); if (getImagesList.images != null) { myProvider.updateImages = getImagesList.images; + shuffleImages(myProvider); } } @@ -40,7 +40,13 @@ class Home extends StatelessWidget { 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( child: FlatButton( child: Container( @@ -54,8 +60,8 @@ class Home extends StatelessWidget { margin: EdgeInsets.all(2), child: Image( image: AssetImage(getImageAssetName(image)), - width: _selectorImageSize, - height: _selectorImageSize, + width: size, + height: size, fit: BoxFit.fill ), ), @@ -64,7 +70,7 @@ class Home extends StatelessWidget { ); } - Container _buildImageSelector(Data myProvider) { + Container _buildImageSelector(Data myProvider, double size) { if (myProvider.images.length == 0) { getImagesList(myProvider); } @@ -74,8 +80,27 @@ class Home extends StatelessWidget { padding: EdgeInsets.all(5), child: ListView( children: [ - for (var image in images) - _buildImageSelectorItem(myProvider, image), + Table( + 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 { var content; + double _selectorImageSize = MediaQuery.of(context).size.width / 3; + if (_myProvider.shuffling) { content = _buildShufflingIndicatorWidget(); } else { if (_myProvider.image == '') { - content = _buildImageSelector(_myProvider); + content = _buildImageSelector(_myProvider, _selectorImageSize); } else { content = _buildGameWidget(_myProvider); } } + List<Widget> menuActions = [ + IconButton( + icon: const Icon(Icons.shuffle), + onPressed: () => shuffleImages(_myProvider), + ), + _buildTilesetSizeSelector(_myProvider), + ]; + + List<Widget> gameActions = [ + IconButton( + icon: const Icon(Icons.arrow_left_outlined), + onPressed: () => resetGame(_myProvider), + ) + ]; + return Scaffold( appBar: AppBar( title: Text('Puzzle'), - actions: <Widget>[ - _myProvider.image == '' - ? Text('') - : IconButton( - icon: const Icon(Icons.arrow_left_outlined), - onPressed: () => resetGame(_myProvider), - ) - , - _myProvider.image == '' ? _buildTilesetSizeSelector(_myProvider) : Text(''), - ], + actions: _myProvider.image == '' ? menuActions : gameActions, ), body: SafeArea( child: Center(