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

Merge branch '14-use-flutter-linter-and-apply-lints' into 'master'

Resolve "Use flutter linter and apply lints"

Closes #14

See merge request !14
parents 805ec4c4 56551bb6
No related branches found
No related tags found
1 merge request!14Resolve "Use flutter linter and apply lints"
Pipeline #5109 passed
include: package:flutter_lints/flutter.yaml
...@@ -44,7 +44,7 @@ android { ...@@ -44,7 +44,7 @@ android {
defaultConfig { defaultConfig {
applicationId "org.benoitharrault.plotter" applicationId "org.benoitharrault.plotter"
minSdkVersion 16 minSdkVersion flutter.minSdkVersion
targetSdkVersion 30 targetSdkVersion 30
versionCode appVersionCode.toInteger() versionCode appVersionCode.toInteger()
versionName appVersionName versionName appVersionName
......
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.0.12 app.versionName=0.0.13
app.versionCode=12 app.versionCode=13
Add automatic flutter linter. Apply code lints. Update dependencies.
Ajout d'un correcteur automatique de code. Application des corrections. Mise à jour des dépendances.
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../provider/data.dart'; import 'package:plotter/provider/data.dart';
import '../utils/api.dart'; import 'package:plotter/utils/api.dart';
class Keyboard { class Keyboard {
static Container buildWidget(Data myProvider) { static Container buildWidget(Data myProvider) {
...@@ -34,7 +34,7 @@ class Keyboard { ...@@ -34,7 +34,7 @@ class Keyboard {
padding: const EdgeInsets.all(0), padding: const EdgeInsets.all(0),
), ),
child: Text(keyText, child: Text(keyText,
style: TextStyle( style: const TextStyle(
fontSize: 60.0, fontSize: 60.0,
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
), ),
...@@ -48,8 +48,8 @@ class Keyboard { ...@@ -48,8 +48,8 @@ class Keyboard {
} }
return Container( return Container(
margin: EdgeInsets.symmetric(horizontal: 2), margin: const EdgeInsets.symmetric(horizontal: 2),
padding: EdgeInsets.all(2), padding: const EdgeInsets.all(2),
child: Table( child: Table(
defaultVerticalAlignment: TableCellVerticalAlignment.middle, defaultVerticalAlignment: TableCellVerticalAlignment.middle,
children: [ children: [
......
...@@ -9,10 +9,12 @@ import 'screens/settings.dart'; ...@@ -9,10 +9,12 @@ import 'screens/settings.dart';
void main() { void main() {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]) SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((value) => runApp(MyApp())); .then((value) => runApp(const MyApp()));
} }
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
const MyApp({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ChangeNotifierProvider( return ChangeNotifierProvider(
...@@ -24,10 +26,10 @@ class MyApp extends StatelessWidget { ...@@ -24,10 +26,10 @@ class MyApp extends StatelessWidget {
primaryColor: Colors.blue, primaryColor: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity, visualDensity: VisualDensity.adaptivePlatformDensity,
), ),
home: Home(), home: const Home(),
routes: { routes: {
Home.id: (context) => Home(), Home.id: (context) => const Home(),
SettingsPage.id: (context) => SettingsPage(), SettingsPage.id: (context) => const SettingsPage(),
}, },
); );
}), }),
......
...@@ -8,17 +8,19 @@ class Data extends ChangeNotifier { ...@@ -8,17 +8,19 @@ class Data extends ChangeNotifier {
String defaultApiHost = '127.0.0.1'; String defaultApiHost = '127.0.0.1';
getParameterValue(String parameterCode) { String getParameterValue(String parameterCode) {
switch (parameterCode) { switch (parameterCode) {
case 'apiHost': case 'apiHost':
{ {
return _apiHost; return _apiHost;
} }
} }
return '';
} }
setParameterValue(String parameterCode, String parameterValue) async { setParameterValue(String parameterCode, String parameterValue) async {
print('set parameter "' + parameterCode + '" to value "' + parameterValue + '"'); print('set parameter "$parameterCode" to value "$parameterValue"');
switch (parameterCode) { switch (parameterCode) {
case 'apiHost': case 'apiHost':
{ {
...@@ -32,7 +34,7 @@ class Data extends ChangeNotifier { ...@@ -32,7 +34,7 @@ class Data extends ChangeNotifier {
void initParametersValues() async { void initParametersValues() async {
final prefs = await SharedPreferences.getInstance(); final prefs = await SharedPreferences.getInstance();
setParameterValue('apiHost', prefs.getString('apiHost') ?? this.defaultApiHost); setParameterValue('apiHost', prefs.getString('apiHost') ?? defaultApiHost);
} }
String get apiHost => _apiHost; String get apiHost => _apiHost;
...@@ -43,7 +45,7 @@ class Data extends ChangeNotifier { ...@@ -43,7 +45,7 @@ class Data extends ChangeNotifier {
String get apiStatus => _apiStatus; String get apiStatus => _apiStatus;
void updateApiStatus(String apiStatus) { void updateApiStatus(String apiStatus) {
print('new API status: ' + apiStatus); print('new API status: $apiStatus');
_apiStatus = apiStatus; _apiStatus = apiStatus;
notifyListeners(); notifyListeners();
} }
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../layout/keyboard.dart'; import 'package:plotter/layout/keyboard.dart';
import '../provider/data.dart'; import 'package:plotter/provider/data.dart';
import '../screens/settings.dart'; import 'package:plotter/screens/settings.dart';
import '../utils/api.dart'; import 'package:plotter/utils/api.dart';
class Home extends StatefulWidget { class Home extends StatefulWidget {
static const String id = 'home'; static const String id = 'home';
const Home({super.key});
@override @override
_HomeState createState() => _HomeState(); HomeState createState() => HomeState();
} }
class _HomeState extends State<Home> { class HomeState extends State<Home> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
...@@ -28,15 +30,15 @@ class _HomeState extends State<Home> { ...@@ -28,15 +30,15 @@ class _HomeState extends State<Home> {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: new Text('Stepper plotter assistant'), title: const Text('Stepper plotter assistant'),
actions: [ actions: [
IconButton( IconButton(
icon: Icon(Icons.settings), icon: const Icon(Icons.settings),
onPressed: () { onPressed: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute(builder: (context) { MaterialPageRoute(builder: (context) {
return SettingsPage(); return const SettingsPage();
}), }),
); );
}, },
...@@ -53,9 +55,7 @@ class _HomeState extends State<Home> { ...@@ -53,9 +55,7 @@ class _HomeState extends State<Home> {
children: [ children: [
Keyboard.buildWidget(myProvider), Keyboard.buildWidget(myProvider),
TextButton( TextButton(
child: Container( child: const Text('get API status'),
child: Text('get API status'),
),
onPressed: () => Api.updateApiStatus(myProvider), onPressed: () => Api.updateApiStatus(myProvider),
), ),
Text(myProvider.apiStatus) Text(myProvider.apiStatus)
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../provider/data.dart'; import 'package:plotter/provider/data.dart';
class SettingsPage extends StatefulWidget { class SettingsPage extends StatefulWidget {
const SettingsPage({super.key});
static const String id = 'settings'; static const String id = 'settings';
const SettingsPage({Key? key}) : super(key: key);
@override @override
_SettingsPageState createState() => _SettingsPageState(); SettingsPageState createState() => SettingsPageState();
} }
class _SettingsPageState extends State<SettingsPage> { class SettingsPageState extends State<SettingsPage> {
TextEditingController apiHostFieldController = TextEditingController(); TextEditingController apiHostFieldController = TextEditingController();
@override @override
...@@ -28,10 +29,10 @@ class _SettingsPageState extends State<SettingsPage> { ...@@ -28,10 +29,10 @@ class _SettingsPageState extends State<SettingsPage> {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: new Text('Stepper - settings'), title: const Text('Stepper - settings'),
actions: [ actions: [
IconButton( IconButton(
icon: Icon(Icons.save), icon: const Icon(Icons.save),
onPressed: () { onPressed: () {
myProvider.setParameterValue('apiHost', apiHostFieldController.text); myProvider.setParameterValue('apiHost', apiHostFieldController.text);
Navigator.pop(context); Navigator.pop(context);
...@@ -47,7 +48,7 @@ class _SettingsPageState extends State<SettingsPage> { ...@@ -47,7 +48,7 @@ class _SettingsPageState extends State<SettingsPage> {
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
child: TextFormField( child: TextFormField(
controller: apiHostFieldController, controller: apiHostFieldController,
decoration: InputDecoration( decoration: const InputDecoration(
border: UnderlineInputBorder(), border: UnderlineInputBorder(),
labelText: 'API Host', labelText: 'API Host',
), ),
......
import 'dart:convert'; import 'dart:convert';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import '../provider/data.dart'; import 'package:plotter/provider/data.dart';
class Api { class Api {
static Future<void> updateApiStatus(Data myProvider) async { static Future<void> updateApiStatus(Data myProvider) async {
......
...@@ -21,31 +21,39 @@ packages: ...@@ -21,31 +21,39 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.17.2" version: "1.18.0"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.2"
file: file:
dependency: transitive dependency: transitive
description: description:
name: file name: file
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.4" version: "7.0.0"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7
url: "https://pub.dev"
source: hosted
version: "3.0.1"
flutter_web_plugins: flutter_web_plugins:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -55,10 +63,10 @@ packages: ...@@ -55,10 +63,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: http name: http
sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.2.0"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
...@@ -67,22 +75,30 @@ packages: ...@@ -67,22 +75,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.2" version: "4.0.2"
lints:
dependency: transitive
description:
name: lints
sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
url: "https://pub.dev"
source: hosted
version: "3.0.0"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.5.0" version: "0.8.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.1" version: "1.11.0"
nested: nested:
dependency: transitive dependency: transitive
description: description:
...@@ -95,10 +111,10 @@ packages: ...@@ -95,10 +111,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path name: path
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.3" version: "1.9.0"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
...@@ -111,10 +127,10 @@ packages: ...@@ -111,10 +127,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path_provider_platform_interface name: path_provider_platform_interface
sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.2"
path_provider_windows: path_provider_windows:
dependency: transitive dependency: transitive
description: description:
...@@ -127,34 +143,34 @@ packages: ...@@ -127,34 +143,34 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: platform name: platform
sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.2" version: "3.1.4"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.6" version: "2.1.8"
provider: provider:
dependency: "direct main" dependency: "direct main"
description: description:
name: provider name: provider
sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.0.5" version: "6.1.1"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
name: shared_preferences name: shared_preferences
sha256: b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.1" version: "2.2.2"
shared_preferences_android: shared_preferences_android:
dependency: transitive dependency: transitive
description: description:
...@@ -167,42 +183,42 @@ packages: ...@@ -167,42 +183,42 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_foundation name: shared_preferences_foundation
sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.4" version: "2.3.5"
shared_preferences_linux: shared_preferences_linux:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_linux name: shared_preferences_linux
sha256: c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.3.2"
shared_preferences_platform_interface: shared_preferences_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_platform_interface name: shared_preferences_platform_interface
sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.3.2"
shared_preferences_web: shared_preferences_web:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_web name: shared_preferences_web
sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.1" version: "2.2.2"
shared_preferences_windows: shared_preferences_windows:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_windows name: shared_preferences_windows
sha256: f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.3.2"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -252,26 +268,26 @@ packages: ...@@ -252,26 +268,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: web name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.4-beta" version: "0.4.2"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.9" version: "5.2.0"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
name: xdg_directories name: xdg_directories
sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.3" version: "1.0.4"
sdks: sdks:
dart: ">=3.1.0-185.0.dev <4.0.0" dart: ">=3.3.0-279.1.beta <4.0.0"
flutter: ">=3.7.0" flutter: ">=3.16.0"
name: plotter name: plotter
description: A plotter helper application. description: A plotter helper application.
publish_to: 'none' publish_to: 'none'
version: 1.0.0+1 version: 0.0.13+13
environment: environment:
sdk: '^3.0.0' sdk: '^3.0.0'
...@@ -13,6 +13,9 @@ dependencies: ...@@ -13,6 +13,9 @@ dependencies:
shared_preferences: ^2.2.1 shared_preferences: ^2.2.1
http: ^1.1.0 http: ^1.1.0
dev_dependencies:
flutter_lints: ^3.0.1
flutter: flutter:
uses-material-design: true uses-material-design: true
assets: assets:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment