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

Merge branch '7-upgrade-flutter-framework-and-dependencies' into 'master'

Resolve "Upgrade flutter framework and dependencies"

Closes #7

See merge request !5
parents dcd11608 4622aca0
No related branches found
No related tags found
1 merge request!5Resolve "Upgrade flutter framework and dependencies"
Pipeline #3499 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