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
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.4
app.versionCode=4
app.versionName=0.0.5
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
FLUTTER_BUILD_NAME=1.0.0
FLUTTER_BUILD_NUMBER=1
EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386
EXCLUDED_ARCHS[sdk=iphoneos*]=armv7
DART_OBFUSCATION=false
TRACK_WIDGET_CREATION=false
TRACK_WIDGET_CREATION=true
TREE_SHAKE_ICONS=false
PACKAGE_CONFIG=.dart_tool/package_config.json
......@@ -8,6 +8,6 @@ export "FLUTTER_BUILD_DIR=build"
export "FLUTTER_BUILD_NAME=1.0.0"
export "FLUTTER_BUILD_NUMBER=1"
export "DART_OBFUSCATION=false"
export "TRACK_WIDGET_CREATION=false"
export "TRACK_WIDGET_CREATION=true"
export "TREE_SHAKE_ICONS=false"
export "PACKAGE_CONFIG=.dart_tool/package_config.json"
import 'dart:math';
import 'package:flutter/material.dart';
import '../provider/data.dart';
import '../utils/game_utils.dart';
class Game {
static Container buildGameWidget(Data myProvider) {
bool gameIsFinished = myProvider.isGameFinished();
......@@ -25,9 +22,7 @@ class Game {
Container(
height: 150,
width: double.maxFinite,
child: gameIsFinished
? Game.buildEndGameMessage(myProvider)
: Text('CONTROLS'),
child: gameIsFinished ? Game.buildEndGameMessage(myProvider) : Text('CONTROLS'),
),
],
),
......@@ -39,8 +34,7 @@ class Game {
children: [
TableRow(
children: [
Column(
children: [
Column(children: [
Text(
'SCORE',
style: TextStyle(
......@@ -57,10 +51,8 @@ class Game {
color: Colors.grey,
),
),
]
),
Column(
children: [
]),
Column(children: [
Text(
'INFOS',
style: TextStyle(
......@@ -69,16 +61,15 @@ class Game {
color: Colors.green,
),
),
]
),
]),
],
),
],
);
}
static FlatButton buildRestartGameButton(Data myProvider) {
return FlatButton(
static TextButton buildRestartGameButton(Data myProvider) {
return TextButton(
child: Container(
child: Image(
image: AssetImage('assets/icons/button_back.png'),
......@@ -97,18 +88,13 @@ class Game {
decorationImageAssetName = 'assets/icons/game_fail.png';
}
Image decorationImage = Image(
image: AssetImage(decorationImageAssetName),
fit: BoxFit.fill
);
Image decorationImage =
Image(image: AssetImage(decorationImageAssetName), fit: BoxFit.fill);
return Container(
margin: EdgeInsets.all(2),
padding: EdgeInsets.all(2),
child: Table(
defaultColumnWidth: IntrinsicColumnWidth(),
children: [
child: Table(defaultColumnWidth: IntrinsicColumnWidth(), children: [
TableRow(
children: [
Column(children: [decorationImage]),
......@@ -116,9 +102,6 @@ class Game {
Column(children: [decorationImage]),
],
),
]
)
);
]));
}
}
......@@ -4,7 +4,6 @@ import '../provider/data.dart';
import '../utils/game_utils.dart';
class Parameters {
static Container buildParametersSelector(Data myProvider) {
return Container(
child: Column(
......@@ -34,28 +33,19 @@ class Parameters {
}
static Container buildStartGameButton(Data myProvider) {
Column decorationImage = Column(
children: [
Image(
image: AssetImage('assets/icons/game_win.png'),
fit: BoxFit.fill
),
]
);
Column decorationImage = Column(children: [
Image(image: AssetImage('assets/icons/game_win.png'), fit: BoxFit.fill),
]);
return Container(
margin: EdgeInsets.all(2),
padding: EdgeInsets.all(2),
child: Table(
defaultColumnWidth: IntrinsicColumnWidth(),
children: [
child: Table(defaultColumnWidth: IntrinsicColumnWidth(), children: [
TableRow(
children: [
decorationImage,
Column(
children: [
FlatButton(
Column(children: [
TextButton(
child: Container(
child: Image(
image: AssetImage('assets/icons/button_start.png'),
......@@ -64,14 +54,11 @@ class Parameters {
),
onPressed: () => GameUtils.startGame(myProvider),
),
]
),
]),
decorationImage,
],
),
]
)
);
]));
}
static Widget buildParameterSelector(Data myProvider, String parameterCode) {
......@@ -87,18 +74,17 @@ class Parameters {
TableRow(
children: [
for (var index = 0; index < availableValues.length; index++)
Column(
children: [
Column(children: [
_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();
bool isActive = (parameterValue == currentValue);
......@@ -123,5 +109,4 @@ class Parameters {
onPressed: () => myProvider.setParameterValue(parameterCode, parameterValue),
);
}
}
......@@ -2,7 +2,6 @@ import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
class Data extends ChangeNotifier {
// Configuration available values
List _availableLevelValues = ['easy', 'medium', 'hard'];
List _availableSkinValues = ['default', 'images'];
......@@ -28,6 +27,7 @@ class Data extends ChangeNotifier {
_parameterLevel = parameterLevel;
notifyListeners();
}
void updateParameterSkin(String parameterSkin) {
_parameterSkin = parameterSkin;
notifyListeners();
......@@ -35,29 +35,43 @@ class Data extends ChangeNotifier {
String getParameterValue(String parameterCode) {
switch (parameterCode) {
case 'level': { return _parameterLevel; }
break;
case 'skin': { return _parameterSkin; }
break;
case 'level':
{
return _parameterLevel;
}
case 'skin':
{
return _parameterSkin;
}
}
return '';
}
List getParameterAvailableValues(String parameterCode) {
switch (parameterCode) {
case 'level': { return _availableLevelValues; }
break;
case 'skin': { return _availableSkinValues; }
break;
case 'level':
{
return _availableLevelValues;
}
case 'skin':
{
return _availableSkinValues;
}
}
return [];
}
setParameterValue(String parameterCode, String parameterValue) async {
switch (parameterCode) {
case 'level': { updateParameterLevel(parameterValue); }
case 'level':
{
updateParameterLevel(parameterValue);
}
break;
case 'skin': { updateParameterSkin(parameterValue); }
case 'skin':
{
updateParameterSkin(parameterValue);
}
break;
}
final prefs = await SharedPreferences.getInstance();
......@@ -91,5 +105,4 @@ class Data extends ChangeNotifier {
_gameWon = false;
notifyListeners();
}
}
......@@ -31,7 +31,7 @@ class _HomeState extends State<Home> {
if (myProvider.gameIsRunning) {
menuActions = [
FlatButton(
TextButton(
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4),
......@@ -41,10 +41,7 @@ class _HomeState extends State<Home> {
),
),
margin: EdgeInsets.all(8),
child: Image(
image: AssetImage('assets/icons/button_back.png'),
fit: BoxFit.fill
),
child: Image(image: AssetImage('assets/icons/button_back.png'), fit: BoxFit.fill),
),
onPressed: () => toast('Long press to quit game...'),
onLongPress: () => GameUtils.resetGame(myProvider),
......@@ -60,9 +57,7 @@ class _HomeState extends State<Home> {
child: Center(
child: myProvider.gameIsRunning
? Game.buildGameWidget(myProvider)
: Parameters.buildParametersSelector(myProvider)
),
)
);
: Parameters.buildParametersSelector(myProvider)),
));
}
}
......@@ -7,7 +7,7 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.8.2"
version: "2.9.0"
boolean_selector:
dependency: transitive
description:
......@@ -21,21 +21,14 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.1"
version: "1.2.1"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.1.1"
collection:
dependency: transitive
description:
......@@ -49,21 +42,21 @@ packages:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
version: "1.3.1"
ffi:
dependency: transitive
description:
name: ffi
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.0.1"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.2"
version: "6.1.4"
flutter:
dependency: "direct main"
description: flutter
......@@ -92,21 +85,21 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.11"
version: "0.12.12"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.4"
version: "0.1.5"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
version: "1.8.0"
nested:
dependency: transitive
description:
......@@ -127,7 +120,7 @@ packages:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.1"
version: "1.8.2"
path_provider_linux:
dependency: transitive
description:
......@@ -148,7 +141,7 @@ packages:
name: path_provider_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
version: "2.1.3"
platform:
dependency: transitive
description:
......@@ -162,7 +155,7 @@ packages:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.2"
version: "2.1.3"
process:
dependency: transitive
description:
......@@ -190,7 +183,7 @@ packages:
name: shared_preferences_android
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.12"
version: "2.0.13"
shared_preferences_ios:
dependency: transitive
description:
......@@ -218,7 +211,7 @@ packages:
name: shared_preferences_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.1.0"
shared_preferences_web:
dependency: transitive
description:
......@@ -244,7 +237,7 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.2"
version: "1.9.0"
stack_trace:
dependency: transitive
description:
......@@ -265,21 +258,21 @@ packages:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.1.1"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.9"
version: "0.4.12"
vector_math:
dependency: transitive
description:
......@@ -293,14 +286,14 @@ packages:
name: win32
url: "https://pub.dartlang.org"
source: hosted
version: "2.7.0"
version: "3.0.0"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0+1"
version: "0.2.0+2"
sdks:
dart: ">=2.17.0 <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