From ee23fad1e9e60b7e6581b45854fc6afdfba1063c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Mon, 19 Feb 2024 23:02:04 +0100 Subject: [PATCH] Use flutter linter, apply lints, update dependencies --- analysis_options.yaml | 1 + android/app/build.gradle | 2 +- android/gradle.properties | 4 +- .../metadata/android/en-US/changelogs/33.txt | 1 + .../metadata/android/fr-FR/changelogs/33.txt | 1 + lib/entities/cell.dart | 12 +-- lib/layout/board.dart | 42 ++++---- lib/layout/board_painter.dart | 2 +- lib/layout/game.dart | 71 +++++++------- lib/layout/parameters.dart | 56 ++++++----- lib/main.dart | 8 +- lib/provider/data.dart | 43 +++++---- lib/screens/home.dart | 14 +-- lib/utils/board_utils.dart | 39 +++++--- lib/utils/game_utils.dart | 6 +- pubspec.lock | 96 +++++++++++-------- pubspec.yaml | 5 +- 17 files changed, 214 insertions(+), 189 deletions(-) create mode 100644 analysis_options.yaml create mode 100644 fastlane/metadata/android/en-US/changelogs/33.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/33.txt diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..f9b3034 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1 @@ +include: package:flutter_lints/flutter.yaml diff --git a/android/app/build.gradle b/android/app/build.gradle index 458079a..647500f 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -44,7 +44,7 @@ android { defaultConfig { applicationId "org.benoitharrault.colors" - minSdkVersion 16 + minSdkVersion flutter.minSdkVersion targetSdkVersion 30 versionCode appVersionCode.toInteger() versionName appVersionName diff --git a/android/gradle.properties b/android/gradle.properties index 4878903..9dfcc42 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -app.versionName=0.0.32 -app.versionCode=32 +app.versionName=0.0.33 +app.versionCode=33 diff --git a/fastlane/metadata/android/en-US/changelogs/33.txt b/fastlane/metadata/android/en-US/changelogs/33.txt new file mode 100644 index 0000000..6ab1115 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/33.txt @@ -0,0 +1 @@ +Add automatic flutter linter. Apply code lints. Update dependencies. diff --git a/fastlane/metadata/android/fr-FR/changelogs/33.txt b/fastlane/metadata/android/fr-FR/changelogs/33.txt new file mode 100644 index 0000000..609f5cf --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/33.txt @@ -0,0 +1 @@ +Ajout d'un correcteur automatique de code. Application des corrections. Mise à jour des dépendances. diff --git a/lib/entities/cell.dart b/lib/entities/cell.dart index b89ff47..115dd01 100644 --- a/lib/entities/cell.dart +++ b/lib/entities/cell.dart @@ -10,10 +10,10 @@ class Cell { ); Container widgetFillBoardWithColor(Data myProvider) { - String imageAsset = this.getImageAssetName(myProvider); + String imageAsset = getImageAssetName(myProvider); return Container( - margin: EdgeInsets.all(2), + margin: const EdgeInsets.all(2), decoration: BoxDecoration( border: Border.all( color: Colors.black, @@ -27,8 +27,8 @@ class Cell { ), onTap: () { if (!myProvider.animationInProgress && - myProvider.getFirstCellValue() != this.value) { - BoardUtils.fillBoardFromFirstCell(myProvider, this.value); + myProvider.getFirstCellValue() != value) { + BoardUtils.fillBoardFromFirstCell(myProvider, value); } }, ), @@ -36,7 +36,7 @@ class Cell { } String getImageAssetName(Data myProvider) { - int cellValue = this.value; - return 'assets/skins/' + myProvider.parameterSkin + '_' + cellValue.toString() + '.png'; + int cellValue = value; + return 'assets/skins/${myProvider.parameterSkin}_$cellValue.png'; } } diff --git a/lib/layout/board.dart b/lib/layout/board.dart index 0224d6d..7991c5e 100644 --- a/lib/layout/board.dart +++ b/lib/layout/board.dart @@ -6,33 +6,29 @@ import 'package:flutter/material.dart'; class Board { static Container buildGameBoard(Data myProvider, double boardWidth) { return Container( - margin: EdgeInsets.all(4), - padding: EdgeInsets.all(4), + margin: const EdgeInsets.all(4), + padding: const EdgeInsets.all(4), child: Column( children: [ - Container( - child: Center( - child: GestureDetector( - onTapUp: (details) { - double xTap = details.localPosition.dx; - double yTap = details.localPosition.dy; - int boardSize = myProvider.boardSize; - int col = xTap ~/ (boardWidth / boardSize); - int row = yTap ~/ (boardWidth / boardSize); - int cellValue = myProvider.getCellValue(col, row); - BoardUtils.fillBoardFromFirstCell(myProvider, cellValue); - }, - child: Container( - child: CustomPaint( - size: Size(boardWidth, boardWidth), - willChange: false, - painter: BoardPainter(myProvider), - isComplex: true, - ), - ), + Center( + child: GestureDetector( + onTapUp: (details) { + double xTap = details.localPosition.dx; + double yTap = details.localPosition.dy; + int boardSize = myProvider.boardSize; + int col = xTap ~/ (boardWidth / boardSize); + int row = yTap ~/ (boardWidth / boardSize); + int cellValue = myProvider.getCellValue(col, row); + BoardUtils.fillBoardFromFirstCell(myProvider, cellValue); + }, + child: CustomPaint( + size: Size(boardWidth, boardWidth), + willChange: false, + painter: BoardPainter(myProvider), + isComplex: true, ), ), - ) + ), ], ), ); diff --git a/lib/layout/board_painter.dart b/lib/layout/board_painter.dart index e966e7c..c955c70 100644 --- a/lib/layout/board_painter.dart +++ b/lib/layout/board_painter.dart @@ -11,7 +11,7 @@ class BoardPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { int boardSize = myProvider.boardSize; - List cells = myProvider.cells; + List<List<Cell>> cells = myProvider.cells; double cellSize = size.width / boardSize; // background diff --git a/lib/layout/game.dart b/lib/layout/game.dart index 81b93d3..d953163 100644 --- a/lib/layout/game.dart +++ b/lib/layout/game.dart @@ -5,37 +5,34 @@ import 'package:colors/utils/game_utils.dart'; import 'package:flutter/material.dart'; class Game { - static Container buildGameWidget(Data myProvider, double boardWidth) { - bool gameIsFinished = myProvider.isGameFinished(); + static Widget buildGameWidget(Data myProvider, double boardWidth) { + final bool gameIsFinished = myProvider.isGameFinished(); - return Container( - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - SizedBox(height: 8), - Game.buildTopIndicatorWidget(myProvider), - SizedBox(height: 2), - Expanded( - child: Board.buildGameBoard(myProvider, boardWidth), - ), - SizedBox(height: 2), - Container( - child: gameIsFinished - ? Game.buildEndGameMessage(myProvider) - : Game.buildSelectColorBar(myProvider), - ), - ], - ), + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 8), + Game.buildTopIndicatorWidget(myProvider), + const SizedBox(height: 2), + Expanded( + child: Board.buildGameBoard(myProvider, boardWidth), + ), + const SizedBox(height: 2), + Container( + child: gameIsFinished + ? Game.buildEndGameMessage(myProvider) + : Game.buildSelectColorBar(myProvider), + ), + ], ); } static Widget buildTopIndicatorWidget(Data myProvider) { - String progressIndicator = - myProvider.progress.toString() + '/' + myProvider.progressTotal.toString(); + String progressIndicator = '${myProvider.progress}/${myProvider.progressTotal}'; if (myProvider.movesCount > 0) { - progressIndicator += ' (+' + myProvider.progressDelta.toString() + ')'; + progressIndicator += ' (+${myProvider.progressDelta})'; } Color maxMovesCountColor = Colors.grey; @@ -51,7 +48,7 @@ class Game { children: [ Text( myProvider.movesCount.toString(), - style: TextStyle( + style: const TextStyle( fontSize: 35, fontWeight: FontWeight.w600, color: Colors.black, @@ -62,7 +59,7 @@ class Game { Column( children: [ Text( - '(max: ' + myProvider.maxMovesCount.toString() + ')', + '(max: ${myProvider.maxMovesCount})', style: TextStyle( fontSize: 15, fontWeight: FontWeight.w600, @@ -71,7 +68,7 @@ class Game { ), Text( progressIndicator, - style: TextStyle( + style: const TextStyle( fontSize: 15, fontWeight: FontWeight.w600, color: Colors.green, @@ -85,14 +82,14 @@ class Game { ); } - static Container buildSelectColorBar(Data myProvider) { + static Widget buildSelectColorBar(Data myProvider) { int maxValue = myProvider.colorsCount; return Container( - margin: EdgeInsets.all(2), - padding: EdgeInsets.all(2), + margin: const EdgeInsets.all(2), + padding: const EdgeInsets.all(2), child: Table( - defaultColumnWidth: IntrinsicColumnWidth(), + defaultColumnWidth: const IntrinsicColumnWidth(), children: [ TableRow( children: [ @@ -112,9 +109,9 @@ class Game { static TextButton buildRestartGameButton(Data myProvider) { return TextButton( style: ButtonStyle( - padding: MaterialStateProperty.all<EdgeInsets>(EdgeInsets.all(0)), + padding: MaterialStateProperty.all<EdgeInsets>(const EdgeInsets.all(0)), ), - child: Image( + child: const Image( image: AssetImage('assets/icons/button_back.png'), fit: BoxFit.fill, ), @@ -122,7 +119,7 @@ class Game { ); } - static Container buildEndGameMessage(Data myProvider) { + static Widget buildEndGameMessage(Data myProvider) { String decorationImageAssetName = ''; if (myProvider.gameWon) { decorationImageAssetName = 'assets/icons/game_win.png'; @@ -136,10 +133,10 @@ class Game { ); return Container( - margin: EdgeInsets.all(2), - padding: EdgeInsets.all(2), + margin: const EdgeInsets.all(2), + padding: const EdgeInsets.all(2), child: Table( - defaultColumnWidth: IntrinsicColumnWidth(), + defaultColumnWidth: const IntrinsicColumnWidth(), children: [ TableRow( children: [ diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart index f3fcc67..c14295f 100644 --- a/lib/layout/parameters.dart +++ b/lib/layout/parameters.dart @@ -14,39 +14,37 @@ class Parameters { static double buttonPadding = 0.0; static double buttonMargin = 0.0; - static Container buildParametersSelector(Data myProvider) { + static Widget buildParametersSelector(Data myProvider) { List<Widget> lines = []; - List parameters = myProvider.availableParameters; + List<String> parameters = myProvider.availableParameters; for (var index = 0; index < parameters.length; index++) { lines.add(Parameters.buildParameterSelector(myProvider, parameters[index])); lines.add(SizedBox(height: Parameters.separatorHeight)); } - return Container( - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - SizedBox(height: Parameters.separatorHeight), - Expanded( - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: lines, - ), - ), - SizedBox(height: Parameters.separatorHeight), - Container( - child: Parameters.buildStartGameButton(myProvider), + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: Parameters.separatorHeight), + Expanded( + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: lines, ), - ], - ), + ), + SizedBox(height: Parameters.separatorHeight), + Container( + child: Parameters.buildStartGameButton(myProvider), + ), + ], ); } - static Container buildStartGameButton(Data myProvider) { - Column decorationImage = Column( + static Widget buildStartGameButton(Data myProvider) { + Column decorationImage = const Column( children: [ Image( image: AssetImage('assets/icons/game_win.png'), @@ -59,7 +57,7 @@ class Parameters { margin: EdgeInsets.all(Parameters.blockMargin), padding: EdgeInsets.all(Parameters.blockPadding), child: Table( - defaultColumnWidth: IntrinsicColumnWidth(), + defaultColumnWidth: const IntrinsicColumnWidth(), children: [ TableRow( children: [ @@ -68,9 +66,9 @@ class Parameters { children: [ TextButton( style: ButtonStyle( - padding: MaterialStateProperty.all<EdgeInsets>(EdgeInsets.all(0)), + padding: MaterialStateProperty.all<EdgeInsets>(const EdgeInsets.all(0)), ), - child: Image( + child: const Image( image: AssetImage('assets/icons/button_start.png'), fit: BoxFit.fill, ), @@ -87,14 +85,14 @@ class Parameters { } static Widget buildParameterSelector(Data myProvider, String parameterCode) { - List availableValues = myProvider.getParameterAvailableValues(parameterCode); + List<String> availableValues = myProvider.getParameterAvailableValues(parameterCode); if (availableValues.length == 1) { - return SizedBox(height: 0.0); + return const SizedBox(height: 0.0); } return Table( - defaultColumnWidth: IntrinsicColumnWidth(), + defaultColumnWidth: const IntrinsicColumnWidth(), children: [ TableRow( children: [ @@ -115,7 +113,7 @@ class Parameters { String currentValue = myProvider.getParameterValue(parameterCode).toString(); bool isActive = (parameterValue == currentValue); - String imageAsset = 'assets/icons/' + parameterCode + '_' + parameterValue + '.png'; + String imageAsset = 'assets/icons/${parameterCode}_$parameterValue.png'; return TextButton( child: Container( diff --git a/lib/main.dart b/lib/main.dart index f1cbde4..07f193d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,10 +8,12 @@ import 'package:overlay_support/overlay_support.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]) - .then((value) => runApp(MyApp())); + .then((value) => runApp(const MyApp())); } class MyApp extends StatelessWidget { + const MyApp({super.key}); + @override Widget build(BuildContext context) { return ChangeNotifierProvider( @@ -25,9 +27,9 @@ class MyApp extends StatelessWidget { primaryColor: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), - home: Home(), + home: const Home(), routes: { - Home.id: (context) => Home(), + Home.id: (context) => const Home(), }, ), ); diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 8bd370f..bb84b58 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -1,31 +1,32 @@ +import 'package:colors/entities/cell.dart'; import 'package:flutter/foundation.dart'; import 'package:shared_preferences/shared_preferences.dart'; class Data extends ChangeNotifier { // Configuration available parameters - List _availableParameters = ['level', 'size', 'colors', 'skin']; - List get availableParameters => _availableParameters; + final List<String> _availableParameters = ['level', 'size', 'colors', 'skin']; + List<String> get availableParameters => _availableParameters; // Configuration available values - List _availableLevelValues = ['easy', 'medium', 'hard', 'nightmare']; - List _availableSizeValues = ['small', 'medium', 'large', 'extra']; - List _availableColorsValues = ['5', '6', '7', '8']; - List _availableSkinValues = ['default']; + final List<String> _availableLevelValues = ['easy', 'medium', 'hard', 'nightmare']; + final List<String> _availableSizeValues = ['small', 'medium', 'large', 'extra']; + final List<String> _availableColorsValues = ['5', '6', '7', '8']; + final List<String> _availableSkinValues = ['default']; - List get availableLevelValues => _availableLevelValues; - List get availableSizeValues => _availableSizeValues; - List get availableColorsValues => _availableColorsValues; - List get availableSkinValues => _availableSkinValues; + List<String> get availableLevelValues => _availableLevelValues; + List<String> get availableSizeValues => _availableSizeValues; + List<String> get availableColorsValues => _availableColorsValues; + List<String> get availableSkinValues => _availableSkinValues; // Application default configuration String _parameterLevel = ''; - String _parameterLevelDefault = 'medium'; + final String _parameterLevelDefault = 'medium'; String _parameterSize = ''; - String _parameterSizeDefault = 'medium'; + final String _parameterSizeDefault = 'medium'; String _parameterColors = ''; - String _parameterColorsDefault = '6'; + final String _parameterColorsDefault = '6'; String _parameterSkin = ''; - String _parameterSkinDefault = 'default'; + final String _parameterSkinDefault = 'default'; // Application current configuration String get parameterLevel => _parameterLevel; @@ -41,19 +42,19 @@ class Data extends ChangeNotifier { int _colorsCount = 0; int _movesCount = 0; int _maxMovesCount = 0; - List _cells = []; + List<List<Cell>> _cells = []; int _progress = 0; int _progressTotal = 0; int _progressDelta = 0; - bool isParameterValueAllowed(String parameterValue, List parametersAllowedValues) { + bool isParameterValueAllowed(String parameterValue, List<String> parametersAllowedValues) { bool found = false; - parametersAllowedValues.forEach((item) { + for (String item in parametersAllowedValues) { if (item.contains(parameterValue)) { found = true; } - }); + } return found; } @@ -117,7 +118,7 @@ class Data extends ChangeNotifier { return ''; } - List getParameterAvailableValues(String parameterCode) { + List<String> getParameterAvailableValues(String parameterCode) { switch (parameterCode) { case 'level': { @@ -251,8 +252,8 @@ class Data extends ChangeNotifier { _colorsCount = colorsCount; } - List get cells => _cells; - void updateCells(List cells) { + List<List<Cell>> get cells => _cells; + void updateCells(List<List<Cell>> cells) { _cells = cells; notifyListeners(); } diff --git a/lib/screens/home.dart b/lib/screens/home.dart index ac80b66..ff66a14 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -7,13 +7,15 @@ import 'package:overlay_support/overlay_support.dart'; import 'package:provider/provider.dart'; class Home extends StatefulWidget { + const Home({super.key}); + static const String id = 'home'; @override - _HomeState createState() => _HomeState(); + HomeState createState() => HomeState(); } -class _HomeState extends State<Home> { +class HomeState extends State<Home> { @override void initState() { super.initState(); @@ -32,11 +34,9 @@ class _HomeState extends State<Home> { if (myProvider.gameIsRunning) { menuActions = [ TextButton( - child: Container( - child: Image( - image: AssetImage('assets/icons/button_back.png'), - fit: BoxFit.fill, - ), + child: const Image( + image: AssetImage('assets/icons/button_back.png'), + fit: BoxFit.fill, ), onPressed: () => toast('Long press to quit game...'), onLongPress: () => GameUtils.resetGame(myProvider), diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart index 70bc9d6..8e8f31b 100644 --- a/lib/utils/board_utils.dart +++ b/lib/utils/board_utils.dart @@ -24,11 +24,11 @@ class BoardUtils { int boardSize = myProvider.boardSize; int maxValue = myProvider.colorsCount; - var rand = new Random(); + var rand = Random(); - List grid = []; + List<List<Cell>> grid = []; for (var rowIndex = 0; rowIndex < boardSize; rowIndex++) { - List row = []; + List<Cell> row = []; for (var colIndex = 0; colIndex < boardSize; colIndex++) { int value = 1 + rand.nextInt(maxValue); row.add(Cell(value)); @@ -59,10 +59,10 @@ class BoardUtils { } static fillBoardFromFirstCell(Data myProvider, int value) { - List cellsToFill = BoardUtils.getSiblingFillableCells(myProvider, 0, 0, [ + List<List<int>> cellsToFill = BoardUtils.getSiblingFillableCells(myProvider, 0, 0, [ [0, 0] ]); - int progressBeforeMove = cellsToFill.length; + final int progressBeforeMove = cellsToFill.length; myProvider.incrementMovesCount(); @@ -70,7 +70,7 @@ class BoardUtils { cellsToFill .sort((a, b) => (pow(a[0], 2) + pow(a[1], 2)).compareTo(pow(b[0], 2) + pow(b[1], 2))); - const interval = const Duration(milliseconds: 10); + const interval = Duration(milliseconds: 10); int cellIndex = 0; myProvider.updateAnimationInProgress(true); Timer.periodic( @@ -100,17 +100,22 @@ class BoardUtils { ); } - static List getSiblingFillableCells(Data myProvider, row, col, siblingCells) { - List cells = myProvider.cells; - int boardSize = myProvider.boardSize; + static List<List<int>> getSiblingFillableCells( + Data myProvider, + int row, + int col, + List<List<int>> siblingCells, + ) { + final List<List<Cell>> cells = myProvider.cells; + final int boardSize = myProvider.boardSize; - int referenceValue = cells[row][col].value; + final int referenceValue = cells[row][col].value; for (var deltaRow = -1; deltaRow <= 1; deltaRow++) { for (var deltaCol = -1; deltaCol <= 1; deltaCol++) { if (deltaCol == 0 || deltaRow == 0) { - int candidateRow = row + deltaRow; - int candidateCol = col + deltaCol; + final int candidateRow = row + deltaRow; + final int candidateCol = col + deltaCol; if ((candidateRow >= 0 && candidateRow < boardSize) && (candidateCol >= 0 && candidateCol < boardSize)) { @@ -125,7 +130,11 @@ class BoardUtils { if (!alreadyFound) { siblingCells.add([candidateRow, candidateCol]); siblingCells = getSiblingFillableCells( - myProvider, candidateRow, candidateCol, siblingCells); + myProvider, + candidateRow, + candidateCol, + siblingCells, + ); } } } @@ -137,8 +146,8 @@ class BoardUtils { } static bool checkBoardIsSolved(Data myProvider) { - List cells = myProvider.cells; - int boardSize = myProvider.boardSize; + final List<List<Cell>> cells = myProvider.cells; + final int boardSize = myProvider.boardSize; // check grid is fully completed and does not contain conflict int previousValue = cells[0][0].value; diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart index f55b852..56fee2a 100644 --- a/lib/utils/game_utils.dart +++ b/lib/utils/game_utils.dart @@ -8,9 +8,9 @@ class GameUtils { static Future<void> startGame(Data myProvider) async { print('Starting game'); - print('- level: ' + myProvider.parameterLevel); - print('- size: ' + myProvider.boardSize.toString()); - print('- colors: ' + myProvider.colorsCount.toString()); + print('- level: ${myProvider.parameterLevel}'); + print('- size: ${myProvider.boardSize}'); + print('- colors: ${myProvider.colorsCount}'); BoardUtils.createNewBoard(myProvider); diff --git a/pubspec.lock b/pubspec.lock index f78ae3b..f2dad35 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,52 +21,68 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" ffi: dependency: transitive description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" file: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" flutter: dependency: "direct main" description: flutter source: sdk 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: dependency: transitive description: flutter source: sdk version: "0.0.0" + lints: + dependency: transitive + description: + name: lints + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + url: "https://pub.dev" + source: hosted + version: "3.0.0" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.11.0" nested: dependency: transitive description: @@ -87,10 +103,10 @@ packages: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_provider_linux: dependency: transitive description: @@ -103,10 +119,10 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: @@ -119,34 +135,34 @@ packages: dependency: transitive description: name: platform - sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.1.8" provider: dependency: "direct main" description: name: provider - sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f + sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096" url: "https://pub.dev" source: hosted - version: "6.0.5" + version: "6.1.1" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac + sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" shared_preferences_android: dependency: transitive description: @@ -159,42 +175,42 @@ packages: dependency: transitive description: name: shared_preferences_foundation - sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" + sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" url: "https://pub.dev" source: hosted - version: "2.3.4" + version: "2.3.5" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a + sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf + sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" sky_engine: dependency: transitive description: flutter @@ -212,26 +228,26 @@ packages: dependency: transitive description: name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05" url: "https://pub.dev" source: hosted - version: "0.1.4-beta" + version: "0.4.2" win32: dependency: transitive description: name: win32 - sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" url: "https://pub.dev" source: hosted - version: "5.0.9" + version: "5.2.0" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" sdks: - dart: ">=3.1.0-185.0.dev <4.0.0" - flutter: ">=3.7.0" + dart: ">=3.3.0-279.1.beta <4.0.0" + flutter: ">=3.16.0" diff --git a/pubspec.yaml b/pubspec.yaml index ebd96d9..3baf5c0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: colors description: colors application publish_to: 'none' -version: 1.0.0+1 +version: 0.0.33+33 environment: sdk: '^3.0.0' @@ -13,6 +13,9 @@ dependencies: shared_preferences: ^2.2.1 overlay_support: ^2.1.0 +dev_dependencies: + flutter_lints: ^3.0.1 + flutter: uses-material-design: true assets: -- GitLab