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

Merge branch '11-preload-images' into 'master'

Resolve "Preload images"

Closes #11

See merge request !10
parents c0cd82b0 565e422d
No related branches found
No related tags found
1 merge request!10Resolve "Preload images"
Pipeline #1855 passed
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.8
app.versionCode=8
app.versionName=0.0.9
app.versionCode=9
Preload game images
Préchargement des images du jeu
......@@ -21,6 +21,7 @@ class Data extends ChangeNotifier {
String _skinDefault = 'default';
// Game data
bool _assetsPreloaded = false;
bool _gameRunning = false;
bool _isBoardMined = false;
int _minesCount = 0;
......@@ -117,6 +118,11 @@ class Data extends ChangeNotifier {
notifyListeners();
}
bool get assetsPreloaded => _assetsPreloaded;
void updateAssetsPreloaded(bool assetsPreloaded) {
_assetsPreloaded = assetsPreloaded;
}
bool get gameRunning => _gameRunning;
void updateGameRunning(bool gameRunning) {
_gameRunning = gameRunning;
......
......@@ -22,10 +22,61 @@ class _HomeState extends State<Home> {
myProvider.initParametersValues();
}
List getImagesAssets(Data myProvider) {
List assets = [];
List gameImages = [
'button_back',
'button_start',
'game_fail',
'game_win',
];
myProvider.availableDifficultyLevels.forEach(
(difficulty) => gameImages.add('difficulty_' + difficulty)
);
myProvider.availableSizes.forEach(
(size) => gameImages.add('size_' + size)
);
gameImages.forEach(
(image) => assets.add('assets/icons/' + image + '.png')
);
List skinImages = [
'button_mark_mine_off',
'button_mark_mine_on',
'tile_flag_ko',
'tile_flag_ok',
'tile_flag',
'tile_mine_not_found',
'tile_mine',
'tile_unknown',
];
for (int value = 0; value < 9; value++) {
skinImages.add('tile_' + value.toString());
}
skinImages.forEach(
(image) => assets.add('assets/skins/default_' + image + '.png')
);
assets.add('assets/skins/empty.png');
return assets;
}
@override
Widget build(BuildContext context) {
Data myProvider = Provider.of<Data>(context);
if (!myProvider.assetsPreloaded) {
List assets = getImagesAssets(myProvider);
assets.forEach(
(asset) => precacheImage(AssetImage(asset), context)
);
myProvider.updateAssetsPreloaded(true);
}
List<Widget> menuActions = [];
if (myProvider.gameRunning) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment