Add font scaling
This commit is contained in:
parent
e883d03737
commit
8f3a25a9c1
|
|
@ -250,6 +250,12 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
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<InvoiceNinjaApp> {
|
|||
),
|
||||
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(),
|
||||
}
|
||||
: {},
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ abstract class PrefState implements Built<PrefState, PrefStateBuilder> {
|
|||
requireAuthentication: false,
|
||||
colorTheme: kColorThemeLight,
|
||||
isFilterVisible: false,
|
||||
textScaleFactor: 1,
|
||||
longPressSelectionIsDefault: true,
|
||||
tapSelectedToEdit: false,
|
||||
hideDesktopWarning: false,
|
||||
|
|
@ -44,6 +45,11 @@ abstract class PrefState implements Built<PrefState, PrefStateBuilder> {
|
|||
|
||||
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<PrefState, PrefStateBuilder> {
|
|||
|
||||
bool get hideDesktopWarning;
|
||||
|
||||
double get textScaleFactor;
|
||||
|
||||
BuiltMap<EntityType, PrefStateSortField> get sortFields;
|
||||
|
||||
ColorTheme get colorThemeModel => colorThemesMap.containsKey(colorTheme)
|
||||
|
|
@ -190,6 +198,7 @@ abstract class PrefState implements Built<PrefState, PrefStateBuilder> {
|
|||
..persistData = false
|
||||
..persistUI = true
|
||||
..showPdfPreview = true
|
||||
..textScaleFactor = 1
|
||||
..colorTheme =
|
||||
builder.enableDarkMode == true ? kColorThemeLight : kColorThemeLight;
|
||||
|
||||
|
|
|
|||
|
|
@ -178,6 +178,9 @@ class _$PrefStateSerializer implements StructuredSerializer<PrefState> {
|
|||
'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<PrefState> {
|
|||
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<EntityType, PrefStateSortField> sortFields;
|
||||
@override
|
||||
final BuiltMap<String, CompanyPrefState> 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<PrefState, PrefStateBuilder> {
|
|||
set hideDesktopWarning(bool hideDesktopWarning) =>
|
||||
_$this._hideDesktopWarning = hideDesktopWarning;
|
||||
|
||||
double _textScaleFactor;
|
||||
double get textScaleFactor => _$this._textScaleFactor;
|
||||
set textScaleFactor(double textScaleFactor) =>
|
||||
_$this._textScaleFactor = textScaleFactor;
|
||||
|
||||
MapBuilder<EntityType, PrefStateSortField> _sortFields;
|
||||
MapBuilder<EntityType, PrefStateSortField> get sortFields =>
|
||||
_$this._sortFields ??= new MapBuilder<EntityType, PrefStateSortField>();
|
||||
|
|
@ -910,6 +929,7 @@ class PrefStateBuilder implements Builder<PrefState, PrefStateBuilder> {
|
|||
_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<PrefState, PrefStateBuilder> {
|
|||
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 (_) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue