fix: code-review findings — error handling, null safety, persist settings, auth header
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import '../config/app_config.dart';
|
||||
import '../utils/farb_theme.dart';
|
||||
import 'cloud_screen.dart';
|
||||
@@ -15,6 +16,17 @@ class SettingsScreen extends StatefulWidget {
|
||||
class _SettingsScreenState extends State<SettingsScreen> {
|
||||
bool _diagnose = AppConfig.sendeDiagnosedaten;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_ladeDiagnose();
|
||||
}
|
||||
|
||||
Future<void> _ladeDiagnose() async {
|
||||
final p = await SharedPreferences.getInstance();
|
||||
if (mounted) setState(() => _diagnose = p.getBool('diagnose_daten') ?? AppConfig.sendeDiagnosedaten);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
@@ -84,9 +96,11 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
value: _diagnose,
|
||||
activeThumbColor: MeloTheme.rot,
|
||||
onChanged: (v) {
|
||||
onChanged: (v) async {
|
||||
setState(() => _diagnose = v);
|
||||
AppConfig.sendeDiagnosedaten = v;
|
||||
final p = await SharedPreferences.getInstance();
|
||||
p.setBool('diagnose_daten', v);
|
||||
},
|
||||
secondary: const Icon(Icons.bug_report_outlined, color: MeloTheme.rot, size: 22),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user