update theme & settingsview to enums

This commit is contained in:
2025-07-30 20:33:34 +02:00
parent 20537c88c1
commit fc062b2135
2 changed files with 70 additions and 48 deletions

View File

@@ -8,8 +8,17 @@ class LanguageView extends StatefulWidget {
State<LanguageView> createState() => _LanguageViewState(); State<LanguageView> createState() => _LanguageViewState();
} }
enum languageOptions {
systemDefault('Systemstandard'),
german('Deutsch'),
english('English');
final String label;
const languageOptions(this.label);
}
class _LanguageViewState extends State<LanguageView> { class _LanguageViewState extends State<LanguageView> {
String _selectedLanguage = "Systemstandard"; languageOptions? _selectedLanguage = languageOptions.systemDefault;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -19,47 +28,49 @@ class _LanguageViewState extends State<LanguageView> {
body: Column( body: Column(
children: [ children: [
ListTile( ListTile(
title: Text("Systemstandard"), title: Text(languageOptions.systemDefault.label),
onTap: () { onTap: () {
setState(() { setState(() {
_selectedLanguage = "Systemstandard"; _selectedLanguage = languageOptions.systemDefault;
}); });
}, },
leading: Radio( leading: Radio(
value: "Systemstandard", value: languageOptions.systemDefault,
groupValue: _selectedLanguage,
onChanged: (value) {
setState(() {
_selectedLanguage = languageOptions.systemDefault;
});
},
),
),
ListTile(
title: Text(languageOptions.german.label),
onTap: () {
setState(() {
_selectedLanguage = languageOptions.german;
});
},
leading: Radio(
value: languageOptions.german,
groupValue: _selectedLanguage, groupValue: _selectedLanguage,
onChanged: (value) {setState(() { onChanged: (value) {setState(() {
_selectedLanguage = value.toString(); _selectedLanguage = languageOptions.german;
});}, });},
), ),
), ),
ListTile( ListTile(
title: Text("Deutsch"), title: Text(languageOptions.english.label),
onTap: () { onTap: () {
setState(() { setState(() {
_selectedLanguage = "Deutsch"; _selectedLanguage = languageOptions.english;
}); });
}, },
leading: Radio( leading: Radio(
value: "Deutsch", value: languageOptions.english,
groupValue: _selectedLanguage,
onChanged: (value) {setState(() {
_selectedLanguage = value.toString();
});},
),
),
ListTile(
title: Text("Englisch"),
onTap: () {
setState(() {
_selectedLanguage = "Englisch";
});
},
leading: Radio(
value: "Englisch",
groupValue: _selectedLanguage, groupValue: _selectedLanguage,
onChanged: (value) {setState(() { onChanged: (value) {setState(() {
_selectedLanguage = value.toString(); _selectedLanguage = languageOptions.english;
});}, });},
), ),
) )

View File

@@ -8,8 +8,17 @@ class ThemeView extends StatefulWidget {
State<ThemeView> createState() => _ThemeViewState(); State<ThemeView> createState() => _ThemeViewState();
} }
enum themeOptions {
systemDefault('Systemstandard'),
dark('Dunkel'),
light('Hell');
final String label;
const themeOptions(this.label);
}
class _ThemeViewState extends State<ThemeView> { class _ThemeViewState extends State<ThemeView> {
String _selectedTheme = "Systemstandard"; themeOptions? _selectedTheme = themeOptions.systemDefault;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -19,47 +28,49 @@ class _ThemeViewState extends State<ThemeView> {
body: Column( body: Column(
children: [ children: [
ListTile( ListTile(
title: Text("Systemstandard"), title: Text(themeOptions.systemDefault.label),
onTap: () { onTap: () {
setState(() { setState(() {
_selectedTheme = "Systemstandard"; _selectedTheme = themeOptions.systemDefault;
}); });
}, },
leading: Radio( leading: Radio(
value: "Systemstandard", value: themeOptions.systemDefault,
groupValue: _selectedTheme,
onChanged: (value) {
setState(() {
_selectedTheme = themeOptions.systemDefault;
});
},
),
),
ListTile(
title: Text(themeOptions.dark.label),
onTap: () {
setState(() {
_selectedTheme = themeOptions.dark;
});
},
leading: Radio(
value: themeOptions.dark,
groupValue: _selectedTheme, groupValue: _selectedTheme,
onChanged: (value) {setState(() { onChanged: (value) {setState(() {
_selectedTheme = value.toString(); _selectedTheme = themeOptions.dark;
});}, });},
), ),
), ),
ListTile( ListTile(
title: Text("Dunkel"), title: Text(themeOptions.light.label),
onTap: () { onTap: () {
setState(() { setState(() {
_selectedTheme = "Dunkel"; _selectedTheme = themeOptions.light;
}); });
}, },
leading: Radio( leading: Radio(
value: "Dunkel", value: themeOptions.light,
groupValue: _selectedTheme,
onChanged: (value) {setState(() {
_selectedTheme = value.toString();
});},
),
),
ListTile(
title: Text("Hell"),
onTap: () {
setState(() {
_selectedTheme = "Hell";
});
},
leading: Radio(
value: "Hell",
groupValue: _selectedTheme, groupValue: _selectedTheme,
onChanged: (value) {setState(() { onChanged: (value) {setState(() {
_selectedTheme = value.toString(); _selectedTheme = themeOptions.light;
});}, });},
), ),
) )