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

Merge branch '59-use-flutter-lints' into 'master'

Resolve "Use flutter lints"

Closes #59

See merge request !55
parents 5470bb72 552ad84f
No related branches found
No related tags found
1 merge request!55Resolve "Use flutter lints"
Pipeline #5023 passed
Showing
with 79 additions and 72 deletions
include: package:flutter_lints/flutter.yaml
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=1.0.45
app.versionCode=46
app.versionName=1.0.46
app.versionCode=47
......@@ -24,39 +24,39 @@ class MenuItem {
class Menu {
static List<MenuItem> items = [
MenuItem(
const MenuItem(
code: 'bottom_nav_sample',
icon: const Icon(UniconsLine.image),
icon: Icon(UniconsLine.image),
page: DemoPage(),
),
MenuItem(
const MenuItem(
code: 'bottom_nav_api',
icon: const Icon(UniconsLine.globe),
icon: Icon(UniconsLine.globe),
page: ApiPage(),
),
MenuItem(
const MenuItem(
code: 'bottom_nav_camera',
icon: const Icon(UniconsLine.camera),
icon: Icon(UniconsLine.camera),
page: CameraPage(),
),
MenuItem(
const MenuItem(
code: 'bottom_nav_chart',
icon: const Icon(UniconsLine.pen),
icon: Icon(UniconsLine.pen),
page: GraphPage(),
),
MenuItem(
const MenuItem(
code: 'bottom_nav_game',
icon: const Icon(UniconsLine.star),
icon: Icon(UniconsLine.star),
page: GamePage(),
),
MenuItem(
const MenuItem(
code: 'bottom_nav_settings',
icon: const Icon(UniconsLine.setting),
icon: Icon(UniconsLine.setting),
page: SettingsPage(),
),
MenuItem(
const MenuItem(
code: 'bottom_nav_about',
icon: const Icon(UniconsLine.info_circle),
icon: Icon(UniconsLine.info_circle),
page: AboutPage(),
),
];
......
......@@ -27,7 +27,7 @@ class ApiDataCubit extends HydratedCubit<ApiDataState> {
}
}
}
print('emit new state: ' + stateAsString);
print('emit new state: $stateAsString');
emit(state);
}
......
......@@ -16,6 +16,7 @@ class ApiDataFetchInitial extends ApiDataState {}
class ApiDataFetchLoading extends ApiDataState {}
class ApiDataFetchLoaded extends ApiDataState {
@override
final ApiData data;
const ApiDataFetchLoaded({
......
......@@ -35,9 +35,9 @@ class SettingsCubit extends HydratedCubit<SettingsState> {
InterfaceType? interfaceType,
}) {
emit(SettingsState(
apiUrl: apiUrl != null ? apiUrl : state.apiUrl,
securityToken: securityToken != null ? securityToken : state.securityToken,
interfaceType: interfaceType != null ? interfaceType : state.interfaceType,
apiUrl: apiUrl ?? state.apiUrl,
securityToken: securityToken ?? state.securityToken,
interfaceType: interfaceType ?? state.interfaceType,
));
}
......
......@@ -63,7 +63,7 @@ class MyApp extends StatelessWidget {
child: MaterialApp(
title: 'Random application',
theme: appTheme,
home: SkeletonScreen(),
home: const SkeletonScreen(),
localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales,
locale: context.locale,
......
......@@ -21,13 +21,14 @@ class ApiData {
Map<String, dynamic>? toJson() {
return <String, dynamic>{
'number': this.number ?? 0,
'md5': this.md5 ?? '',
'updatedAt': this.updatedAt?.toString(),
'number': number ?? 0,
'md5': md5 ?? '',
'updatedAt': updatedAt?.toString(),
};
}
@override
String toString() {
return jsonEncode(this.toJson());
return jsonEncode(toJson());
}
}
......@@ -37,57 +37,58 @@ class Game {
}
void stop() {
this.isRunning = false;
this.isFinished = true;
isRunning = false;
isFinished = true;
}
GameCell getCell(int x, int y) {
return this.board.cells[y][x];
return board.cells[y][x];
}
int? getCellValue(int x, int y) {
return this.getCell(x, y).value;
return getCell(x, y).value;
}
void updateCellValue(int x, int y, int? value) {
this.board.cells[y][x].value = value;
board.cells[y][x].value = value;
}
void setRandomCellValue(int x, int y, GameSettings settings) {
final int maxValue = settings.colorsCount;
final rand = new Random();
final rand = Random();
int value = 1 + rand.nextInt(maxValue);
this.board.cells[y][x].value = value;
board.cells[y][x].value = value;
}
void increaseMovesCount() {
this.movesCount += 1;
movesCount += 1;
}
void increaseScore(int? count) {
this.score += (count ?? 0);
score += (count ?? 0);
}
@override
String toString() {
return 'Game(' + this.toJson().toString() + ')';
return 'Game(${toJson()})';
}
Map<String, dynamic>? toJson() {
return <String, dynamic>{
'board': this.board.toJson(),
'settings': this.settings.toJson(),
'isRunning': this.isRunning,
'isFinished': this.isFinished,
'availableBlocksCount': this.availableBlocksCount,
'movesCount': this.movesCount,
'score': this.score,
'board': board.toJson(),
'settings': settings.toJson(),
'isRunning': isRunning,
'isFinished': isFinished,
'availableBlocksCount': availableBlocksCount,
'movesCount': movesCount,
'score': score,
};
}
void dump() {
GameBoard.printGrid(this.board.cells);
print(this.settings.toJson());
print(this.toJson());
GameBoard.printGrid(board.cells);
print(settings.toJson());
print(toJson());
}
}
......@@ -19,7 +19,7 @@ class GameBoard {
final int boardSizeVertical = gameSettings.boardSize;
final int maxValue = gameSettings.colorsCount;
final rand = new Random();
final rand = Random();
List<List<GameCell>> grid = [];
for (var rowIndex = 0; rowIndex < boardSizeVertical; rowIndex++) {
......@@ -49,13 +49,14 @@ class GameBoard {
print('');
}
@override
String toString() {
return 'Board(' + this.toJson().toString() + ')';
return 'Board(${toJson()})';
}
Map<String, dynamic>? toJson() {
return <String, dynamic>{
'cells': this.cells.toString(),
'cells': cells.toString(),
};
}
}
......@@ -5,13 +5,14 @@ class GameCell {
this.value,
);
@override
String toString() {
return 'Cell(' + this.toJson().toString() + ')';
return 'Cell(${toJson()})';
}
Map<String, dynamic>? toJson() {
return <String, dynamic>{
'value': this.value,
'value': value,
};
}
}
......@@ -32,14 +32,15 @@ class GameSettings {
);
}
@override
String toString() {
return 'GameSettings(' + this.toJson().toString() + ')';
return 'GameSettings(${toJson()})';
}
Map<String, dynamic>? toJson() {
return <String, dynamic>{
'boardSize': this.boardSize,
'colorsCount': this.colorsCount,
'boardSize': boardSize,
'colorsCount': colorsCount,
};
}
}
......@@ -8,7 +8,7 @@ enum InterfaceType {
class InterfaceTypes {
static List<Widget> selectWidgets = <Widget>[
Text('interface_type_basic').tr(),
Text('interface_type_expert').tr(),
const Text('interface_type_basic').tr(),
const Text('interface_type_expert').tr(),
];
}
......@@ -10,10 +10,10 @@ class ApiService {
final String baseUrl = 'https://tools.harrault.fr/tools/api';
Future<Response?> getData() async {
String url = baseUrl + '/get.php';
String url = '$baseUrl/get.php';
try {
print('fetching api data... ' + url);
final Response? response = await _dio.get(url);
print('fetching api data... $url');
final Response response = await _dio.get(url);
print('ok got api response.');
print(response);
return response;
......
......@@ -8,7 +8,7 @@ class ApiRepository {
Future<ApiData> getApiData() async {
print('(getApiData) delayed API call...');
final response = await Future.delayed(Duration(milliseconds: 1000))
final response = await Future.delayed(const Duration(milliseconds: 1000))
.then((value) => apiService.getData());
if (response != null) {
print('(getApiData) got api response');
......
......@@ -30,7 +30,7 @@ class CellPainter extends CustomPainter {
const borderWidth = 0.05;
final Rect baseSquare = Rect.fromPoints(Offset(0, 0), Offset(size.width, size.height));
final Rect baseSquare = Rect.fromPoints(const Offset(0, 0), Offset(size.width, size.height));
final paintBaseSquare = Paint()
..style = PaintingStyle.fill
......
......@@ -35,14 +35,14 @@ class GraphPainter extends CustomPainter {
paintBackground.color = Colors.black;
paintBackground.style = PaintingStyle.fill;
final Rect rectBackground = Rect.fromPoints(Offset(0, 0), Offset(size.width, size.height));
final Rect rectBackground = Rect.fromPoints(const Offset(0, 0), Offset(size.width, size.height));
canvas.drawRect(rectBackground, paintBackground);
// Draw some lines
Paint paintLine = Paint();
paintLine.style = PaintingStyle.fill;
for (int i = 0; i < this.linesCount; i++) {
for (int i = 0; i < linesCount; i++) {
paintLine.color = getRandomColor();
paintLine.strokeWidth = Random().nextDouble() * 4 + 2;
......
......@@ -14,15 +14,15 @@ class AboutPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
SizedBox(height: 8),
AppHeader(text: 'about_title'),
Text('about_content').tr(),
const SizedBox(height: 8),
const AppHeader(text: 'about_title'),
const Text('about_content').tr(),
FutureBuilder<PackageInfo>(
future: PackageInfo.fromPlatform(),
builder: (context, snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.done:
return Text('about_version').tr(
return const Text('about_version').tr(
namedArgs: {
'version': snapshot.data!.version,
},
......
......@@ -17,9 +17,9 @@ class ApiPage extends StatelessWidget {
padding: const EdgeInsets.symmetric(horizontal: 4),
physics: const BouncingScrollPhysics(),
children: <Widget>[
SizedBox(height: 8),
AppHeader(text: 'api_page_title'),
SizedBox(height: 20),
const SizedBox(height: 8),
const AppHeader(text: 'api_page_title'),
const SizedBox(height: 20),
BlocBuilder<ApiDataCubit, ApiDataState>(
builder: (BuildContext context, ApiDataState apiDataState) {
return ApiDataWidget(
......
......@@ -13,12 +13,12 @@ class CameraPage extends StatelessWidget {
Widget build(BuildContext context) {
return Material(
color: Theme.of(context).colorScheme.background,
child: Column(
child: const Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
const SizedBox(height: 8),
const TakePictureWidget(),
SizedBox(height: 8),
TakePictureWidget(),
],
),
);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment