made settingsservice to collection of util functions to prevent diffrent instances and therefore different states
parent
4e2dd41adc
commit
e4cfa701d6
|
@ -16,7 +16,6 @@ class MyHomePage extends StatefulWidget {
|
||||||
|
|
||||||
class MyHomePageState extends State<MyHomePage> {
|
class MyHomePageState extends State<MyHomePage> {
|
||||||
int _selectedIndex = 4;
|
int _selectedIndex = 4;
|
||||||
final SettingsService settingsService = SettingsService();
|
|
||||||
|
|
||||||
final List<String> _titles = [
|
final List<String> _titles = [
|
||||||
'Stimmung',
|
'Stimmung',
|
||||||
|
@ -33,17 +32,15 @@ class MyHomePageState extends State<MyHomePage> {
|
||||||
SettingsPage(),
|
SettingsPage(),
|
||||||
];
|
];
|
||||||
|
|
||||||
void _onItemTapped(int index) {
|
Future<void> _onItemTapped(int index) async {
|
||||||
setState(() async {
|
bool isConfigured = (await getGroup()) != null;
|
||||||
(await settingsService.getGroup() != null)
|
print('Gruppe: ${await getGroup()}, isConfigured: $isConfigured');
|
||||||
|
setState(() {
|
||||||
|
isConfigured
|
||||||
? _selectedIndex = index
|
? _selectedIndex = index
|
||||||
: showDialog(
|
: showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
Future.delayed(
|
|
||||||
const Duration(seconds: 3),
|
|
||||||
() => Navigator.of(context)
|
|
||||||
.pop(true)); //Dismiss popup after 3 seconds
|
|
||||||
return const MissingConfigPopup();
|
return const MissingConfigPopup();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,7 +3,6 @@ import 'package:smoke_cess_app/service/settings_service.dart';
|
||||||
|
|
||||||
class SettingsPage extends StatelessWidget {
|
class SettingsPage extends StatelessWidget {
|
||||||
SettingsPage({super.key});
|
SettingsPage({super.key});
|
||||||
SettingsService service = SettingsService();
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -17,7 +16,7 @@ class SettingsPage extends StatelessWidget {
|
||||||
style: ElevatedButton.styleFrom(
|
style: ElevatedButton.styleFrom(
|
||||||
textStyle: const TextStyle(fontSize: 20)),
|
textStyle: const TextStyle(fontSize: 20)),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
service.loadSettings();
|
loadSettings();
|
||||||
},
|
},
|
||||||
child: const Text('Read JSON'),
|
child: const Text('Read JSON'),
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ class StopWatchTimerPage extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class StopWatchTimerPageState extends State<StopWatchTimerPage> {
|
class StopWatchTimerPageState extends State<StopWatchTimerPage> {
|
||||||
SettingsService settings = SettingsService();
|
|
||||||
Duration duration = const Duration(minutes: 1);
|
Duration duration = const Duration(minutes: 1);
|
||||||
Timer? timer;
|
Timer? timer;
|
||||||
|
|
||||||
|
@ -19,22 +18,12 @@ class StopWatchTimerPageState extends State<StopWatchTimerPage> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
setDurationWithSetting();
|
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setDurationWithSetting() {
|
|
||||||
settings.getIntSetting('workout_duration_minutes').then((workoutMinutes) =>
|
|
||||||
{setState(() => duration = Duration(minutes: workoutMinutes ?? 10))});
|
|
||||||
}
|
|
||||||
|
|
||||||
void reset() {
|
void reset() {
|
||||||
if (countDown) {
|
|
||||||
setDurationWithSetting();
|
|
||||||
} else {
|
|
||||||
setState(() => duration = const Duration());
|
setState(() => duration = const Duration());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void startTimer() {
|
void startTimer() {
|
||||||
timer = Timer.periodic(const Duration(seconds: 1), (_) => addTime());
|
timer = Timer.periodic(const Duration(seconds: 1), (_) => addTime());
|
||||||
|
|
|
@ -2,13 +2,8 @@ import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'package:smoke_cess_app/models/settings.dart';
|
import 'package:smoke_cess_app/models/settings.dart';
|
||||||
import 'package:smoke_cess_app/service/json_service.dart';
|
import 'package:smoke_cess_app/service/json_service.dart';
|
||||||
|
|
||||||
class SettingsService {
|
|
||||||
final Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
|
final Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
|
||||||
|
|
||||||
SettingsService() {
|
|
||||||
setIntSetting('workout_duration_minutes', 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
//access group setting which was saved in local storage
|
//access group setting which was saved in local storage
|
||||||
Future<String?> getGroup() {
|
Future<String?> getGroup() {
|
||||||
return getStringSetting('group');
|
return getStringSetting('group');
|
||||||
|
@ -46,4 +41,3 @@ class SettingsService {
|
||||||
setStringSetting('group', settings.group);
|
setStringSetting('group', settings.group);
|
||||||
setStringSetting('key', settings.key);
|
setStringSetting('key', settings.key);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue