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

Merge branch '74-use-flutter_toolbox-lib' into 'master'

Resolve "Use flutter_toolbox lib"

Closes #74

See merge request !84
parents 9f0982fb a3b9cc0e
No related branches found
No related tags found
1 merge request!84Resolve "Use flutter_toolbox lib"
Pipeline #6497 passed
Showing
with 53 additions and 147 deletions
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:unicons/unicons.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:random/ui/widgets/take_picture_widget.dart'; import 'package:random/ui/widgets/take_picture_widget.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:unicons/unicons.dart';
import 'package:random/config/theme.dart';
import 'package:random/cubit/data_cubit.dart'; import 'package:random/cubit/data_cubit.dart';
import 'package:random/cubit/settings_cubit.dart'; import 'package:random/cubit/settings_cubit.dart';
import 'package:random/ui/widgets/header_app.dart'; import 'package:random/ui/widgets/header_app.dart';
import 'package:random/ui/helpers/styled_button.dart';
import 'package:random/ui/helpers/styled_container.dart';
import 'package:random/utils/tools.dart';
class DemoPage extends StatelessWidget { class DemoPage extends StatelessWidget {
const DemoPage({super.key}); const DemoPage({super.key});
...@@ -22,7 +17,7 @@ class DemoPage extends StatelessWidget { ...@@ -22,7 +17,7 @@ class DemoPage extends StatelessWidget {
physics: const BouncingScrollPhysics(), physics: const BouncingScrollPhysics(),
children: <Widget>[ children: <Widget>[
const SizedBox(height: 8), const SizedBox(height: 8),
const AppHeader(text: 'TOP'), const AppHeaderCustom(text: 'TOP'),
const SizedBox(height: 20), const SizedBox(height: 20),
StyledContainer( StyledContainer(
child: persistedCounterBlock(BlocProvider.of<DataCubit>(context)), child: persistedCounterBlock(BlocProvider.of<DataCubit>(context)),
...@@ -48,7 +43,7 @@ class DemoPage extends StatelessWidget { ...@@ -48,7 +43,7 @@ class DemoPage extends StatelessWidget {
const SizedBox(height: 8), const SizedBox(height: 8),
fakeApiCall(), fakeApiCall(),
const SizedBox(height: 8), const SizedBox(height: 8),
const AppHeader(text: 'BOTTOM'), const AppHeaderCustom(text: 'BOTTOM'),
const SizedBox(height: 8), const SizedBox(height: 8),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
......
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:unicons/unicons.dart';
import 'package:random/cubit/game_cubit.dart'; import 'package:random/cubit/game_cubit.dart';
import 'package:random/models/game/game.dart'; import 'package:random/models/game/game.dart';
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:random/ui/painters/graph_painter.dart'; import 'package:random/ui/painters/graph_painter.dart';
import 'package:random/utils/tools.dart';
class GraphPage extends StatefulWidget { class GraphPage extends StatefulWidget {
const GraphPage({super.key}); const GraphPage({super.key});
......
...@@ -14,7 +14,7 @@ class SettingsPage extends StatelessWidget { ...@@ -14,7 +14,7 @@ class SettingsPage extends StatelessWidget {
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: <Widget>[ children: <Widget>[
SizedBox(height: 8), SizedBox(height: 8),
AppHeader(text: 'settings_title'), AppHeaderCustom(text: 'settings_title'),
SizedBox(height: 8), SizedBox(height: 8),
SettingsForm(), SettingsForm(),
], ],
......
import 'package:curved_navigation_bar/curved_navigation_bar.dart'; import 'package:curved_navigation_bar/curved_navigation_bar.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:random/config/menu.dart'; import 'package:random/config/menu.dart';
import 'package:random/cubit/bottom_nav_cubit.dart'; import 'package:random/cubit/bottom_nav_cubit.dart';
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/widgets/show_error.dart';
import 'package:random/models/api_data.dart'; import 'package:random/models/api_data.dart';
import 'package:random/models/api_status.dart'; import 'package:random/models/api_status.dart';
import 'package:random/ui/widgets/error.dart';
class ApiDataWidget extends StatelessWidget { class ApiDataWidget extends StatelessWidget {
const ApiDataWidget({ const ApiDataWidget({
......
...@@ -8,7 +8,7 @@ class StandardAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -8,7 +8,7 @@ class StandardAppBar extends StatelessWidget implements PreferredSizeWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppBar( return AppBar(
title: const AppHeader(text: 'app_name'), title: const AppHeaderCustom(text: 'app_name'),
actions: const [ actions: const [
// //
], ],
......
import 'package:flutter/material.dart';
class DebugBloc extends StatelessWidget {
const DebugBloc({super.key, required this.content});
final String content;
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.red,
border: Border.all(
color: Colors.grey,
width: 2,
),
),
child: Padding(
padding: const EdgeInsets.all(5),
child: Text(
content,
textAlign: TextAlign.start,
style: const TextStyle(fontSize: 13),
),
),
);
}
}
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
class ShowErrorWidget extends StatelessWidget {
const ShowErrorWidget({super.key, required this.message});
final String message;
@override
Widget build(BuildContext context) {
return Text(
'⚠️ ${tr(message)}',
textAlign: TextAlign.start,
style: const TextStyle(color: Colors.red),
);
}
}
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:random/cubit/game_cubit.dart'; import 'package:random/cubit/game_cubit.dart';
import 'package:random/models/game/game.dart'; import 'package:random/models/game/game.dart';
import 'package:random/models/game/game_settings.dart'; import 'package:random/models/game/game_settings.dart';
import 'package:random/ui/painters/cell_painter.dart'; import 'package:random/ui/painters/cell_painter.dart';
import 'package:random/ui/widgets/game/game_score.dart'; import 'package:random/ui/widgets/game/game_score.dart';
import 'package:random/utils/tools.dart';
class GameBoardWidget extends StatefulWidget { class GameBoardWidget extends StatefulWidget {
const GameBoardWidget({ const GameBoardWidget({
......
import 'package:easy_localization/easy_localization.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:random/cubit/data_cubit.dart'; import 'package:random/cubit/data_cubit.dart';
import 'package:random/cubit/api_cubit.dart'; import 'package:random/cubit/api_cubit.dart';
import 'package:random/cubit/settings_cubit.dart'; import 'package:random/cubit/settings_cubit.dart';
import 'package:random/models/interface_type.dart'; import 'package:random/models/interface_type.dart';
class AppHeader extends StatelessWidget { class AppHeaderCustom extends StatelessWidget {
const AppHeader({super.key, required this.text}); const AppHeaderCustom({super.key, required this.text});
final String text; final String text;
......
import 'package:easy_localization/easy_localization.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:unicons/unicons.dart';
import 'package:random/cubit/settings_cubit.dart'; import 'package:random/cubit/settings_cubit.dart';
import 'package:random/config/theme.dart';
import 'package:random/models/interface_type.dart'; import 'package:random/models/interface_type.dart';
import 'package:random/ui/widgets/theme_card.dart'; import 'package:random/ui/widgets/theme_card.dart';
......
...@@ -2,10 +2,9 @@ import 'dart:io'; ...@@ -2,10 +2,9 @@ import 'dart:io';
import 'package:camera/camera.dart'; import 'package:camera/camera.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:unicons/unicons.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:random/utils/picture_storage.dart'; import 'package:random/utils/picture_storage.dart';
import 'package:random/utils/tools.dart';
class TakePictureWidget extends StatefulWidget { class TakePictureWidget extends StatefulWidget {
const TakePictureWidget({super.key}); const TakePictureWidget({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:random/cubit/theme_cubit.dart'; import 'package:random/cubit/theme_cubit.dart';
......
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 'dart:io'; import 'dart:io';
import 'package:path/path.dart'; import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:random/utils/tools.dart';
class PictureStorage { class PictureStorage {
Future<String> get _localPath async { Future<String> get _localPath async {
......
import 'package:flutter/foundation.dart';
void printlog(String message) {
if (!kReleaseMode) {
debugPrint(message);
}
}
...@@ -5,10 +5,10 @@ packages: ...@@ -5,10 +5,10 @@ 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:
...@@ -18,7 +18,7 @@ packages: ...@@ -18,7 +18,7 @@ packages:
source: hosted source: hosted
version: "2.11.0" version: "2.11.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"
...@@ -109,10 +109,10 @@ packages: ...@@ -109,10 +109,10 @@ 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"
curved_navigation_bar: curved_navigation_bar:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -138,7 +138,7 @@ packages: ...@@ -138,7 +138,7 @@ packages:
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
easy_localization: easy_localization:
dependency: "direct main" dependency: transitive
description: description:
name: easy_localization name: easy_localization
sha256: fa59bcdbbb911a764aa6acf96bbb6fa7a5cf8234354fc45ec1a43a0349ef0201 sha256: fa59bcdbbb911a764aa6acf96bbb6fa7a5cf8234354fc45ec1a43a0349ef0201
...@@ -154,7 +154,7 @@ packages: ...@@ -154,7 +154,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
...@@ -183,13 +183,22 @@ packages: ...@@ -183,13 +183,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.0"
resolved-ref: ff755f2ce78457881908d5a3afce728a47315469
url: "https://git.harrault.fr/android/flutter-toolbox.git"
source: git
version: "0.1.0"
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
...@@ -217,7 +226,7 @@ packages: ...@@ -217,7 +226,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"
...@@ -241,7 +250,7 @@ packages: ...@@ -241,7 +250,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
...@@ -289,13 +298,13 @@ packages: ...@@ -289,13 +298,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:
...@@ -313,7 +322,7 @@ packages: ...@@ -313,7 +322,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
...@@ -364,10 +373,10 @@ packages: ...@@ -364,10 +373,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:
...@@ -494,7 +503,7 @@ packages: ...@@ -494,7 +503,7 @@ packages:
source: hosted source: hosted
version: "1.3.2" version: "1.3.2"
unicons: unicons:
dependency: "direct main" dependency: transitive
description: description:
name: unicons name: unicons
sha256: f3eab9d87c226415ef857cfd2167e1d12ad81ea1f5783b46cf644224fea4eab7 sha256: f3eab9d87c226415ef857cfd2167e1d12ad81ea1f5783b46cf644224fea4eab7
...@@ -521,10 +530,10 @@ packages: ...@@ -521,10 +530,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:
...@@ -534,5 +543,5 @@ packages: ...@@ -534,5 +543,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: A random application, for testing purpose only. ...@@ -3,7 +3,7 @@ description: A random application, for testing purpose only.
publish_to: "none" publish_to: "none"
version: 1.1.2+67 version: 1.1.3+68
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.0
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
camera: ^0.11.0+2 camera: ^0.11.0+2
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment