From 2b25abaf4dde7a6ce66632666ce4fc02798c9cf1 Mon Sep 17 00:00:00 2001 From: unknown <55nknown@pm.me> Date: Tue, 31 Aug 2021 21:07:26 +0200 Subject: [PATCH] fix font scaling --- filcnaplo/lib/app.dart | 58 ++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 19 deletions(-) diff --git a/filcnaplo/lib/app.dart b/filcnaplo/lib/app.dart index 066ec59..8e6f477 100644 --- a/filcnaplo/lib/app.dart +++ b/filcnaplo/lib/app.dart @@ -50,7 +50,7 @@ class App extends StatelessWidget { }); return I18n( - initialLocale: Locale(settings.language, settings.language), + initialLocale: Locale(settings.language, settings.language.toUpperCase()), child: MultiProvider( providers: [ ChangeNotifierProvider(create: (_) => settings), @@ -74,24 +74,44 @@ class App extends StatelessWidget { ChangeNotifierProvider(create: (context) => GradeCalculatorProvider(context)), ], child: Consumer( - builder: (context, themeMode, child) => MaterialApp( - title: "Filc Napló", - debugShowCheckedModeBanner: false, - theme: AppTheme.lightTheme(context), - darkTheme: AppTheme.darkTheme(context), - themeMode: themeMode.themeMode, - localizationsDelegates: [ - GlobalMaterialLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - ], - supportedLocales: [ - const Locale('en'), - const Locale('hu'), - const Locale('de'), - ], - onGenerateRoute: (settings) => rootNavigator(settings), - initialRoute: user.getUsers().length > 0 ? "navigation" : "login"), + builder: (context, themeMode, child) { + return MaterialApp( + builder: (context, child) { + return MediaQuery( + data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0), + child: child ?? Container(), + ); + }, + title: "Filc Napló", + debugShowCheckedModeBanner: false, + theme: AppTheme.lightTheme(context), + darkTheme: AppTheme.darkTheme(context), + themeMode: themeMode.themeMode, + localizationsDelegates: [ + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: [ + const Locale('en', 'EN'), + const Locale('hu', 'HU'), + const Locale('de', 'DE'), + ], + localeListResolutionCallback: (locales, supported) { + Locale locale = Locale('hu', 'HU'); + + for (var loc in locales ?? []) { + if (supported.contains(loc)) { + locale = loc; + break; + } + } + + return locale; + }, + onGenerateRoute: (settings) => rootNavigator(settings), + initialRoute: user.getUsers().length > 0 ? "navigation" : "login"); + }, ), ), );