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

Update framework and dependencies, clean some code

parent dcd11608
No related branches found
No related tags found
1 merge request!5Resolve "Upgrade flutter framework and dependencies"
Pipeline #3458 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.4 app.versionName=0.0.5
app.versionCode=4 app.versionCode=5
Upgrade Flutter framework and dependencies, clean some code
Mise à jour du framework Flutter et de ses dépendances, nettoyage de code
...@@ -7,7 +7,8 @@ FLUTTER_BUILD_DIR=build ...@@ -7,7 +7,8 @@ FLUTTER_BUILD_DIR=build
FLUTTER_BUILD_NAME=1.0.0 FLUTTER_BUILD_NAME=1.0.0
FLUTTER_BUILD_NUMBER=1 FLUTTER_BUILD_NUMBER=1
EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386 EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386
EXCLUDED_ARCHS[sdk=iphoneos*]=armv7
DART_OBFUSCATION=false DART_OBFUSCATION=false
TRACK_WIDGET_CREATION=false TRACK_WIDGET_CREATION=true
TREE_SHAKE_ICONS=false TREE_SHAKE_ICONS=false
PACKAGE_CONFIG=.dart_tool/package_config.json PACKAGE_CONFIG=.dart_tool/package_config.json
...@@ -8,6 +8,6 @@ export "FLUTTER_BUILD_DIR=build" ...@@ -8,6 +8,6 @@ export "FLUTTER_BUILD_DIR=build"
export "FLUTTER_BUILD_NAME=1.0.0" export "FLUTTER_BUILD_NAME=1.0.0"
export "FLUTTER_BUILD_NUMBER=1" export "FLUTTER_BUILD_NUMBER=1"
export "DART_OBFUSCATION=false" export "DART_OBFUSCATION=false"
export "TRACK_WIDGET_CREATION=false" export "TRACK_WIDGET_CREATION=true"
export "TREE_SHAKE_ICONS=false" export "TREE_SHAKE_ICONS=false"
export "PACKAGE_CONFIG=.dart_tool/package_config.json" export "PACKAGE_CONFIG=.dart_tool/package_config.json"
import 'dart:math';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../provider/data.dart'; import '../provider/data.dart';
import '../utils/game_utils.dart'; import '../utils/game_utils.dart';
class Game { class Game {
static Container buildGameWidget(Data myProvider) { static Container buildGameWidget(Data myProvider) {
bool gameIsFinished = myProvider.isGameFinished(); bool gameIsFinished = myProvider.isGameFinished();
...@@ -25,9 +22,7 @@ class Game { ...@@ -25,9 +22,7 @@ class Game {
Container( Container(
height: 150, height: 150,
width: double.maxFinite, width: double.maxFinite,
child: gameIsFinished child: gameIsFinished ? Game.buildEndGameMessage(myProvider) : Text('CONTROLS'),
? Game.buildEndGameMessage(myProvider)
: Text('CONTROLS'),
), ),
], ],
), ),
...@@ -39,8 +34,7 @@ class Game { ...@@ -39,8 +34,7 @@ class Game {
children: [ children: [
TableRow( TableRow(
children: [ children: [
Column( Column(children: [
children: [
Text( Text(
'SCORE', 'SCORE',
style: TextStyle( style: TextStyle(
...@@ -57,10 +51,8 @@ class Game { ...@@ -57,10 +51,8 @@ class Game {
color: Colors.grey, color: Colors.grey,
), ),
), ),
] ]),
), Column(children: [
Column(
children: [
Text( Text(
'INFOS', 'INFOS',
style: TextStyle( style: TextStyle(
...@@ -69,16 +61,15 @@ class Game { ...@@ -69,16 +61,15 @@ class Game {
color: Colors.green, color: Colors.green,
), ),
), ),
] ]),
),
], ],
), ),
], ],
); );
} }
static FlatButton buildRestartGameButton(Data myProvider) { static TextButton buildRestartGameButton(Data myProvider) {
return FlatButton( return TextButton(
child: Container( child: Container(
child: Image( child: Image(
image: AssetImage('assets/icons/button_back.png'), image: AssetImage('assets/icons/button_back.png'),
...@@ -97,18 +88,13 @@ class Game { ...@@ -97,18 +88,13 @@ class Game {
decorationImageAssetName = 'assets/icons/game_fail.png'; decorationImageAssetName = 'assets/icons/game_fail.png';
} }
Image decorationImage = Image( Image decorationImage =
image: AssetImage(decorationImageAssetName), Image(image: AssetImage(decorationImageAssetName), fit: BoxFit.fill);
fit: BoxFit.fill
);
return Container( return Container(
margin: EdgeInsets.all(2), margin: EdgeInsets.all(2),
padding: EdgeInsets.all(2), padding: EdgeInsets.all(2),
child: Table(defaultColumnWidth: IntrinsicColumnWidth(), children: [
child: Table(
defaultColumnWidth: IntrinsicColumnWidth(),
children: [
TableRow( TableRow(
children: [ children: [
Column(children: [decorationImage]), Column(children: [decorationImage]),
...@@ -116,9 +102,6 @@ class Game { ...@@ -116,9 +102,6 @@ class Game {
Column(children: [decorationImage]), Column(children: [decorationImage]),
], ],
), ),
] ]));
)
);
} }
} }
...@@ -4,7 +4,6 @@ import '../provider/data.dart'; ...@@ -4,7 +4,6 @@ import '../provider/data.dart';
import '../utils/game_utils.dart'; import '../utils/game_utils.dart';
class Parameters { class Parameters {
static Container buildParametersSelector(Data myProvider) { static Container buildParametersSelector(Data myProvider) {
return Container( return Container(
child: Column( child: Column(
...@@ -34,28 +33,19 @@ class Parameters { ...@@ -34,28 +33,19 @@ class Parameters {
} }
static Container buildStartGameButton(Data myProvider) { static Container buildStartGameButton(Data myProvider) {
Column decorationImage = Column( Column decorationImage = Column(children: [
children: [ Image(image: AssetImage('assets/icons/game_win.png'), fit: BoxFit.fill),
Image( ]);
image: AssetImage('assets/icons/game_win.png'),
fit: BoxFit.fill
),
]
);
return Container( return Container(
margin: EdgeInsets.all(2), margin: EdgeInsets.all(2),
padding: EdgeInsets.all(2), padding: EdgeInsets.all(2),
child: Table(defaultColumnWidth: IntrinsicColumnWidth(), children: [
child: Table(
defaultColumnWidth: IntrinsicColumnWidth(),
children: [
TableRow( TableRow(
children: [ children: [
decorationImage, decorationImage,
Column( Column(children: [
children: [ TextButton(
FlatButton(
child: Container( child: Container(
child: Image( child: Image(
image: AssetImage('assets/icons/button_start.png'), image: AssetImage('assets/icons/button_start.png'),
...@@ -64,14 +54,11 @@ class Parameters { ...@@ -64,14 +54,11 @@ class Parameters {
), ),
onPressed: () => GameUtils.startGame(myProvider), onPressed: () => GameUtils.startGame(myProvider),
), ),
] ]),
),
decorationImage, decorationImage,
], ],
), ),
] ]));
)
);
} }
static Widget buildParameterSelector(Data myProvider, String parameterCode) { static Widget buildParameterSelector(Data myProvider, String parameterCode) {
...@@ -87,18 +74,17 @@ class Parameters { ...@@ -87,18 +74,17 @@ class Parameters {
TableRow( TableRow(
children: [ children: [
for (var index = 0; index < availableValues.length; index++) for (var index = 0; index < availableValues.length; index++)
Column( Column(children: [
children: [
_buildParameterButton(myProvider, parameterCode, availableValues[index]) _buildParameterButton(myProvider, parameterCode, availableValues[index])
] ]),
),
], ],
), ),
], ],
); );
} }
static TextButton _buildParameterButton(Data myProvider, String parameterCode, String parameterValue) { static TextButton _buildParameterButton(
Data myProvider, String parameterCode, String parameterValue) {
String currentValue = myProvider.getParameterValue(parameterCode).toString(); String currentValue = myProvider.getParameterValue(parameterCode).toString();
bool isActive = (parameterValue == currentValue); bool isActive = (parameterValue == currentValue);
...@@ -123,5 +109,4 @@ class Parameters { ...@@ -123,5 +109,4 @@ class Parameters {
onPressed: () => myProvider.setParameterValue(parameterCode, parameterValue), onPressed: () => myProvider.setParameterValue(parameterCode, parameterValue),
); );
} }
} }
...@@ -2,7 +2,6 @@ import 'package:flutter/foundation.dart'; ...@@ -2,7 +2,6 @@ import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
class Data extends ChangeNotifier { class Data extends ChangeNotifier {
// Configuration available values // Configuration available values
List _availableLevelValues = ['easy', 'medium', 'hard']; List _availableLevelValues = ['easy', 'medium', 'hard'];
List _availableSkinValues = ['default', 'images']; List _availableSkinValues = ['default', 'images'];
...@@ -28,6 +27,7 @@ class Data extends ChangeNotifier { ...@@ -28,6 +27,7 @@ class Data extends ChangeNotifier {
_parameterLevel = parameterLevel; _parameterLevel = parameterLevel;
notifyListeners(); notifyListeners();
} }
void updateParameterSkin(String parameterSkin) { void updateParameterSkin(String parameterSkin) {
_parameterSkin = parameterSkin; _parameterSkin = parameterSkin;
notifyListeners(); notifyListeners();
...@@ -35,29 +35,43 @@ class Data extends ChangeNotifier { ...@@ -35,29 +35,43 @@ class Data extends ChangeNotifier {
String getParameterValue(String parameterCode) { String getParameterValue(String parameterCode) {
switch (parameterCode) { switch (parameterCode) {
case 'level': { return _parameterLevel; } case 'level':
break; {
case 'skin': { return _parameterSkin; } return _parameterLevel;
break; }
case 'skin':
{
return _parameterSkin;
}
} }
return ''; return '';
} }
List getParameterAvailableValues(String parameterCode) { List getParameterAvailableValues(String parameterCode) {
switch (parameterCode) { switch (parameterCode) {
case 'level': { return _availableLevelValues; } case 'level':
break; {
case 'skin': { return _availableSkinValues; } return _availableLevelValues;
break; }
case 'skin':
{
return _availableSkinValues;
}
} }
return []; return [];
} }
setParameterValue(String parameterCode, String parameterValue) async { setParameterValue(String parameterCode, String parameterValue) async {
switch (parameterCode) { switch (parameterCode) {
case 'level': { updateParameterLevel(parameterValue); } case 'level':
{
updateParameterLevel(parameterValue);
}
break; break;
case 'skin': { updateParameterSkin(parameterValue); } case 'skin':
{
updateParameterSkin(parameterValue);
}
break; break;
} }
final prefs = await SharedPreferences.getInstance(); final prefs = await SharedPreferences.getInstance();
...@@ -91,5 +105,4 @@ class Data extends ChangeNotifier { ...@@ -91,5 +105,4 @@ class Data extends ChangeNotifier {
_gameWon = false; _gameWon = false;
notifyListeners(); notifyListeners();
} }
} }
...@@ -31,7 +31,7 @@ class _HomeState extends State<Home> { ...@@ -31,7 +31,7 @@ class _HomeState extends State<Home> {
if (myProvider.gameIsRunning) { if (myProvider.gameIsRunning) {
menuActions = [ menuActions = [
FlatButton( TextButton(
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4), borderRadius: BorderRadius.circular(4),
...@@ -41,10 +41,7 @@ class _HomeState extends State<Home> { ...@@ -41,10 +41,7 @@ class _HomeState extends State<Home> {
), ),
), ),
margin: EdgeInsets.all(8), margin: EdgeInsets.all(8),
child: Image( child: Image(image: AssetImage('assets/icons/button_back.png'), fit: BoxFit.fill),
image: AssetImage('assets/icons/button_back.png'),
fit: BoxFit.fill
),
), ),
onPressed: () => toast('Long press to quit game...'), onPressed: () => toast('Long press to quit game...'),
onLongPress: () => GameUtils.resetGame(myProvider), onLongPress: () => GameUtils.resetGame(myProvider),
...@@ -60,9 +57,7 @@ class _HomeState extends State<Home> { ...@@ -60,9 +57,7 @@ class _HomeState extends State<Home> {
child: Center( child: Center(
child: myProvider.gameIsRunning child: myProvider.gameIsRunning
? Game.buildGameWidget(myProvider) ? Game.buildGameWidget(myProvider)
: Parameters.buildParametersSelector(myProvider) : Parameters.buildParametersSelector(myProvider)),
), ));
)
);
} }
} }
...@@ -7,7 +7,7 @@ packages: ...@@ -7,7 +7,7 @@ packages:
name: async name: async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.8.2" version: "2.9.0"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
...@@ -21,21 +21,14 @@ packages: ...@@ -21,21 +21,14 @@ packages:
name: characters name: characters
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "1.2.1"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.1"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0" version: "1.1.1"
collection: collection:
dependency: transitive dependency: transitive
description: description:
...@@ -49,21 +42,21 @@ packages: ...@@ -49,21 +42,21 @@ packages:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0" version: "1.3.1"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.0" version: "2.0.1"
file: file:
dependency: transitive dependency: transitive
description: description:
name: file name: file
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.1.2" version: "6.1.4"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
...@@ -92,21 +85,21 @@ packages: ...@@ -92,21 +85,21 @@ packages:
name: matcher name: matcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.11" version: "0.12.12"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.4" version: "0.1.5"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.7.0" version: "1.8.0"
nested: nested:
dependency: transitive dependency: transitive
description: description:
...@@ -127,7 +120,7 @@ packages: ...@@ -127,7 +120,7 @@ packages:
name: path name: path
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.1" version: "1.8.2"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
...@@ -148,7 +141,7 @@ packages: ...@@ -148,7 +141,7 @@ packages:
name: path_provider_windows name: path_provider_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.1.3"
platform: platform:
dependency: transitive dependency: transitive
description: description:
...@@ -162,7 +155,7 @@ packages: ...@@ -162,7 +155,7 @@ packages:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.2" version: "2.1.3"
process: process:
dependency: transitive dependency: transitive
description: description:
...@@ -190,7 +183,7 @@ packages: ...@@ -190,7 +183,7 @@ packages:
name: shared_preferences_android name: shared_preferences_android
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.12" version: "2.0.13"
shared_preferences_ios: shared_preferences_ios:
dependency: transitive dependency: transitive
description: description:
...@@ -218,7 +211,7 @@ packages: ...@@ -218,7 +211,7 @@ packages:
name: shared_preferences_platform_interface name: shared_preferences_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.0" version: "2.1.0"
shared_preferences_web: shared_preferences_web:
dependency: transitive dependency: transitive
description: description:
...@@ -244,7 +237,7 @@ packages: ...@@ -244,7 +237,7 @@ packages:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.2" version: "1.9.0"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
...@@ -265,21 +258,21 @@ packages: ...@@ -265,21 +258,21 @@ packages:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0" version: "1.1.1"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "1.2.1"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.9" version: "0.4.12"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
...@@ -293,14 +286,14 @@ packages: ...@@ -293,14 +286,14 @@ packages:
name: win32 name: win32
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.7.0" version: "3.0.0"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
name: xdg_directories name: xdg_directories
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.0+1" version: "0.2.0+2"
sdks: sdks:
dart: ">=2.17.0 <3.0.0" dart: ">=2.17.0 <3.0.0"
flutter: ">=3.0.0" flutter: ">=3.0.0"
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility that Flutter provides. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:calculus/main.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(const MyApp());
// Verify that our counter starts at 0.
expect(find.text('0'), findsOneWidget);
expect(find.text('1'), findsNothing);
// Tap the '+' icon and trigger a frame.
await tester.tap(find.byIcon(Icons.add));
await tester.pump();
// Verify that our counter has incremented.
expect(find.text('0'), findsNothing);
expect(find.text('1'), findsOneWidget);
});
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment