fix: precache images

pull/252/head
arturplaczek 3 years ago
parent 774fdf980d
commit 03c8134005

@ -44,7 +44,7 @@ class PinballGamePage extends StatelessWidget {
...game.preLoadAssets(), ...game.preLoadAssets(),
pinballAudio.load(), pinballAudio.load(),
...BonusAnimation.loadAssets(), ...BonusAnimation.loadAssets(),
...SelectedCharacter.loadAssets(), ...SelectedCharacter.loadAssets(context),
...StarAnimation.loadAssets(), ...StarAnimation.loadAssets(),
]; ];

@ -24,7 +24,7 @@ class SelectedCharacter extends StatefulWidget {
State<SelectedCharacter> createState() => _SelectedCharacterState(); State<SelectedCharacter> createState() => _SelectedCharacterState();
/// Returns a list of assets to be loaded. /// Returns a list of assets to be loaded.
static List<Future> loadAssets() { static List<Future> loadAssets(BuildContext context) {
Flame.images.prefix = ''; Flame.images.prefix = '';
const dashTheme = DashTheme(); const dashTheme = DashTheme();
@ -41,6 +41,10 @@ class SelectedCharacter extends StatefulWidget {
Flame.images.load(androidTheme.background.keyName), Flame.images.load(androidTheme.background.keyName),
Flame.images.load(dinoTheme.background.keyName), Flame.images.load(dinoTheme.background.keyName),
Flame.images.load(sparkyTheme.background.keyName), Flame.images.load(sparkyTheme.background.keyName),
precacheImage(AssetImage(dashTheme.background.keyName), context),
precacheImage(AssetImage(androidTheme.background.keyName), context),
precacheImage(AssetImage(dinoTheme.background.keyName), context),
precacheImage(AssetImage(sparkyTheme.background.keyName), context),
]; ];
} }
} }

@ -2,13 +2,17 @@
import 'package:bloc_test/bloc_test.dart'; import 'package:bloc_test/bloc_test.dart';
import 'package:flame/flame.dart'; import 'package:flame/flame.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:pinball/select_character/select_character.dart'; import 'package:pinball/select_character/select_character.dart';
import 'package:pinball_flame/pinball_flame.dart'; import 'package:pinball_flame/pinball_flame.dart';
import 'package:pinball_theme/pinball_theme.dart'; import 'package:pinball_theme/pinball_theme.dart';
import '../../helpers/helpers.dart'; import '../../helpers/helpers.dart';
class MockBuildContext extends Mock implements BuildContext {}
void main() { void main() {
TestWidgetsFlutterBinding.ensureInitialized(); TestWidgetsFlutterBinding.ensureInitialized();
@ -31,7 +35,7 @@ void main() {
group('SelectedCharacter', () { group('SelectedCharacter', () {
testWidgets('loadAssets method returns list of futures', (tester) async { testWidgets('loadAssets method returns list of futures', (tester) async {
expect(SelectedCharacter.loadAssets(), isList); expect(SelectedCharacter.loadAssets(MockBuildContext()), isList);
}); });
testWidgets('renders selected character', (tester) async { testWidgets('renders selected character', (tester) async {

Loading…
Cancel
Save