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

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

Resolve "Upgrade flutter framework and dependencies"

Closes #30

See merge request !30
parents b99556d3 e289c0cf
No related branches found
No related tags found
1 merge request!30Resolve "Upgrade flutter framework and dependencies"
Pipeline #3494 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=1.2.20 app.versionName=1.2.21
app.versionCode=26 app.versionCode=27
Upgrade Flutter framework and dependencies, clean some code
Mise à jour du framework Flutter et de ses dépendances, nettoyage de code
...@@ -16,7 +16,8 @@ class MyApp extends StatelessWidget { ...@@ -16,7 +16,8 @@ class MyApp extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ChangeNotifierProvider( return ChangeNotifierProvider(
create: (BuildContext context) => Data(), create: (BuildContext context) => Data(),
child: Consumer<Data>(builder: (context, data, child) { child: Consumer<Data>(
builder: (context, data, child) {
return MaterialApp( return MaterialApp(
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
theme: ThemeData( theme: ThemeData(
...@@ -28,7 +29,8 @@ class MyApp extends StatelessWidget { ...@@ -28,7 +29,8 @@ class MyApp extends StatelessWidget {
Home.id: (context) => Home(), Home.id: (context) => Home(),
}, },
); );
}), },
),
); );
} }
} }
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'dart:math';
import 'dart:async'; import 'dart:async';
import '../provider/data.dart'; import '../provider/data.dart';
...@@ -11,10 +10,8 @@ import '../utils/random_pick_letter.dart'; ...@@ -11,10 +10,8 @@ import '../utils/random_pick_letter.dart';
class Home extends StatelessWidget { class Home extends StatelessWidget {
static const String id = 'home'; static const String id = 'home';
String _randomLetter = ''; static Timer _timer;
String _randomCategory = ''; static int _countdownStart = 10;
Timer _timer;
int _countdownStart = 10;
Future<void> startMiniGame(Data myProvider) async { Future<void> startMiniGame(Data myProvider) async {
if (myProvider.countdown <= 0) { if (myProvider.countdown <= 0) {
...@@ -44,7 +41,6 @@ class Home extends StatelessWidget { ...@@ -44,7 +41,6 @@ class Home extends StatelessWidget {
); );
} }
@override
void dispose() { void dispose() {
_timer.cancel(); _timer.cancel();
} }
...@@ -56,11 +52,8 @@ class Home extends StatelessWidget { ...@@ -56,11 +52,8 @@ class Home extends StatelessWidget {
do { do {
randomPickCategory = RandomPickCategory(); randomPickCategory = RandomPickCategory();
await randomPickCategory.init(); await randomPickCategory.init();
if ( if (randomPickCategory.category != null &&
randomPickCategory.category != null !myProvider.isCategoryRecentlyPicked(randomPickCategory.category)) {
&&
!myProvider.isCategoryRecentlyPicked(randomPickCategory.category)
) {
myProvider.updateCategory(randomPickCategory.category); myProvider.updateCategory(randomPickCategory.category);
myProvider.setSearchingCategory(false); myProvider.setSearchingCategory(false);
break; break;
...@@ -76,11 +69,8 @@ class Home extends StatelessWidget { ...@@ -76,11 +69,8 @@ class Home extends StatelessWidget {
do { do {
randomPickLetter = RandomPickLetter(); randomPickLetter = RandomPickLetter();
await randomPickLetter.init(); await randomPickLetter.init();
if ( if (randomPickLetter.letter != null &&
randomPickLetter.letter != null !myProvider.isLetterRecentlyPicked(randomPickLetter.letter)) {
&&
!myProvider.isLetterRecentlyPicked(randomPickLetter.letter)
) {
myProvider.updateLetter(randomPickLetter.letter); myProvider.updateLetter(randomPickLetter.letter);
myProvider.setSearchingLetter(false); myProvider.setSearchingLetter(false);
break; break;
...@@ -95,7 +85,8 @@ class Home extends StatelessWidget { ...@@ -95,7 +85,8 @@ class Home extends StatelessWidget {
return hslDark.toColor(); return hslDark.toColor();
} }
Container mainLetterButtonContainer(Data myProvider, Color backgroundColor, double borderWidth) { Container mainLetterButtonContainer(
Data myProvider, Color backgroundColor, double borderWidth) {
Color borderColor = darken(backgroundColor); Color borderColor = darken(backgroundColor);
return Container( return Container(
...@@ -109,7 +100,7 @@ class Home extends StatelessWidget { ...@@ -109,7 +100,7 @@ class Home extends StatelessWidget {
width: borderWidth, width: borderWidth,
), ),
), ),
child: FlatButton( child: TextButton(
onPressed: () => pickLetter(myProvider), onPressed: () => pickLetter(myProvider),
child: Text( child: Text(
myProvider.letter == '' ? "🔀" : myProvider.letter, myProvider.letter == '' ? "🔀" : myProvider.letter,
...@@ -160,7 +151,8 @@ class Home extends StatelessWidget { ...@@ -160,7 +151,8 @@ class Home extends StatelessWidget {
); );
} }
Container _buildPickedLetterContainer(Data myProvider, Color backgroundColor, double borderWidth) { Container _buildPickedLetterContainer(
Data myProvider, Color backgroundColor, double borderWidth) {
int previousLettersCountToShow = 3; int previousLettersCountToShow = 3;
List<Widget> cells = []; List<Widget> cells = [];
...@@ -169,40 +161,38 @@ class Home extends StatelessWidget { ...@@ -169,40 +161,38 @@ class Home extends StatelessWidget {
for (var i = 0; i < previousLettersCountToShow; i++) { for (var i = 0; i < previousLettersCountToShow; i++) {
cells.add(TableCell( cells.add(TableCell(
verticalAlignment: TableCellVerticalAlignment.middle, verticalAlignment: TableCellVerticalAlignment.middle,
child: previousLetterBlockContainer(myProvider, previousLettersCountToShow - i, true) child: previousLetterBlockContainer(myProvider, previousLettersCountToShow - i, true),
)); ));
} }
// Add current letter block // Add current letter block
cells.add(TableCell( cells.add(TableCell(
verticalAlignment: TableCellVerticalAlignment.middle, verticalAlignment: TableCellVerticalAlignment.middle,
child: mainLetterButtonContainer(myProvider, backgroundColor, borderWidth) child: mainLetterButtonContainer(myProvider, backgroundColor, borderWidth),
)); ));
// Pad with empty blocks to keep symetrical layout // Pad with empty blocks to keep symetrical layout
for (var i = 0; i < previousLettersCountToShow; i++) { for (var i = 0; i < previousLettersCountToShow; i++) {
cells.add(TableCell( cells.add(TableCell(
verticalAlignment: TableCellVerticalAlignment.middle, verticalAlignment: TableCellVerticalAlignment.middle,
child: previousLetterBlockContainer(myProvider, i + 1, false) child: previousLetterBlockContainer(myProvider, i + 1, false),
)); ));
} }
return Container( return Container(
margin: EdgeInsets.all(2), margin: EdgeInsets.all(2),
padding: EdgeInsets.all(2), padding: EdgeInsets.all(2),
child: Table( child: Table(
defaultColumnWidth: IntrinsicColumnWidth(), defaultColumnWidth: IntrinsicColumnWidth(),
children: [ children: [
TableRow( TableRow(children: cells),
children: cells ],
), ),
]
)
); );
} }
Container _buildPickedCategoryContainer(Data myProvider, Color backgroundColor, double borderWidth) { Container _buildPickedCategoryContainer(
Data myProvider, Color backgroundColor, double borderWidth) {
Color borderColor = darken(backgroundColor); Color borderColor = darken(backgroundColor);
return Container( return Container(
...@@ -221,7 +211,7 @@ class Home extends StatelessWidget { ...@@ -221,7 +211,7 @@ class Home extends StatelessWidget {
width: borderWidth, width: borderWidth,
), ),
), ),
child: FlatButton( child: TextButton(
onPressed: () => pickCategory(myProvider), onPressed: () => pickCategory(myProvider),
child: Text( child: Text(
myProvider.category == '' ? "🔀" : myProvider.category, myProvider.category == '' ? "🔀" : myProvider.category,
...@@ -239,7 +229,8 @@ class Home extends StatelessWidget { ...@@ -239,7 +229,8 @@ class Home extends StatelessWidget {
); );
} }
Container _buildMiniGameContainer(Data myProvider, Color backgroundColor, double borderWidth) { Container _buildMiniGameContainer(
Data myProvider, Color backgroundColor, double borderWidth) {
Color borderColor = darken(backgroundColor); Color borderColor = darken(backgroundColor);
Color countDownColor = Colors.black; Color countDownColor = Colors.black;
...@@ -263,7 +254,7 @@ class Home extends StatelessWidget { ...@@ -263,7 +254,7 @@ class Home extends StatelessWidget {
width: borderWidth, width: borderWidth,
), ),
), ),
child: FlatButton( child: TextButton(
onPressed: (myProvider.countdown >= 0) ? null : () => startMiniGame(myProvider), onPressed: (myProvider.countdown >= 0) ? null : () => startMiniGame(myProvider),
child: Text( child: Text(
(myProvider.countdown >= 0) ? myProvider.countdown.toString() : '🎲', (myProvider.countdown >= 0) ? myProvider.countdown.toString() : '🎲',
......
...@@ -19,7 +19,6 @@ class RandomPickCategory { ...@@ -19,7 +19,6 @@ class RandomPickCategory {
jsonString = await rootBundle.loadString('assets/files/categories-fr.json'); jsonString = await rootBundle.loadString('assets/files/categories-fr.json');
final jsonResponse = await json.decode(jsonString); final jsonResponse = await json.decode(jsonString);
var categoryList = jsonResponse[jsonResponse.keys.toList().join()]; var categoryList = jsonResponse[jsonResponse.keys.toList().join()];
int randomCategoryIndex = random.nextInt(categoryList.length);
String category = categoryList[random.nextInt(categoryList.length)]; String category = categoryList[random.nextInt(categoryList.length)];
_category = category ?? 'UNEXPECTED ERROR'; _category = category ?? 'UNEXPECTED ERROR';
} catch (e) { } catch (e) {
......
import 'dart:async'; import 'dart:async';
import 'dart:convert';
import 'package:flutter/services.dart';
import 'dart:math' show Random; import 'dart:math' show Random;
class RandomPickLetter { class RandomPickLetter {
......
...@@ -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,7 +42,7 @@ packages: ...@@ -49,7 +42,7 @@ 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"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
...@@ -66,21 +59,21 @@ packages: ...@@ -66,21 +59,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:
...@@ -94,7 +87,7 @@ packages: ...@@ -94,7 +87,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"
provider: provider:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -113,7 +106,7 @@ packages: ...@@ -113,7 +106,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:
...@@ -134,21 +127,21 @@ packages: ...@@ -134,21 +127,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:
......
// 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:petitbac/main.dart';
void main() {
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment