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

Use flutter_custom_toolbox for common features

parent 759e97a6
No related branches found
No related tags found
1 merge request!25Resolve "Use flutter_custom_toolbox for common features"
Pipeline #6475 passed
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:solitaire/cubit/game_cubit.dart'; import 'package:solitaire/cubit/game_cubit.dart';
import 'package:solitaire/ui/helpers/styled_button.dart';
class QuitGameButton extends StatelessWidget { class QuitGameButton extends StatelessWidget {
const QuitGameButton({super.key}); const QuitGameButton({super.key});
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:solitaire/cubit/game_cubit.dart'; import 'package:solitaire/cubit/game_cubit.dart';
import 'package:solitaire/cubit/settings_game_cubit.dart'; import 'package:solitaire/cubit/settings_game_cubit.dart';
import 'package:solitaire/cubit/settings_global_cubit.dart'; import 'package:solitaire/cubit/settings_global_cubit.dart';
import 'package:solitaire/ui/helpers/styled_button.dart';
class StartNewGameButton extends StatelessWidget { class StartNewGameButton extends StatelessWidget {
const StartNewGameButton({super.key}); const StartNewGameButton({super.key});
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:solitaire/cubit/game_cubit.dart'; import 'package:solitaire/cubit/game_cubit.dart';
import 'package:solitaire/ui/helpers/styled_button.dart';
class ResumeSavedGameButton extends StatelessWidget { class ResumeSavedGameButton extends StatelessWidget {
const ResumeSavedGameButton({super.key}); const ResumeSavedGameButton({super.key});
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:solitaire/cubit/game_cubit.dart'; import 'package:solitaire/cubit/game_cubit.dart';
import 'package:solitaire/models/game/board.dart'; import 'package:solitaire/models/game/board.dart';
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:solitaire/cubit/game_cubit.dart'; import 'package:solitaire/cubit/game_cubit.dart';
import 'package:solitaire/models/game/cell.dart'; import 'package:solitaire/models/game/cell.dart';
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:solitaire/config/menu.dart'; import 'package:solitaire/config/menu.dart';
import 'package:solitaire/cubit/game_cubit.dart'; import 'package:solitaire/cubit/game_cubit.dart';
import 'package:solitaire/cubit/nav_cubit.dart'; import 'package:solitaire/cubit/nav_cubit.dart';
import 'package:solitaire/models/game/game.dart'; import 'package:solitaire/models/game/game.dart';
import 'package:solitaire/ui/helpers/app_titles.dart';
import 'package:solitaire/ui/helpers/styled_button.dart';
class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget { class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
const GlobalAppBar({super.key}); const GlobalAppBar({super.key});
...@@ -38,7 +36,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -38,7 +36,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
// go to Settings page // go to Settings page
menuActions.add(ElevatedButton( menuActions.add(ElevatedButton(
onPressed: () { onPressed: () {
context.read<NavCubit>().goToSettingsPage(); BlocProvider.of<NavCubit>(context).goToSettingsPage();
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
shape: const CircleBorder(), shape: const CircleBorder(),
...@@ -49,7 +47,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -49,7 +47,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
// go to About page // go to About page
menuActions.add(ElevatedButton( menuActions.add(ElevatedButton(
onPressed: () { onPressed: () {
context.read<NavCubit>().goToAboutPage(); BlocProvider.of<NavCubit>(context).goToAboutPage();
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
shape: const CircleBorder(), shape: const CircleBorder(),
...@@ -60,7 +58,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -60,7 +58,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
// back to Home page // back to Home page
menuActions.add(ElevatedButton( menuActions.add(ElevatedButton(
onPressed: () { onPressed: () {
context.read<NavCubit>().goToGamePage(); BlocProvider.of<NavCubit>(context).goToGamePage();
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
shape: const CircleBorder(), shape: const CircleBorder(),
......
import 'dart:ui';
extension ColorExtension on Color {
Color darken([int percent = 40]) {
assert(1 <= percent && percent <= 100);
final value = 1 - percent / 100;
return Color.fromARGB(
alpha,
(red * value).round(),
(green * value).round(),
(blue * value).round(),
);
}
Color lighten([int percent = 40]) {
assert(1 <= percent && percent <= 100);
final value = percent / 100;
return Color.fromARGB(
alpha,
(red + ((255 - red) * value)).round(),
(green + ((255 - green) * value)).round(),
(blue + ((255 - blue) * value)).round(),
);
}
Color avg(Color other) {
final red = (this.red + other.red) ~/ 2;
final green = (this.green + other.green) ~/ 2;
final blue = (this.blue + other.blue) ~/ 2;
final alpha = (this.alpha + other.alpha) ~/ 2;
return Color.fromARGB(alpha, red, green, blue);
}
}
import 'package:flutter/foundation.dart';
void printlog(String message) {
if (!kReleaseMode) {
debugPrint(message);
}
}
...@@ -5,20 +5,20 @@ packages: ...@@ -5,20 +5,20 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: args name: args
sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.5.0" version: "2.6.0"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.11.0" version: "2.12.0"
auto_size_text: auto_size_text:
dependency: "direct main" dependency: transitive
description: description:
name: auto_size_text name: auto_size_text
sha256: "3f5261cd3fb5f2a9ab4e2fc3fba84fd9fcaac8821f20a1d4e71f557521b22599" sha256: "3f5261cd3fb5f2a9ab4e2fc3fba84fd9fcaac8821f20a1d4e71f557521b22599"
...@@ -61,12 +61,12 @@ packages: ...@@ -61,12 +61,12 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: crypto name: crypto
sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.5" version: "3.0.6"
easy_localization: easy_localization:
dependency: "direct main" dependency: transitive
description: description:
name: easy_localization name: easy_localization
sha256: fa59bcdbbb911a764aa6acf96bbb6fa7a5cf8234354fc45ec1a43a0349ef0201 sha256: fa59bcdbbb911a764aa6acf96bbb6fa7a5cf8234354fc45ec1a43a0349ef0201
...@@ -82,7 +82,7 @@ packages: ...@@ -82,7 +82,7 @@ packages:
source: hosted source: hosted
version: "0.0.2" version: "0.0.2"
equatable: equatable:
dependency: "direct main" dependency: transitive
description: description:
name: equatable name: equatable
sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2
...@@ -111,13 +111,22 @@ packages: ...@@ -111,13 +111,22 @@ packages:
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_bloc: flutter_bloc:
dependency: "direct main" dependency: transitive
description: description:
name: flutter_bloc name: flutter_bloc
sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.1.6" version: "8.1.6"
flutter_custom_toolbox:
dependency: "direct main"
description:
path: "."
ref: "0.1.1"
resolved-ref: ba7137ca9edec7e503ed3dbfe7f6ede7e9cfbf4d
url: "https://git.harrault.fr/android/flutter-toolbox.git"
source: git
version: "0.1.1"
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
...@@ -137,7 +146,7 @@ packages: ...@@ -137,7 +146,7 @@ packages:
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
hive: hive:
dependency: "direct main" dependency: transitive
description: description:
name: hive name: hive
sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941" sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
...@@ -161,7 +170,7 @@ packages: ...@@ -161,7 +170,7 @@ packages:
source: hosted source: hosted
version: "4.0.2" version: "4.0.2"
hydrated_bloc: hydrated_bloc:
dependency: "direct main" dependency: transitive
description: description:
name: hydrated_bloc name: hydrated_bloc
sha256: af35b357739fe41728df10bec03aad422cdc725a1e702e03af9d2a41ea05160c sha256: af35b357739fe41728df10bec03aad422cdc725a1e702e03af9d2a41ea05160c
...@@ -209,13 +218,13 @@ packages: ...@@ -209,13 +218,13 @@ packages:
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
package_info_plus: package_info_plus:
dependency: "direct main" dependency: transitive
description: description:
name: package_info_plus name: package_info_plus
sha256: "894f37107424311bdae3e476552229476777b8752c5a2a2369c0cb9a2d5442ef" sha256: df3eb3e0aed5c1107bb0fdb80a8e82e778114958b1c5ac5644fb1ac9cae8a998
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.0.3" version: "8.1.0"
package_info_plus_platform_interface: package_info_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
...@@ -233,7 +242,7 @@ packages: ...@@ -233,7 +242,7 @@ packages:
source: hosted source: hosted
version: "1.9.0" version: "1.9.0"
path_provider: path_provider:
dependency: "direct main" dependency: transitive
description: description:
name: path_provider name: path_provider
sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378
...@@ -284,10 +293,10 @@ packages: ...@@ -284,10 +293,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: platform name: platform
sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.5" version: "3.1.6"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
...@@ -377,10 +386,10 @@ packages: ...@@ -377,10 +386,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" sha256: "0bd04f5bb74fcd6ff0606a888a30e917af9bd52820b178eaa464beb11dca84b6"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.4.0"
synchronized: synchronized:
dependency: transitive dependency: transitive
description: description:
...@@ -401,12 +410,12 @@ packages: ...@@ -401,12 +410,12 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: typed_data
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.2" version: "1.4.0"
unicons: unicons:
dependency: "direct main" dependency: transitive
description: description:
name: unicons name: unicons
sha256: f3eab9d87c226415ef857cfd2167e1d12ad81ea1f5783b46cf644224fea4eab7 sha256: f3eab9d87c226415ef857cfd2167e1d12ad81ea1f5783b46cf644224fea4eab7
...@@ -433,10 +442,10 @@ packages: ...@@ -433,10 +442,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
sha256: "4d45dc9069dba4619dc0ebd93c7cec5e66d8482cb625a370ac806dcc8165f2ec" sha256: "2735daae5150e8b1dfeb3eb0544b4d3af0061e9e82cef063adcd583bdae4306a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.5.5" version: "5.7.0"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
...@@ -446,5 +455,5 @@ packages: ...@@ -446,5 +455,5 @@ packages:
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
sdks: sdks:
dart: ">=3.5.0 <4.0.0" dart: ">=3.5.3 <4.0.0"
flutter: ">=3.24.0" flutter: ">=3.24.0"
...@@ -3,7 +3,7 @@ description: Solitaire Game ...@@ -3,7 +3,7 @@ description: Solitaire Game
publish_to: "none" publish_to: "none"
version: 0.2.1+22 version: 0.3.0+23
environment: environment:
sdk: "^3.0.0" sdk: "^3.0.0"
...@@ -13,15 +13,10 @@ dependencies: ...@@ -13,15 +13,10 @@ dependencies:
sdk: flutter sdk: flutter
# base # base
auto_size_text: ^3.0.0 flutter_custom_toolbox:
easy_localization: ^3.0.1 git:
equatable: ^2.0.5 url: https://git.harrault.fr/android/flutter-toolbox.git
flutter_bloc: ^8.1.1 ref: 0.1.1
hive: ^2.2.3
hydrated_bloc: ^9.0.0
package_info_plus: ^8.0.0
path_provider: ^2.0.11
unicons: ^3.0.0
# specific # specific
# (none) # (none)
...@@ -35,15 +30,3 @@ flutter: ...@@ -35,15 +30,3 @@ flutter:
- assets/skins/ - assets/skins/
- assets/translations/ - assets/translations/
- assets/ui/ - assets/ui/
fonts:
- family: Nunito
fonts:
- asset: assets/fonts/Nunito-Bold.ttf
weight: 700
- asset: assets/fonts/Nunito-Medium.ttf
weight: 500
- asset: assets/fonts/Nunito-Regular.ttf
weight: 400
- asset: assets/fonts/Nunito-Light.ttf
weight: 300
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment