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

Use and apply flutter lints

parent 5470bb72
No related branches found
No related tags found
1 merge request!55Resolve "Use flutter lints"
Pipeline #5006 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.
Please register or to comment