diff --git a/lib/redux/app/app_actions.dart b/lib/redux/app/app_actions.dart index 2264ee58b..50d70bbbd 100644 --- a/lib/redux/app/app_actions.dart +++ b/lib/redux/app/app_actions.dart @@ -254,18 +254,18 @@ void filterByEntity({ } void viewEntitiesByType({ - @required BuildContext context, + @required AppContext appContext, @required EntityType entityType, BaseEntity filterEntity, }) { - final store = StoreProvider.of(context); + final store = appContext.store; + final navigator = appContext.navigator; final uiState = store.state.uiState; - final navigator = Navigator.of(context); dynamic action; checkForChanges( store: store, - context: context, + context: appContext.buildContext, callback: () { if (filterEntity != null) { if (uiState.filterEntityType != filterEntity.entityType || diff --git a/lib/ui/app/app_shortcuts.dart b/lib/ui/app/app_shortcuts.dart index 4115877d5..cb5e93238 100644 --- a/lib/ui/app/app_shortcuts.dart +++ b/lib/ui/app/app_shortcuts.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; +import 'package:invoiceninja_flutter/utils/app_context.dart'; class AppShortcuts extends StatefulWidget { const AppShortcuts({Key key, this.child}) : super(key: key); @@ -59,7 +60,8 @@ class AppShortcutsState extends State { break; case _ShortcutIntentType.list: viewEntitiesByType( - context: context, entityType: intent.entityType); + appContext: context.getAppContext(), + entityType: intent.entityType); break; case _ShortcutIntentType.back: Navigator.of(context).maybePop(); diff --git a/lib/ui/app/entities/entity_list_tile.dart b/lib/ui/app/entities/entity_list_tile.dart index ebe7e402f..99c664e42 100644 --- a/lib/ui/app/entities/entity_list_tile.dart +++ b/lib/ui/app/entities/entity_list_tile.dart @@ -165,7 +165,7 @@ class _EntitiesListTileState extends State { bool _isHovered = false; void _onTap(BuildContext context) => viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: widget.entityType, filterEntity: widget.entity); diff --git a/lib/ui/app/entity_top_filter.dart b/lib/ui/app/entity_top_filter.dart index 5a33e2969..fc40bf519 100644 --- a/lib/ui/app/entity_top_filter.dart +++ b/lib/ui/app/entity_top_filter.dart @@ -103,7 +103,7 @@ class EntityTopFilter extends StatelessWidget { ), onPressed: () { viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: relatedTypes[i], filterEntity: filterEntity, ); @@ -159,7 +159,7 @@ class EntityTopFilter extends StatelessWidget { ); } else { viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: value, filterEntity: filterEntity, ); diff --git a/lib/ui/app/menu_drawer.dart b/lib/ui/app/menu_drawer.dart index e0eaeabe5..aba031c85 100644 --- a/lib/ui/app/menu_drawer.dart +++ b/lib/ui/app/menu_drawer.dart @@ -36,6 +36,7 @@ import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:invoiceninja_flutter/utils/colors.dart'; +import 'package:invoiceninja_flutter/utils/app_context.dart'; class MenuDrawer extends StatelessWidget { const MenuDrawer({ @@ -303,7 +304,7 @@ class MenuDrawer extends StatelessWidget { icon: getEntityIcon(EntityType.dashboard), title: localization.dashboard, onTap: () => viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: EntityType.dashboard), onLongPress: () => store.dispatch(ViewDashboard( navigator: Navigator.of(context), filter: '')), @@ -393,7 +394,7 @@ class MenuDrawer extends StatelessWidget { icon: getEntityIcon(EntityType.kanban), title: localization.kanban, onTap: () => viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: EntityType.kanban), ), DrawerTile( @@ -401,7 +402,7 @@ class MenuDrawer extends StatelessWidget { icon: getEntityIcon(EntityType.reports), title: localization.reports, onTap: () => viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: EntityType.reports), ), DrawerTile( @@ -409,7 +410,7 @@ class MenuDrawer extends StatelessWidget { icon: getEntityIcon(EntityType.settings), title: localization.settings, onTap: () => viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: EntityType.settings), ), ], @@ -572,7 +573,10 @@ class _DrawerTileState extends State { ), onTap: () { if (widget.entityType != null) { - viewEntitiesByType(context: context, entityType: widget.entityType); + viewEntitiesByType( + appContext: context.getAppContext(), + entityType: widget.entityType, + ); } else { widget.onTap(); } diff --git a/lib/ui/client/edit/client_edit_vm.dart b/lib/ui/client/edit/client_edit_vm.dart index f8613a41b..6f288494a 100644 --- a/lib/ui/client/edit/client_edit_vm.dart +++ b/lib/ui/client/edit/client_edit_vm.dart @@ -13,8 +13,6 @@ import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart'; import 'package:invoiceninja_flutter/ui/client/edit/client_edit.dart'; import 'package:invoiceninja_flutter/ui/client/view/client_view_vm.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; -import 'package:invoiceninja_flutter/utils/localization.dart'; -import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:invoiceninja_flutter/utils/app_context.dart'; import 'package:redux/redux.dart'; diff --git a/lib/ui/expense_category/edit/expense_category_edit_vm.dart b/lib/ui/expense_category/edit/expense_category_edit_vm.dart index 2b361cf5e..7e4d9a38f 100644 --- a/lib/ui/expense_category/edit/expense_category_edit_vm.dart +++ b/lib/ui/expense_category/edit/expense_category_edit_vm.dart @@ -96,7 +96,7 @@ class ExpenseCategoryEditVM { } } else { viewEntity( - appContext: context.getAppContext(), + appContext: appContext, entity: savedExpenseCategory, force: true); } diff --git a/lib/ui/group/view/group_view_vm.dart b/lib/ui/group/view/group_view_vm.dart index 062d80b83..a74779bfb 100644 --- a/lib/ui/group/view/group_view_vm.dart +++ b/lib/ui/group/view/group_view_vm.dart @@ -92,7 +92,7 @@ class GroupViewVM { handleGroupAction(context, [group], EntityAction.newClient); } else { viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: EntityType.client, filterEntity: group); } diff --git a/lib/ui/invoice/view/invoice_view_vm.dart b/lib/ui/invoice/view/invoice_view_vm.dart index 59deffe88..0105c739c 100644 --- a/lib/ui/invoice/view/invoice_view_vm.dart +++ b/lib/ui/invoice/view/invoice_view_vm.dart @@ -142,12 +142,13 @@ class InvoiceViewVM extends EntityViewVM { onRefreshed: (context) => _handleRefresh(context), onPaymentsPressed: (BuildContext context) { viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: EntityType.payment, filterEntity: invoice); }, onEntityAction: (BuildContext context, EntityAction action) => - handleEntitiesActions(context.getAppContext(), [invoice], action, autoPop: true), + handleEntitiesActions(context.getAppContext(), [invoice], action, + autoPop: true), onUploadDocument: (BuildContext context, MultipartFile multipartFile) { final Completer completer = Completer(); store.dispatch(SaveInvoiceDocumentRequest( diff --git a/lib/ui/payment_term/edit/payment_term_edit_vm.dart b/lib/ui/payment_term/edit/payment_term_edit_vm.dart index fcb8b224d..290eb92f6 100644 --- a/lib/ui/payment_term/edit/payment_term_edit_vm.dart +++ b/lib/ui/payment_term/edit/payment_term_edit_vm.dart @@ -10,6 +10,7 @@ import 'package:invoiceninja_flutter/ui/payment_term/payment_term_screen.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; +import 'package:invoiceninja_flutter/utils/app_context.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart'; @@ -71,6 +72,7 @@ class PaymentTermEditVM { store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute)); }, onSavePressed: (BuildContext context) { + final appContext = context.getAppContext(); Debouncer.runOnComplete(() { final paymentTerm = store.state.paymentTermUIState.editing; final localization = AppLocalization.of(context); @@ -82,7 +84,6 @@ class PaymentTermEditVM { showToast(paymentTerm.isNew ? localization.createdPaymentTerm : localization.updatedPaymentTerm); - if (state.prefState.isMobile) { store.dispatch(UpdateCurrentRoute(PaymentTermScreen.route)); if (paymentTerm.isNew) { @@ -93,7 +94,9 @@ class PaymentTermEditVM { } } else { viewEntitiesByType( - context: context, entityType: EntityType.paymentTerm); + appContext: appContext, + entityType: EntityType.paymentTerm, + ); } }).catchError((Object error) { showDialog( diff --git a/lib/ui/project/view/project_view_vm.dart b/lib/ui/project/view/project_view_vm.dart index 99f6cfa3a..ec7ff56ce 100644 --- a/lib/ui/project/view/project_view_vm.dart +++ b/lib/ui/project/view/project_view_vm.dart @@ -90,7 +90,10 @@ class ProjectViewVM { context, [project], EntityAction.newEntityType(entityType)); } else { viewEntitiesByType( - context: context, entityType: entityType, filterEntity: project); + appContext: context.getAppContext(), + entityType: entityType, + filterEntity: project, + ); } }, onAddTaskPressed: (context) { diff --git a/lib/ui/vendor/view/vendor_view_vm.dart b/lib/ui/vendor/view/vendor_view_vm.dart index 2e9429bbf..18874613c 100644 --- a/lib/ui/vendor/view/vendor_view_vm.dart +++ b/lib/ui/vendor/view/vendor_view_vm.dart @@ -89,7 +89,7 @@ class VendorViewVM { entity: ExpenseEntity(state: state, vendor: vendor)); } else { viewEntitiesByType( - context: context, + appContext: context.getAppContext(), entityType: EntityType.expense, filterEntity: vendor); }