Skip to content

Commit 7b3f63a

Browse files
committed
Merge branch 'develop'
2 parents cf6b19b + 4ee7003 commit 7b3f63a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1714
-1074
lines changed

lib/app/app.dart

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,32 @@
11
import 'package:flutter/material.dart';
2-
import 'package:universal_io/io.dart';
2+
import 'package:provider/provider.dart';
33

44
import '../l10n/l10ns.dart';
5+
import 'app_state.dart';
56
import 'home_page.dart';
67

7-
class App extends StatefulWidget {
8+
class App extends StatelessWidget {
89
const App({super.key});
910

10-
@override
11-
State<App> createState() => _AppState();
12-
}
13-
14-
class _AppState extends State<App> {
15-
Locale _selectedLocale = Locale(Platform.localeName.split('_')[0]);
16-
1711
@override
1812
Widget build(BuildContext context) {
19-
return MaterialApp(
20-
title: 'DST Helper',
21-
restorationScopeId: 'restoration_scope_id_dst_helper_0.0.1_0_debug',
22-
locale: _selectedLocale,
23-
localizationsDelegates: L10ns.localizationsDelegates,
24-
supportedLocales: L10ns.supportedLocales,
25-
theme: ThemeData(
26-
colorScheme: ColorScheme.fromSeed(seedColor: Colors.brown.shade800),
27-
useMaterial3: true,
28-
),
29-
home: HomePage(
30-
onSelectedLocale: (locale) {
31-
setState(() {
32-
_selectedLocale = locale;
33-
});
34-
},
35-
selectedLocale: _selectedLocale,
36-
),
13+
return ChangeNotifierProvider(
14+
create: (context) => AppState(),
15+
builder: (context, child) {
16+
final appState = context.watch<AppState>();
17+
return MaterialApp(
18+
title: 'DST Helper',
19+
restorationScopeId: 'restoration_scope_id_dst_helper_0.0.1_0_debug',
20+
locale: appState.currentLocale,
21+
localizationsDelegates: L10ns.localizationsDelegates,
22+
supportedLocales: L10ns.supportedLocales,
23+
theme: ThemeData(
24+
colorScheme: ColorScheme.fromSeed(seedColor: Colors.brown.shade800),
25+
useMaterial3: true,
26+
),
27+
home: const HomePage(),
28+
);
29+
},
3730
);
3831
}
3932
}

lib/app/app_state.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:universal_io/io.dart';
3+
4+
class AppState extends ChangeNotifier {
5+
Locale _currentLocale = Locale(Platform.localeName.split('_')[0]);
6+
Locale get currentLocale => _currentLocale;
7+
set currentLocale(Locale value) {
8+
_currentLocale = value;
9+
notifyListeners();
10+
}
11+
}

lib/app/home_page.dart

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import 'package:flutter/foundation.dart';
22
import 'package:flutter/material.dart';
3+
import 'package:provider/provider.dart';
34
import 'package:url_launcher/url_launcher.dart';
45

56
import '../cook_page/cook_page.dart';
67
import '../farm_page/farm_page.dart';
78
import '../utils/custom_icon/custom_icon_icons.dart';
89
import '../utils/font_family.dart';
10+
import 'app_state.dart';
911
import 'models/menu.dart';
1012

1113
enum AvailableLanguage {
@@ -16,13 +18,8 @@ enum AvailableLanguage {
1618
class HomePage extends StatefulWidget {
1719
const HomePage({
1820
super.key,
19-
required this.onSelectedLocale,
20-
required this.selectedLocale,
2121
});
2222

23-
final void Function(Locale) onSelectedLocale;
24-
final Locale selectedLocale;
25-
2623
@override
2724
State<HomePage> createState() => _HomePageState();
2825
}
@@ -39,8 +36,8 @@ class _HomePageState extends State<HomePage> {
3936
@override
4037
Widget build(BuildContext context) {
4138
final colorScheme = Theme.of(context).colorScheme;
42-
4339
final selectedMenu = _selectedMenuState.firstWhere((element) => element.$2 == true).$1;
40+
final appState = context.watch<AppState>();
4441

4542
return Scaffold(
4643
backgroundColor: colorScheme.surfaceContainerLowest,
@@ -59,9 +56,9 @@ class _HomePageState extends State<HomePage> {
5956
),
6057
const SizedBox(width: 20),
6158
LanguagePopupMenuButton(
62-
selectedLocaleName: widget.selectedLocale.localizedName,
59+
selectedLocaleName: appState.currentLocale.localizedName,
6360
onSelected: (AvailableLanguage item) {
64-
widget.onSelectedLocale(Locale(item.name));
61+
appState.currentLocale = Locale(item.name);
6562
},
6663
),
6764
const SizedBox(width: 30),

lib/farm_page/edit_farm_set/components/analysis_view/analysis_view.dart

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,28 @@
11
import 'dart:ui';
22

33
import 'package:flutter/material.dart';
4+
import 'package:provider/provider.dart';
45

56
import '../../../../l10n/l10ns.dart';
67
import '../../../../utils/font_family.dart';
7-
import 'analysis_view_controller.dart';
8-
import 'family_condition_box.dart';
8+
import '../../farm_group_edit_controller.dart';
9+
import 'family_condition/family_condition_box.dart';
910
import 'nutrient_condition_box.dart';
1011
import 'season_condition_box.dart';
1112

1213
class AnalysisView extends StatelessWidget {
1314
const AnalysisView({
1415
super.key,
15-
required this.width,
16-
required this.height,
17-
required this.controller,
1816
});
1917

20-
final AnalysisViewController controller;
21-
22-
final double width;
23-
final double height;
24-
2518
@override
2619
Widget build(BuildContext context) {
2720
const BorderRadius conditionGroupBorderRadius = BorderRadius.all(Radius.circular(12));
21+
final controller = context.read<FarmGroupEditController>().analysisViewController;
22+
2823
return SizedBox(
29-
width: width,
30-
height: height,
24+
width: 400,
25+
height: 356,
3126
child: ValueListenableBuilder(
3227
valueListenable: controller.isSatisfying,
3328
builder: (context, isSatisfying, child) {

lib/farm_page/edit_farm_set/components/analysis_view/analysis_view_controller.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:flutter/material.dart';
22

3-
import 'family_condition_box.dart';
3+
import 'family_condition/family_condition_box.dart';
44
import 'nutrient_condition_box.dart';
55
import 'season_condition_box.dart';
66

lib/farm_page/edit_farm_set/components/analysis_view/family_condition.dart

Lines changed: 0 additions & 156 deletions
This file was deleted.

0 commit comments

Comments
 (0)