diff --git a/lib/main_app.dart b/lib/main_app.dart index a46be6b68..b6d9ceac3 100644 --- a/lib/main_app.dart +++ b/lib/main_app.dart @@ -250,6 +250,12 @@ class InvoiceNinjaAppState extends State { state.prefState.enableDarkMode ? Colors.white : Colors.black87, ); + // https://stackoverflow.com/a/69883043/497368 + MediaQueryData windowData = + MediaQueryData.fromWindow(WidgetsBinding.instance.window); + windowData = windowData.copyWith( + textScaleFactor: state.prefState.textScaleFactor); + return StyledToast( locale: locale, duration: Duration(seconds: 3), @@ -262,290 +268,310 @@ class InvoiceNinjaAppState extends State { ), child: WebSocketRefresh( companyId: state.company?.id, - child: MaterialApp( - scrollBehavior: MyCustomScrollBehavior(), - navigatorKey: navigatorKey, - supportedLocales: kLanguages - .map( - (String locale) => AppLocalization.createLocale(locale)) - .toList(), - debugShowCheckedModeBanner: false, - //showPerformanceOverlay: true, - navigatorObservers: [ - SentryNavigatorObserver(), - ], - localizationsDelegates: [ - const AppLocalizationsDelegate(), - GlobalCupertinoLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - GlobalMaterialLocalizations.delegate - ], - home: state.prefState.requireAuthentication && !_authenticated - ? LockScreen(onAuthenticatePressed: _authenticate) - : InitScreen(), - locale: locale, - theme: state.prefState.enableDarkMode - ? ThemeData( - colorScheme: ColorScheme.dark().copyWith( - secondary: accentColor, - primary: accentColor, - ), - pageTransitionsTheme: pageTransitionsTheme, - indicatorColor: accentColor, - textSelectionTheme: TextSelectionThemeData( - selectionHandleColor: accentColor, - ), - fontFamily: fontFamily, - backgroundColor: Colors.black, - canvasColor: Colors.black, - cardColor: const Color(0xFF1B1C1E), - bottomAppBarColor: const Color(0xFF1B1C1E), - primaryColorDark: Colors.black, - textButtonTheme: - TextButtonThemeData(style: textButtonTheme), - outlinedButtonTheme: - OutlinedButtonThemeData(style: outlinedButtonTheme), - ) - : ThemeData( - colorScheme: ColorScheme.fromSwatch() - .copyWith(secondary: accentColor), - pageTransitionsTheme: pageTransitionsTheme, - primaryColor: accentColor, - indicatorColor: accentColor, - textSelectionTheme: TextSelectionThemeData( - selectionColor: accentColor, - ), - fontFamily: fontFamily, - backgroundColor: Colors.white, - canvasColor: Colors.white, - cardColor: Colors.white, - bottomAppBarColor: Colors.white, - primaryColorDark: hasAccentColor - ? accentColor - : const Color(0xFF0D5D91), - primaryColorLight: hasAccentColor - ? accentColor - : const Color(0xFF5dabf4), - scaffoldBackgroundColor: const Color(0xFFE4E8EB), - tabBarTheme: TabBarTheme( - labelColor: - hasAccentColor ? Colors.white : Colors.black, - unselectedLabelColor: hasAccentColor - ? Colors.white.withOpacity(.65) - : Colors.black.withOpacity(.65), - ), - iconTheme: IconThemeData( - color: hasAccentColor ? null : accentColor, - ), - appBarTheme: AppBarTheme( - color: hasAccentColor ? accentColor : Colors.white, - iconTheme: IconThemeData( - color: hasAccentColor ? Colors.white : accentColor, + child: MediaQuery( + data: windowData, + child: MaterialApp( + useInheritedMediaQuery: true, + scrollBehavior: MyCustomScrollBehavior(), + navigatorKey: navigatorKey, + supportedLocales: kLanguages + .map((String locale) => + AppLocalization.createLocale(locale)) + .toList(), + debugShowCheckedModeBanner: false, + //showPerformanceOverlay: true, + navigatorObservers: [ + SentryNavigatorObserver(), + ], + localizationsDelegates: [ + const AppLocalizationsDelegate(), + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalMaterialLocalizations.delegate + ], + home: state.prefState.requireAuthentication && !_authenticated + ? LockScreen(onAuthenticatePressed: _authenticate) + : InitScreen(), + locale: locale, + theme: state.prefState.enableDarkMode + ? ThemeData( + colorScheme: ColorScheme.dark().copyWith( + secondary: accentColor, + primary: accentColor, ), - titleTextStyle: TextStyle( - fontSize: 20, + pageTransitionsTheme: pageTransitionsTheme, + indicatorColor: accentColor, + textSelectionTheme: TextSelectionThemeData( + selectionHandleColor: accentColor, + ), + fontFamily: fontFamily, + backgroundColor: Colors.black, + canvasColor: Colors.black, + cardColor: const Color(0xFF1B1C1E), + bottomAppBarColor: const Color(0xFF1B1C1E), + primaryColorDark: Colors.black, + textButtonTheme: + TextButtonThemeData(style: textButtonTheme), + outlinedButtonTheme: OutlinedButtonThemeData( + style: outlinedButtonTheme), + ) + : ThemeData( + colorScheme: ColorScheme.fromSwatch() + .copyWith(secondary: accentColor), + pageTransitionsTheme: pageTransitionsTheme, + primaryColor: accentColor, + indicatorColor: accentColor, + textSelectionTheme: TextSelectionThemeData( + selectionColor: accentColor, + ), + fontFamily: fontFamily, + backgroundColor: Colors.white, + canvasColor: Colors.white, + cardColor: Colors.white, + bottomAppBarColor: Colors.white, + primaryColorDark: hasAccentColor + ? accentColor + : const Color(0xFF0D5D91), + primaryColorLight: hasAccentColor + ? accentColor + : const Color(0xFF5dabf4), + scaffoldBackgroundColor: const Color(0xFFE4E8EB), + tabBarTheme: TabBarTheme( + labelColor: + hasAccentColor ? Colors.white : Colors.black, + unselectedLabelColor: hasAccentColor + ? Colors.white.withOpacity(.65) + : Colors.black.withOpacity(.65), + ), + iconTheme: IconThemeData( + color: hasAccentColor ? null : accentColor, + ), + appBarTheme: AppBarTheme( + color: hasAccentColor ? accentColor : Colors.white, + iconTheme: IconThemeData( color: - hasAccentColor ? Colors.white : Colors.black), - ), - textButtonTheme: - TextButtonThemeData(style: textButtonTheme), - outlinedButtonTheme: - OutlinedButtonThemeData(style: outlinedButtonTheme), - ), - title: kAppName, - onGenerateRoute: isMobile(context) ? null : generateRoute, - routes: isMobile(context) - ? { - LoginScreen.route: (context) => LoginScreen(), - MainScreen.route: (context) => MainScreen(), - DashboardScreenBuilder.route: (context) => - ChangeLayoutBanner( - suggestedLayout: AppLayout.mobile, - appLayout: state.prefState.appLayout, - child: DashboardScreenBuilder(), + hasAccentColor ? Colors.white : accentColor, ), - ProductScreen.route: (context) => - ProductScreenBuilder(), - ProductViewScreen.route: (context) => - ProductViewScreen(), - ProductEditScreen.route: (context) => - ProductEditScreen(), - ClientScreen.route: (context) => ClientScreenBuilder(), - ClientViewScreen.route: (context) => ClientViewScreen(), - ClientEditScreen.route: (context) => ClientEditScreen(), - ClientPdfScreen.route: (context) => ClientPdfScreen(), - InvoiceScreen.route: (context) => - InvoiceScreenBuilder(), - InvoiceViewScreen.route: (context) => - InvoiceViewScreen(), - InvoiceEditScreen.route: (context) => - InvoiceEditScreen(), - InvoiceEmailScreen.route: (context) => - InvoiceEmailScreen(), - InvoicePdfScreen.route: (context) => InvoicePdfScreen(), - DocumentScreen.route: (context) => - DocumentScreenBuilder(), - DocumentViewScreen.route: (context) => - DocumentViewScreen(), - DocumentEditScreen.route: (context) => - DocumentEditScreen(), - ExpenseScreen.route: (context) => - ExpenseScreenBuilder(), - ExpenseViewScreen.route: (context) => - ExpenseViewScreen(), - ExpenseEditScreen.route: (context) => - ExpenseEditScreen(), - VendorScreen.route: (context) => VendorScreenBuilder(), - VendorViewScreen.route: (context) => VendorViewScreen(), - VendorEditScreen.route: (context) => VendorEditScreen(), - TaskScreen.route: (context) => TaskScreenBuilder(), - TaskViewScreen.route: (context) => TaskViewScreen(), - TaskEditScreen.route: (context) => TaskEditScreen(), - ProjectScreen.route: (context) => - ProjectScreenBuilder(), - ProjectViewScreen.route: (context) => - ProjectViewScreen(), - ProjectEditScreen.route: (context) => - ProjectEditScreen(), - PaymentScreen.route: (context) => - PaymentScreenBuilder(), - PaymentViewScreen.route: (context) => - PaymentViewScreen(), - PaymentEditScreen.route: (context) => - PaymentEditScreen(), - PaymentRefundScreen.route: (context) => - PaymentRefundScreen(), - QuoteScreen.route: (context) => QuoteScreenBuilder(), - QuoteViewScreen.route: (context) => QuoteViewScreen(), - QuoteEditScreen.route: (context) => QuoteEditScreen(), - QuoteEmailScreen.route: (context) => QuoteEmailScreen(), - QuotePdfScreen.route: (context) => QuotePdfScreen(), - // STARTER: routes - do not remove comment - RecurringExpenseScreen.route: (context) => - RecurringExpenseScreenBuilder(), - RecurringExpenseViewScreen.route: (context) => - RecurringExpenseViewScreen(), - RecurringExpenseEditScreen.route: (context) => - RecurringExpenseEditScreen(), + titleTextStyle: TextStyle( + fontSize: 20, + color: hasAccentColor + ? Colors.white + : Colors.black), + ), + textButtonTheme: + TextButtonThemeData(style: textButtonTheme), + outlinedButtonTheme: OutlinedButtonThemeData( + style: outlinedButtonTheme), + ), + title: kAppName, + onGenerateRoute: isMobile(context) ? null : generateRoute, + routes: isMobile(context) + ? { + LoginScreen.route: (context) => LoginScreen(), + MainScreen.route: (context) => MainScreen(), + DashboardScreenBuilder.route: (context) => + ChangeLayoutBanner( + suggestedLayout: AppLayout.mobile, + appLayout: state.prefState.appLayout, + child: DashboardScreenBuilder(), + ), + ProductScreen.route: (context) => + ProductScreenBuilder(), + ProductViewScreen.route: (context) => + ProductViewScreen(), + ProductEditScreen.route: (context) => + ProductEditScreen(), + ClientScreen.route: (context) => + ClientScreenBuilder(), + ClientViewScreen.route: (context) => + ClientViewScreen(), + ClientEditScreen.route: (context) => + ClientEditScreen(), + ClientPdfScreen.route: (context) => ClientPdfScreen(), + InvoiceScreen.route: (context) => + InvoiceScreenBuilder(), + InvoiceViewScreen.route: (context) => + InvoiceViewScreen(), + InvoiceEditScreen.route: (context) => + InvoiceEditScreen(), + InvoiceEmailScreen.route: (context) => + InvoiceEmailScreen(), + InvoicePdfScreen.route: (context) => + InvoicePdfScreen(), + DocumentScreen.route: (context) => + DocumentScreenBuilder(), + DocumentViewScreen.route: (context) => + DocumentViewScreen(), + DocumentEditScreen.route: (context) => + DocumentEditScreen(), + ExpenseScreen.route: (context) => + ExpenseScreenBuilder(), + ExpenseViewScreen.route: (context) => + ExpenseViewScreen(), + ExpenseEditScreen.route: (context) => + ExpenseEditScreen(), + VendorScreen.route: (context) => + VendorScreenBuilder(), + VendorViewScreen.route: (context) => + VendorViewScreen(), + VendorEditScreen.route: (context) => + VendorEditScreen(), + TaskScreen.route: (context) => TaskScreenBuilder(), + TaskViewScreen.route: (context) => TaskViewScreen(), + TaskEditScreen.route: (context) => TaskEditScreen(), + ProjectScreen.route: (context) => + ProjectScreenBuilder(), + ProjectViewScreen.route: (context) => + ProjectViewScreen(), + ProjectEditScreen.route: (context) => + ProjectEditScreen(), + PaymentScreen.route: (context) => + PaymentScreenBuilder(), + PaymentViewScreen.route: (context) => + PaymentViewScreen(), + PaymentEditScreen.route: (context) => + PaymentEditScreen(), + PaymentRefundScreen.route: (context) => + PaymentRefundScreen(), + QuoteScreen.route: (context) => QuoteScreenBuilder(), + QuoteViewScreen.route: (context) => QuoteViewScreen(), + QuoteEditScreen.route: (context) => QuoteEditScreen(), + QuoteEmailScreen.route: (context) => + QuoteEmailScreen(), + QuotePdfScreen.route: (context) => QuotePdfScreen(), + // STARTER: routes - do not remove comment + RecurringExpenseScreen.route: (context) => + RecurringExpenseScreenBuilder(), + RecurringExpenseViewScreen.route: (context) => + RecurringExpenseViewScreen(), + RecurringExpenseEditScreen.route: (context) => + RecurringExpenseEditScreen(), - SubscriptionScreen.route: (context) => - SubscriptionScreenBuilder(), - SubscriptionViewScreen.route: (context) => - SubscriptionViewScreen(), - SubscriptionEditScreen.route: (context) => - SubscriptionEditScreen(), + SubscriptionScreen.route: (context) => + SubscriptionScreenBuilder(), + SubscriptionViewScreen.route: (context) => + SubscriptionViewScreen(), + SubscriptionEditScreen.route: (context) => + SubscriptionEditScreen(), - TaskStatusScreen.route: (context) => - TaskStatusScreenBuilder(), - TaskStatusViewScreen.route: (context) => - TaskStatusViewScreen(), - TaskStatusEditScreen.route: (context) => - TaskStatusEditScreen(), - ExpenseCategoryScreen.route: (context) => - ExpenseCategoryScreenBuilder(), - ExpenseCategoryViewScreen.route: (context) => - ExpenseCategoryViewScreen(), - ExpenseCategoryEditScreen.route: (context) => - ExpenseCategoryEditScreen(), - RecurringInvoiceScreen.route: (context) => - RecurringInvoiceScreenBuilder(), - RecurringInvoiceViewScreen.route: (context) => - RecurringInvoiceViewScreen(), - RecurringInvoiceEditScreen.route: (context) => - RecurringInvoiceEditScreen(), - RecurringInvoicePdfScreen.route: (context) => - RecurringInvoicePdfScreen(), - WebhookScreen.route: (context) => - WebhookScreenBuilder(), - WebhookViewScreen.route: (context) => - WebhookViewScreen(), - WebhookEditScreen.route: (context) => - WebhookEditScreen(), - TokenScreen.route: (context) => TokenScreenBuilder(), - TokenViewScreen.route: (context) => TokenViewScreen(), - TokenEditScreen.route: (context) => TokenEditScreen(), - PaymentTermScreen.route: (context) => - PaymentTermScreenBuilder(), - PaymentTermEditScreen.route: (context) => - PaymentTermEditScreen(), - PaymentTermViewScreen.route: (context) => - PaymentTermViewScreen(), - DesignScreen.route: (context) => DesignScreenBuilder(), - DesignViewScreen.route: (context) => DesignViewScreen(), - DesignEditScreen.route: (context) => DesignEditScreen(), - CreditScreen.route: (context) => CreditScreenBuilder(), - CreditViewScreen.route: (context) => CreditViewScreen(), - CreditEditScreen.route: (context) => CreditEditScreen(), - CreditEmailScreen.route: (context) => - CreditEmailScreen(), - CreditPdfScreen.route: (context) => CreditPdfScreen(), - UserScreen.route: (context) => UserScreenBuilder(), - UserViewScreen.route: (context) => UserViewScreen(), - UserEditScreen.route: (context) => UserEditScreen(), - GroupSettingsScreen.route: (context) => - GroupScreenBuilder(), - GroupViewScreen.route: (context) => GroupViewScreen(), - GroupEditScreen.route: (context) => GroupEditScreen(), - SettingsScreen.route: (context) => - SettingsScreenBuilder(), - ReportsScreen.route: (context) => - ReportsScreenBuilder(), - CompanyDetailsScreen.route: (context) => - CompanyDetailsScreen(), - UserDetailsScreen.route: (context) => - UserDetailsScreen(), - LocalizationScreen.route: (context) => - LocalizationScreen(), - OnlinePaymentsScreen.route: (context) => - OnlinePaymentsScreen(), - CompanyGatewayScreen.route: (context) => - CompanyGatewayScreenBuilder(), - CompanyGatewayViewScreen.route: (context) => - CompanyGatewayViewScreen(), - CompanyGatewayEditScreen.route: (context) => - CompanyGatewayEditScreen(), - TaxSettingsScreen.route: (context) => - TaxSettingsScreen(), - TaxRateSettingsScreen.route: (context) => - TaxRateScreenBuilder(), - TaxRateViewScreen.route: (context) => - TaxRateViewScreen(), - TaxRateEditScreen.route: (context) => - TaxRateEditScreen(), - ProductSettingsScreen.route: (context) => - ProductSettingsScreen(), - ExpenseSettingsScreen.route: (context) => - ExpenseSettingsScreen(), - TaskSettingsScreen.route: (context) => - TaskSettingsScreen(), - ImportExportScreen.route: (context) => - ImportExportScreen(), - DeviceSettingsScreen.route: (context) => - DeviceSettingsScreen(), - AccountManagementScreen.route: (context) => - AccountManagementScreen(), - CustomFieldsScreen.route: (context) => - CustomFieldsScreen(), - GeneratedNumbersScreen.route: (context) => - GeneratedNumbersScreen(), - WorkflowSettingsScreen.route: (context) => - WorkflowSettingsScreen(), - InvoiceDesignScreen.route: (context) => - InvoiceDesignScreen(), - ClientPortalScreen.route: (context) => - ClientPortalScreen(), - BuyNowButtonsScreen.route: (context) => - BuyNowButtonsScreen(), - EmailSettingsScreen.route: (context) => - EmailSettingsScreen(), - TemplatesAndRemindersScreen.route: (context) => - TemplatesAndRemindersScreen(), - CreditCardsAndBanksScreen.route: (context) => - CreditCardsAndBanksScreen(), - DataVisualizationsScreen.route: (context) => - DataVisualizationsScreen(), - } - : {}, + TaskStatusScreen.route: (context) => + TaskStatusScreenBuilder(), + TaskStatusViewScreen.route: (context) => + TaskStatusViewScreen(), + TaskStatusEditScreen.route: (context) => + TaskStatusEditScreen(), + ExpenseCategoryScreen.route: (context) => + ExpenseCategoryScreenBuilder(), + ExpenseCategoryViewScreen.route: (context) => + ExpenseCategoryViewScreen(), + ExpenseCategoryEditScreen.route: (context) => + ExpenseCategoryEditScreen(), + RecurringInvoiceScreen.route: (context) => + RecurringInvoiceScreenBuilder(), + RecurringInvoiceViewScreen.route: (context) => + RecurringInvoiceViewScreen(), + RecurringInvoiceEditScreen.route: (context) => + RecurringInvoiceEditScreen(), + RecurringInvoicePdfScreen.route: (context) => + RecurringInvoicePdfScreen(), + WebhookScreen.route: (context) => + WebhookScreenBuilder(), + WebhookViewScreen.route: (context) => + WebhookViewScreen(), + WebhookEditScreen.route: (context) => + WebhookEditScreen(), + TokenScreen.route: (context) => TokenScreenBuilder(), + TokenViewScreen.route: (context) => TokenViewScreen(), + TokenEditScreen.route: (context) => TokenEditScreen(), + PaymentTermScreen.route: (context) => + PaymentTermScreenBuilder(), + PaymentTermEditScreen.route: (context) => + PaymentTermEditScreen(), + PaymentTermViewScreen.route: (context) => + PaymentTermViewScreen(), + DesignScreen.route: (context) => + DesignScreenBuilder(), + DesignViewScreen.route: (context) => + DesignViewScreen(), + DesignEditScreen.route: (context) => + DesignEditScreen(), + CreditScreen.route: (context) => + CreditScreenBuilder(), + CreditViewScreen.route: (context) => + CreditViewScreen(), + CreditEditScreen.route: (context) => + CreditEditScreen(), + CreditEmailScreen.route: (context) => + CreditEmailScreen(), + CreditPdfScreen.route: (context) => CreditPdfScreen(), + UserScreen.route: (context) => UserScreenBuilder(), + UserViewScreen.route: (context) => UserViewScreen(), + UserEditScreen.route: (context) => UserEditScreen(), + GroupSettingsScreen.route: (context) => + GroupScreenBuilder(), + GroupViewScreen.route: (context) => GroupViewScreen(), + GroupEditScreen.route: (context) => GroupEditScreen(), + SettingsScreen.route: (context) => + SettingsScreenBuilder(), + ReportsScreen.route: (context) => + ReportsScreenBuilder(), + CompanyDetailsScreen.route: (context) => + CompanyDetailsScreen(), + UserDetailsScreen.route: (context) => + UserDetailsScreen(), + LocalizationScreen.route: (context) => + LocalizationScreen(), + OnlinePaymentsScreen.route: (context) => + OnlinePaymentsScreen(), + CompanyGatewayScreen.route: (context) => + CompanyGatewayScreenBuilder(), + CompanyGatewayViewScreen.route: (context) => + CompanyGatewayViewScreen(), + CompanyGatewayEditScreen.route: (context) => + CompanyGatewayEditScreen(), + TaxSettingsScreen.route: (context) => + TaxSettingsScreen(), + TaxRateSettingsScreen.route: (context) => + TaxRateScreenBuilder(), + TaxRateViewScreen.route: (context) => + TaxRateViewScreen(), + TaxRateEditScreen.route: (context) => + TaxRateEditScreen(), + ProductSettingsScreen.route: (context) => + ProductSettingsScreen(), + ExpenseSettingsScreen.route: (context) => + ExpenseSettingsScreen(), + TaskSettingsScreen.route: (context) => + TaskSettingsScreen(), + ImportExportScreen.route: (context) => + ImportExportScreen(), + DeviceSettingsScreen.route: (context) => + DeviceSettingsScreen(), + AccountManagementScreen.route: (context) => + AccountManagementScreen(), + CustomFieldsScreen.route: (context) => + CustomFieldsScreen(), + GeneratedNumbersScreen.route: (context) => + GeneratedNumbersScreen(), + WorkflowSettingsScreen.route: (context) => + WorkflowSettingsScreen(), + InvoiceDesignScreen.route: (context) => + InvoiceDesignScreen(), + ClientPortalScreen.route: (context) => + ClientPortalScreen(), + BuyNowButtonsScreen.route: (context) => + BuyNowButtonsScreen(), + EmailSettingsScreen.route: (context) => + EmailSettingsScreen(), + TemplatesAndRemindersScreen.route: (context) => + TemplatesAndRemindersScreen(), + CreditCardsAndBanksScreen.route: (context) => + CreditCardsAndBanksScreen(), + DataVisualizationsScreen.route: (context) => + DataVisualizationsScreen(), + } + : {}, + ), ), ), ); diff --git a/lib/redux/ui/pref_state.dart b/lib/redux/ui/pref_state.dart index 9ecd46a49..be1f9a2d3 100644 --- a/lib/redux/ui/pref_state.dart +++ b/lib/redux/ui/pref_state.dart @@ -29,6 +29,7 @@ abstract class PrefState implements Built { requireAuthentication: false, colorTheme: kColorThemeLight, isFilterVisible: false, + textScaleFactor: 1, longPressSelectionIsDefault: true, tapSelectedToEdit: false, hideDesktopWarning: false, @@ -44,6 +45,11 @@ abstract class PrefState implements Built { PrefState._(); + static const TEXT_SCALING_NORMAL = 1.0; + static const TEXT_SCALING_LARGE = 1.2; + static const TEXT_SCALING_LARGER = 1.4; + static const TEXT_SCALING_LARGEST = 1.6; + static const THEME_SIDEBAR_ACTIVE_BACKGROUND_COLOR = 'sidebar_active_background_color'; static const THEME_SIDEBAR_ACTIVE_FONT_COLOR = 'sidebar_active_font_color'; @@ -123,6 +129,8 @@ abstract class PrefState implements Built { bool get hideDesktopWarning; + double get textScaleFactor; + BuiltMap get sortFields; ColorTheme get colorThemeModel => colorThemesMap.containsKey(colorTheme) @@ -190,6 +198,7 @@ abstract class PrefState implements Built { ..persistData = false ..persistUI = true ..showPdfPreview = true + ..textScaleFactor = 1 ..colorTheme = builder.enableDarkMode == true ? kColorThemeLight : kColorThemeLight; diff --git a/lib/redux/ui/pref_state.g.dart b/lib/redux/ui/pref_state.g.dart index 51780c1a3..ba5c269a6 100644 --- a/lib/redux/ui/pref_state.g.dart +++ b/lib/redux/ui/pref_state.g.dart @@ -178,6 +178,9 @@ class _$PrefStateSerializer implements StructuredSerializer { 'hideDesktopWarning', serializers.serialize(object.hideDesktopWarning, specifiedType: const FullType(bool)), + 'textScaleFactor', + serializers.serialize(object.textScaleFactor, + specifiedType: const FullType(double)), 'sortFields', serializers.serialize(object.sortFields, specifiedType: const FullType(BuiltMap, const [ @@ -292,6 +295,10 @@ class _$PrefStateSerializer implements StructuredSerializer { result.hideDesktopWarning = serializers.deserialize(value, specifiedType: const FullType(bool)) as bool; break; + case 'textScaleFactor': + result.textScaleFactor = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; case 'sortFields': result.sortFields.replace(serializers.deserialize(value, specifiedType: const FullType(BuiltMap, const [ @@ -579,6 +586,8 @@ class _$PrefState extends PrefState { @override final bool hideDesktopWarning; @override + final double textScaleFactor; + @override final BuiltMap sortFields; @override final BuiltMap companyPrefs; @@ -608,6 +617,7 @@ class _$PrefState extends PrefState { this.rowsPerPage, this.colorTheme, this.hideDesktopWarning, + this.textScaleFactor, this.sortFields, this.companyPrefs}) : super._() { @@ -651,6 +661,8 @@ class _$PrefState extends PrefState { colorTheme, 'PrefState', 'colorTheme'); BuiltValueNullFieldError.checkNotNull( hideDesktopWarning, 'PrefState', 'hideDesktopWarning'); + BuiltValueNullFieldError.checkNotNull( + textScaleFactor, 'PrefState', 'textScaleFactor'); BuiltValueNullFieldError.checkNotNull( sortFields, 'PrefState', 'sortFields'); BuiltValueNullFieldError.checkNotNull( @@ -689,6 +701,7 @@ class _$PrefState extends PrefState { rowsPerPage == other.rowsPerPage && colorTheme == other.colorTheme && hideDesktopWarning == other.hideDesktopWarning && + textScaleFactor == other.textScaleFactor && sortFields == other.sortFields && companyPrefs == other.companyPrefs; } @@ -714,24 +727,24 @@ class _$PrefState extends PrefState { $jc( $jc( $jc( - $jc($jc($jc($jc($jc(0, appLayout.hashCode), moduleLayout.hashCode), menuSidebarMode.hashCode), historySidebarMode.hashCode), - useSidebarEditor.hashCode), - customColors.hashCode), - isPreviewVisible.hashCode), - isMenuVisible.hashCode), - showKanban.hashCode), - showPdfPreview.hashCode), - isHistoryVisible.hashCode), - enableDarkMode.hashCode), - isFilterVisible.hashCode), - persistData.hashCode), - persistUI.hashCode), - longPressSelectionIsDefault.hashCode), - requireAuthentication.hashCode), - tapSelectedToEdit.hashCode), - rowsPerPage.hashCode), - colorTheme.hashCode), - hideDesktopWarning.hashCode), + $jc($jc($jc($jc($jc($jc(0, appLayout.hashCode), moduleLayout.hashCode), menuSidebarMode.hashCode), historySidebarMode.hashCode), useSidebarEditor.hashCode), + customColors.hashCode), + isPreviewVisible.hashCode), + isMenuVisible.hashCode), + showKanban.hashCode), + showPdfPreview.hashCode), + isHistoryVisible.hashCode), + enableDarkMode.hashCode), + isFilterVisible.hashCode), + persistData.hashCode), + persistUI.hashCode), + longPressSelectionIsDefault.hashCode), + requireAuthentication.hashCode), + tapSelectedToEdit.hashCode), + rowsPerPage.hashCode), + colorTheme.hashCode), + hideDesktopWarning.hashCode), + textScaleFactor.hashCode), sortFields.hashCode), companyPrefs.hashCode)); } @@ -760,6 +773,7 @@ class _$PrefState extends PrefState { ..add('rowsPerPage', rowsPerPage) ..add('colorTheme', colorTheme) ..add('hideDesktopWarning', hideDesktopWarning) + ..add('textScaleFactor', textScaleFactor) ..add('sortFields', sortFields) ..add('companyPrefs', companyPrefs)) .toString(); @@ -870,6 +884,11 @@ class PrefStateBuilder implements Builder { set hideDesktopWarning(bool hideDesktopWarning) => _$this._hideDesktopWarning = hideDesktopWarning; + double _textScaleFactor; + double get textScaleFactor => _$this._textScaleFactor; + set textScaleFactor(double textScaleFactor) => + _$this._textScaleFactor = textScaleFactor; + MapBuilder _sortFields; MapBuilder get sortFields => _$this._sortFields ??= new MapBuilder(); @@ -910,6 +929,7 @@ class PrefStateBuilder implements Builder { _rowsPerPage = $v.rowsPerPage; _colorTheme = $v.colorTheme; _hideDesktopWarning = $v.hideDesktopWarning; + _textScaleFactor = $v.textScaleFactor; _sortFields = $v.sortFields.toBuilder(); _companyPrefs = $v.companyPrefs.toBuilder(); _$v = null; @@ -963,6 +983,7 @@ class PrefStateBuilder implements Builder { rowsPerPage: BuiltValueNullFieldError.checkNotNull(rowsPerPage, 'PrefState', 'rowsPerPage'), colorTheme: BuiltValueNullFieldError.checkNotNull(colorTheme, 'PrefState', 'colorTheme'), hideDesktopWarning: BuiltValueNullFieldError.checkNotNull(hideDesktopWarning, 'PrefState', 'hideDesktopWarning'), + textScaleFactor: BuiltValueNullFieldError.checkNotNull(textScaleFactor, 'PrefState', 'textScaleFactor'), sortFields: sortFields.build(), companyPrefs: companyPrefs.build()); } catch (_) {