Skip to content

Commit 27f27b4

Browse files
authored
Merge pull request #199 from Pavel401/fix-settings
fix issue with settings switch delay
2 parents 7e9ba0a + 739f4b9 commit 27f27b4

File tree

2 files changed

+52
-28
lines changed

2 files changed

+52
-28
lines changed

Diff for: lib/drawer/nav_drawer.dart

+20-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
// ignore_for_file: library_private_types_in_public_api
1+
// ignore_for_file: library_private_types_in_public_api, use_build_context_synchronously
22

33
import 'package:flutter/material.dart';
44
import 'package:flutter/services.dart';
5+
import 'package:shared_preferences/shared_preferences.dart';
56
import 'package:sizer/sizer.dart';
67
import 'package:taskwarrior/config/app_settings.dart';
78
import 'package:taskwarrior/model/storage/storage_widget.dart';
@@ -115,10 +116,26 @@ class _NavDrawerState extends State<NavDrawer> {
115116
buildMenuItem(
116117
icon: Icons.settings,
117118
text: 'Settings',
118-
onTap: () {
119+
onTap: () async {
120+
bool syncOnStart = false;
121+
bool syncOnTaskCreate = false;
122+
123+
///check if auto sync is on or off
124+
final SharedPreferences prefs =
125+
await SharedPreferences.getInstance();
126+
setState(() {
127+
syncOnStart = prefs.getBool('sync-onStart') ?? false;
128+
syncOnTaskCreate =
129+
prefs.getBool('sync-OnTaskCreate') ?? false;
130+
});
131+
// print(syncOnStart);
132+
// print(syncOnTaskCreate);
119133
Navigator.of(context).push(
120134
MaterialPageRoute(
121-
builder: (context) => const SettingsPage(),
135+
builder: (context) => SettingsPage(
136+
isSyncOnStartActivel: syncOnStart,
137+
isSyncOnTaskCreateActivel: syncOnTaskCreate,
138+
),
122139
),
123140
);
124141
},

Diff for: lib/views/settings/settings.dart

+32-25
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// ignore_for_file: library_private_types_in_public_api
1+
// ignore_for_file: library_private_types_in_public_api, must_be_immutable
22

33
import 'package:flutter/material.dart';
44
import 'package:google_fonts/google_fonts.dart';
@@ -8,33 +8,41 @@ import 'package:taskwarrior/config/taskwarriorcolors.dart';
88
import 'package:taskwarrior/widgets/pallete.dart';
99

1010
class SettingsPage extends StatefulWidget {
11-
const SettingsPage({Key? key}) : super(key: key);
11+
SettingsPage(
12+
{Key? key,
13+
required this.isSyncOnStartActivel,
14+
required this.isSyncOnTaskCreateActivel})
15+
: super(key: key);
16+
bool isSyncOnStartActivel;
17+
bool isSyncOnTaskCreateActivel;
1218

1319
@override
1420
_SettingsPageState createState() => _SettingsPageState();
1521
}
1622

1723
class _SettingsPageState extends State<SettingsPage> {
18-
bool syncOnStart = false;
19-
bool syncOnTaskCreate = false;
24+
// bool syncOnStart = false;
25+
// bool syncOnTaskCreate = false;
2026

21-
checkAutoSync() async {
22-
///check if auto sync is on or off
23-
final SharedPreferences prefs = await SharedPreferences.getInstance();
24-
setState(() {
25-
syncOnStart = prefs.getBool('sync-onStart') ?? false;
26-
syncOnTaskCreate = prefs.getBool('sync-OnTaskCreate') ?? false;
27-
});
28-
}
27+
// checkAutoSync() async {
28+
// ///check if auto sync is on or off
29+
// final SharedPreferences prefs = await SharedPreferences.getInstance();
30+
// setState(() {
31+
// syncOnStart = prefs.getBool('sync-onStart') ?? false;
32+
// syncOnTaskCreate = prefs.getBool('sync-OnTaskCreate') ?? false;
33+
// });
34+
// }
2935

30-
@override
31-
void initState() {
32-
super.initState();
33-
checkAutoSync();
34-
}
36+
// @override
37+
// void initState() {
38+
// super.initState();
39+
// checkAutoSync();
40+
// }
3541

3642
@override
3743
Widget build(BuildContext context) {
44+
// syncOnStart = widget.isSyncOnStartActivel;
45+
// syncOnTaskCreate = widget.isSyncOnTaskCreateActivel;
3846
return Scaffold(
3947
appBar: AppBar(
4048
centerTitle: false,
@@ -90,18 +98,18 @@ class _SettingsPageState extends State<SettingsPage> {
9098
),
9199
),
92100
trailing: Switch(
93-
value: syncOnStart,
101+
value: widget.isSyncOnStartActivel,
94102
onChanged: (bool value) async {
95103
setState(() {
96-
syncOnStart = !syncOnStart;
104+
widget.isSyncOnStartActivel = value;
97105
});
98106

99107
final SharedPreferences prefs =
100108
await SharedPreferences.getInstance();
101-
await prefs.setBool('sync-onStart', syncOnStart);
109+
await prefs.setBool('sync-onStart', value);
102110
}),
103111
),
104-
const Divider(), // Add a divider between settings
112+
const Divider(),
105113
ListTile(
106114
title: Text(
107115
'Sync on Task Create',
@@ -119,18 +127,17 @@ class _SettingsPageState extends State<SettingsPage> {
119127
),
120128
),
121129
trailing: Switch(
122-
value: syncOnTaskCreate,
130+
value: widget.isSyncOnTaskCreateActivel,
123131
onChanged: (bool value) async {
124132
setState(() {
125-
syncOnTaskCreate = !syncOnTaskCreate;
133+
widget.isSyncOnTaskCreateActivel = value;
126134
});
127135

128136
final SharedPreferences prefs =
129137
await SharedPreferences.getInstance();
130-
await prefs.setBool('sync-OnTaskCreate', syncOnTaskCreate);
138+
await prefs.setBool('sync-OnTaskCreate', value);
131139
}),
132140
),
133-
// Add more settings here
134141
],
135142
),
136143
);

0 commit comments

Comments
 (0)