Skip to content

Commit c843d2b

Browse files
committed
feat: wind chart card switch
1 parent 854baf3 commit c843d2b

4 files changed

Lines changed: 29 additions & 11 deletions

File tree

lib/app/home/home_display_mode.dart

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

lib/app/home/page.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import 'package:dpip/app/home/_widgets/radar_card.dart';
3030
import 'package:dpip/app/home/_widgets/thunderstorm_card.dart';
3131
import 'package:dpip/app/home/_widgets/wind_card.dart';
3232
import 'package:dpip/app/settings/donate/page.dart';
33-
import 'package:dpip/app/settings/layout/page.dart';
3433
import 'package:dpip/core/gps_location.dart';
3534
import 'package:dpip/core/i18n.dart';
3635
import 'package:dpip/core/preference.dart';
@@ -45,8 +44,6 @@ import 'package:dpip/utils/log.dart';
4544
import 'package:dpip/widgets/rain_shader_background.dart';
4645
import 'package:dpip/widgets/responsive/responsive_container.dart';
4746

48-
import 'home_display_mode.dart';
49-
5047
class HomePage extends StatefulWidget {
5148
const HomePage({super.key});
5249

@@ -456,7 +453,10 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
456453
if (homeSections.contains(HomeDisplaySection.radar)) _buildRadarMap(),
457454
if (homeSections.contains(HomeDisplaySection.forecast))
458455
_buildForecast(),
459-
if (!_isLoading && _weather != null) _buildWindCard(),
456+
if (!_isLoading &&
457+
homeSections.contains(HomeDisplaySection.wind) &&
458+
_weather != null)
459+
_buildWindCard(),
460460
_buildCommunityCards(),
461461
if (homeSections.contains(HomeDisplaySection.history))
462462
_buildHistoryTimeline(),

lib/app/settings/layout/page.dart

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import 'package:flutter/material.dart';
55
import 'package:material_symbols_icons/symbols.dart';
66
import 'package:provider/provider.dart';
77

8-
import 'package:dpip/app/home/home_display_mode.dart';
98
import 'package:dpip/core/i18n.dart';
109
import 'package:dpip/models/settings/ui.dart';
1110
import 'package:dpip/utils/extensions/build_context.dart';
@@ -64,6 +63,25 @@ class SettingsLayoutPage extends StatelessWidget {
6463
);
6564
},
6665
),
66+
Selector<SettingsUserInterfaceModel, bool>(
67+
selector: (context, model) => model.isEnabled(.wind),
68+
builder: (context, isEnabled, child) {
69+
return SectionListTile(
70+
leading: ContainedIcon(
71+
Symbols.wind_power_rounded,
72+
color: Colors.orangeAccent,
73+
),
74+
title: Text('風向'.i18n),
75+
subtitle: Text('顯示風向與風力級數'.i18n),
76+
trailing: Switch(
77+
value: isEnabled,
78+
onChanged: (value) {
79+
context.userInterface.toggleSection(.wind, value);
80+
},
81+
),
82+
);
83+
},
84+
),
6785
Selector<SettingsUserInterfaceModel, bool>(
6886
selector: (context, model) => model.isEnabled(.history),
6987
builder: (context, isEnabled, child) {

lib/models/settings/ui.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ import 'package:dpip/utils/extensions/string.dart';
77
import 'package:flutter/material.dart';
88
import 'package:provider/provider.dart';
99

10-
import '../../app/home/home_display_mode.dart';
10+
enum HomeDisplaySection {
11+
radar,
12+
forecast,
13+
history,
14+
wind,
15+
}
1116

1217
class SettingsUserInterfaceModel extends ChangeNotifier {
1318
void _log(String message) => log(message, name: 'SettingsUserInterfaceModel');

0 commit comments

Comments
 (0)