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

Merge branch '88-use-applicationsettings-widgets-from-flutter_custom_toolbox' into 'master'

Resolve "Use ApplicationSettings widgets from flutter_custom_toolbox"

Closes #88

See merge request !86
parents 2ddfa889 da0ce266
Branches
Tags Release_1.0.5_6
1 merge request!86Resolve "Use ApplicationSettings widgets from flutter_custom_toolbox"
Pipeline #6648 passed
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:flutter/material.dart';
part 'theme_state.dart';
class ThemeCubit extends HydratedCubit<ThemeModeState> {
ThemeCubit() : super(const ThemeModeState());
void getTheme(ThemeModeState state) {
emit(state);
}
@override
ThemeModeState? fromJson(Map<String, dynamic> json) {
switch (json['themeMode']) {
case 'ThemeMode.dark':
return const ThemeModeState(themeMode: ThemeMode.dark);
case 'ThemeMode.light':
return const ThemeModeState(themeMode: ThemeMode.light);
case 'ThemeMode.system':
default:
return const ThemeModeState(themeMode: ThemeMode.system);
}
}
@override
Map<String, String>? toJson(ThemeModeState state) {
return <String, String>{'themeMode': state.themeMode.toString()};
}
}
part of 'theme_cubit.dart';
@immutable
class ThemeModeState extends Equatable {
const ThemeModeState({
this.themeMode,
});
final ThemeMode? themeMode;
@override
List<Object?> get props => <Object?>[
themeMode,
];
}
...@@ -8,7 +8,6 @@ import 'package:random/cubit/bottom_nav_cubit.dart'; ...@@ -8,7 +8,6 @@ import 'package:random/cubit/bottom_nav_cubit.dart';
import 'package:random/cubit/data_cubit.dart'; import 'package:random/cubit/data_cubit.dart';
import 'package:random/cubit/game_cubit.dart'; import 'package:random/cubit/game_cubit.dart';
import 'package:random/cubit/settings_cubit.dart'; import 'package:random/cubit/settings_cubit.dart';
import 'package:random/cubit/theme_cubit.dart';
import 'package:random/repository/api.dart'; import 'package:random/repository/api.dart';
import 'package:random/network/api.dart'; import 'package:random/network/api.dart';
import 'package:random/ui/skeleton.dart'; import 'package:random/ui/skeleton.dart';
...@@ -55,10 +54,11 @@ class MyApp extends StatelessWidget { ...@@ -55,10 +54,11 @@ class MyApp extends StatelessWidget {
BlocProvider<DataCubit>(create: (context) => DataCubit()), BlocProvider<DataCubit>(create: (context) => DataCubit()),
BlocProvider<GameCubit>(create: (context) => GameCubit()), BlocProvider<GameCubit>(create: (context) => GameCubit()),
BlocProvider<SettingsCubit>(create: (context) => SettingsCubit()), BlocProvider<SettingsCubit>(create: (context) => SettingsCubit()),
BlocProvider<ThemeCubit>(create: (context) => ThemeCubit()), BlocProvider<ApplicationThemeModeCubit>(
create: (context) => ApplicationThemeModeCubit()),
], ],
child: BlocBuilder<ThemeCubit, ThemeModeState>( child: BlocBuilder<ApplicationThemeModeCubit, ApplicationThemeModeState>(
builder: (BuildContext context, ThemeModeState state) { builder: (BuildContext context, ApplicationThemeModeState state) {
return MaterialApp( return MaterialApp(
title: 'Random application', title: 'Random application',
theme: lightTheme, theme: lightTheme,
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:random/cubit/theme_cubit.dart';
class ThemeCard extends StatelessWidget { class ThemeCard extends StatelessWidget {
const ThemeCard({ const ThemeCard({
super.key, super.key,
...@@ -15,8 +13,8 @@ class ThemeCard extends StatelessWidget { ...@@ -15,8 +13,8 @@ class ThemeCard extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocBuilder<ThemeCubit, ThemeModeState>( return BlocBuilder<ApplicationThemeModeCubit, ApplicationThemeModeState>(
builder: (BuildContext context, ThemeModeState state) { builder: (BuildContext context, ApplicationThemeModeState state) {
return Card( return Card(
elevation: 2, elevation: 2,
shadowColor: Theme.of(context).colorScheme.shadow, shadowColor: Theme.of(context).colorScheme.shadow,
...@@ -28,8 +26,8 @@ class ThemeCard extends StatelessWidget { ...@@ -28,8 +26,8 @@ class ThemeCard extends StatelessWidget {
), ),
margin: const EdgeInsets.all(5), margin: const EdgeInsets.all(5),
child: InkWell( child: InkWell(
onTap: () => BlocProvider.of<ThemeCubit>(context).getTheme( onTap: () => BlocProvider.of<ApplicationThemeModeCubit>(context).getTheme(
ThemeModeState(themeMode: mode), ApplicationThemeModeState(themeMode: mode),
), ),
borderRadius: const BorderRadius.all(Radius.circular(12)), borderRadius: const BorderRadius.all(Radius.circular(12)),
child: Icon( child: Icon(
......
...@@ -194,11 +194,11 @@ packages: ...@@ -194,11 +194,11 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
path: "." path: "."
ref: "0.1.1" ref: "0.2.0"
resolved-ref: ba7137ca9edec7e503ed3dbfe7f6ede7e9cfbf4d resolved-ref: bbf0abd5457d42678882384216af9e83c38549bc
url: "https://git.harrault.fr/android/flutter-toolbox.git" url: "https://git.harrault.fr/android/flutter-toolbox.git"
source: git source: git
version: "0.1.1" version: "0.2.0"
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
......
...@@ -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.2.0+69 version: 1.2.1+70
environment: environment:
sdk: "^3.0.0" sdk: "^3.0.0"
...@@ -16,7 +16,7 @@ dependencies: ...@@ -16,7 +16,7 @@ dependencies:
flutter_custom_toolbox: flutter_custom_toolbox:
git: git:
url: https://git.harrault.fr/android/flutter-toolbox.git url: https://git.harrault.fr/android/flutter-toolbox.git
ref: 0.1.1 ref: 0.2.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