finished custom fonts menu

This commit is contained in:
Kima
2024-02-18 21:02:14 +01:00
parent 50bb647d8f
commit 4a1aa75cb2
4 changed files with 143 additions and 0 deletions

View File

@@ -27,6 +27,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:i18n_extension/i18n_widget.dart';
import 'package:provider/provider.dart';
import 'package:filcnaplo_mobile_ui/common/screens.i18n.dart';
@@ -46,6 +47,15 @@ class SettingsHelper {
"de": "🇩🇪 Deutsch"
};
static const List<String> fontList = [
"Montserrat",
"Merienda",
"M PLUS Code Latin",
"Figtree",
"Fira Code",
"Vollkorn",
];
static const Map<Pages, String> pageTitle = {
Pages.home: "home",
Pages.grades: "grades",
@@ -111,6 +121,42 @@ class SettingsHelper {
// }
// }
static void fontFamily(BuildContext context) {
SettingsProvider settings =
Provider.of<SettingsProvider>(context, listen: false);
showBottomSheetMenu(
context,
items: List.generate(fontList.length, (index) {
String font = fontList[index];
return BottomSheetMenuItem(
onPressed: () {
settings.update(fontFamily: font == 'Montserrat' ? '' : font);
Provider.of<ThemeModeObserver>(context, listen: false)
.changeTheme(settings.theme, updateNavbarColor: false);
Navigator.of(context).maybePop();
},
title: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
font,
style: GoogleFonts.getFont(font),
),
if (font == settings.fontFamily ||
font.replaceAll('Montserrat', '') == settings.fontFamily)
Icon(
Icons.check_circle,
color: Theme.of(context).colorScheme.secondary,
),
],
),
);
}),
);
}
static void iconPack(BuildContext context) {
final settings = Provider.of<SettingsProvider>(context, listen: false);
showBottomSheetMenu(