From 5b9187d54527fb3b5c0a169f424ae1cf61954770 Mon Sep 17 00:00:00 2001 From: Kima Date: Mon, 29 Jan 2024 21:28:39 +0100 Subject: [PATCH] general settings updated --- .../settings/submenu/general_screen.dart | 114 +++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/filcnaplo_mobile_ui/lib/screens/settings/submenu/general_screen.dart b/filcnaplo_mobile_ui/lib/screens/settings/submenu/general_screen.dart index 76f0a0c..295caf2 100644 --- a/filcnaplo_mobile_ui/lib/screens/settings/submenu/general_screen.dart +++ b/filcnaplo_mobile_ui/lib/screens/settings/submenu/general_screen.dart @@ -1,5 +1,6 @@ import 'package:filcnaplo/models/settings.dart'; import 'package:filcnaplo/theme/colors/colors.dart'; +import 'package:filcnaplo/utils/format.dart'; import 'package:filcnaplo_mobile_ui/common/panel/panel_button.dart'; import 'package:filcnaplo_mobile_ui/common/splitted_panel/splitted_panel.dart'; import 'package:filcnaplo_mobile_ui/screens/settings/settings_helper.dart'; @@ -7,7 +8,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_feather_icons/flutter_feather_icons.dart'; import 'package:provider/provider.dart'; -import 'submenu_screen.i18n.dart'; +import 'package:filcnaplo_mobile_ui/screens/settings/settings_screen.i18n.dart'; class MenuGeneralSettings extends StatelessWidget { const MenuGeneralSettings({ @@ -52,6 +53,18 @@ class GeneralSettingsScreenState extends State { Widget build(BuildContext context) { SettingsProvider settingsProvider = Provider.of(context); + String startPageTitle = + SettingsHelper.localizedPageTitles()[settingsProvider.startPage] ?? "?"; + String languageText = + SettingsHelper.langMap[settingsProvider.language] ?? "?"; + String vibrateTitle = { + VibrationStrength.off: "voff".i18n, + VibrationStrength.light: "vlight".i18n, + VibrationStrength.medium: "vmedium".i18n, + VibrationStrength.strong: "vstrong".i18n, + }[settingsProvider.vibrate] ?? + "?"; + return Scaffold( appBar: AppBar( surfaceTintColor: Theme.of(context).scaffoldBackgroundColor, @@ -176,6 +189,105 @@ class GeneralSettingsScreenState extends State { ), ], ), + SplittedPanel( + padding: const EdgeInsets.only(top: 9.0), + cardPadding: const EdgeInsets.all(4.0), + isSeparated: true, + children: [ + PanelButton( + padding: const EdgeInsets.only(left: 14.0, right: 6.0), + onPressed: () { + SettingsHelper.startPage(context); + setState(() {}); + }, + title: Text( + "startpage".i18n, + style: TextStyle( + color: AppColors.of(context).text.withOpacity(.95), + ), + ), + leading: Icon( + FeatherIcons.play, + size: 22.0, + color: AppColors.of(context).text.withOpacity(.95), + ), + trailing: Text( + startPageTitle.capital(), + style: const TextStyle(fontSize: 14.0), + ), + borderRadius: const BorderRadius.vertical( + top: Radius.circular(12.0), + bottom: Radius.circular(12.0), + ), + ), + ], + ), + SplittedPanel( + padding: const EdgeInsets.only(top: 9.0), + cardPadding: const EdgeInsets.all(4.0), + isSeparated: true, + children: [ + PanelButton( + padding: const EdgeInsets.only(left: 14.0, right: 6.0), + onPressed: () { + SettingsHelper.language(context); + setState(() {}); + }, + title: Text( + "language".i18n, + style: TextStyle( + color: AppColors.of(context).text.withOpacity(.95), + ), + ), + leading: Icon( + FeatherIcons.globe, + size: 22.0, + color: AppColors.of(context).text.withOpacity(.95), + ), + trailing: Text( + languageText, + style: const TextStyle(fontSize: 14.0), + ), + borderRadius: const BorderRadius.vertical( + top: Radius.circular(12.0), + bottom: Radius.circular(12.0), + ), + ), + ], + ), + SplittedPanel( + padding: const EdgeInsets.only(top: 9.0), + cardPadding: const EdgeInsets.all(4.0), + isSeparated: true, + children: [ + PanelButton( + padding: const EdgeInsets.only(left: 14.0, right: 6.0), + onPressed: () { + SettingsHelper.vibrate(context); + setState(() {}); + }, + title: Text( + "vibrate".i18n, + style: TextStyle( + color: AppColors.of(context).text.withOpacity(.95), + ), + ), + leading: Icon( + FeatherIcons.radio, + size: 22.0, + color: AppColors.of(context).text.withOpacity(.95), + ), + trailing: Text( + vibrateTitle, + style: const TextStyle(fontSize: 14.0), + ), + borderRadius: const BorderRadius.vertical( + top: Radius.circular(12.0), + bottom: Radius.circular(12.0), + ), + ), + ], + ), ], ), ),