From fc0b3240bb630cca5772df46697c3e41dfcc4cae Mon Sep 17 00:00:00 2001 From: Anton Stubenbord Date: Fri, 10 Feb 2023 15:49:52 +0100 Subject: [PATCH] fix: Stop long polling to /statistics when app is in background, code cleanup --- .../cubit/document_edit_cubit.dart | 6 +-- .../cubit/document_search_cubit.dart | 8 ++- .../cubit/document_search_state.dart | 7 +-- .../view/document_search_page.dart | 2 - .../documents/cubit/documents_cubit.dart | 6 ++- .../documents/cubit/documents_state.dart | 7 +-- .../documents/view/pages/documents_page.dart | 2 - .../widgets/items/document_list_item.dart | 1 - .../widgets/search/document_filter_form.dart | 2 - .../widgets/search/document_filter_panel.dart | 8 --- .../sort_field_selection_bottom_sheet.dart | 1 - .../bulk_delete_confirmation_dialog.dart | 2 +- .../view/widgets/sort_documents_button.dart | 3 -- .../edit_label/cubit/edit_label_cubit.dart | 7 +-- .../edit_label/cubit/edit_label_state.dart | 10 +--- lib/features/home/view/home_page.dart | 52 ++++++++++++++----- lib/features/inbox/cubit/inbox_cubit.dart | 14 ++--- .../inbox/cubit/{state => }/inbox_state.dart | 6 +-- lib/features/inbox/view/pages/inbox_page.dart | 1 - .../view/widgets/correspondent_widget.dart | 2 - lib/features/labels/cubit/label_cubit.dart | 3 +- lib/features/labels/cubit/label_state.dart | 2 +- .../view/widgets/document_type_widget.dart | 1 - .../view/widgets/storage_path_widget.dart | 1 - .../labels/tags/view/widgets/tags_widget.dart | 1 - .../labels/view/widgets/label_tab_view.dart | 1 - .../labels/view/widgets/label_text.dart | 1 - .../cubit/linked_documents_state.dart | 1 - .../saved_view/cubit/saved_view_cubit.dart | 4 +- .../saved_view/cubit/saved_view_state.dart | 5 +- .../saved_view/view/saved_view_list.dart | 3 -- 31 files changed, 74 insertions(+), 96 deletions(-) rename lib/features/inbox/cubit/{state => }/inbox_state.dart (91%) diff --git a/lib/features/document_edit/cubit/document_edit_cubit.dart b/lib/features/document_edit/cubit/document_edit_cubit.dart index 6fadae5..33cbcea 100644 --- a/lib/features/document_edit/cubit/document_edit_cubit.dart +++ b/lib/features/document_edit/cubit/document_edit_cubit.dart @@ -1,15 +1,11 @@ import 'dart:async'; import 'package:bloc/bloc.dart'; +import 'package:collection/collection.dart'; import 'package:equatable/equatable.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/notifier/document_changed_notifier.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; -import 'package:collection/collection.dart'; -import 'package:paperless_mobile/core/repository/state/impl/correspondent_repository_state.dart'; -import 'package:paperless_mobile/core/repository/state/impl/document_type_repository_state.dart'; -import 'package:paperless_mobile/core/repository/state/impl/storage_path_repository_state.dart'; -import 'package:paperless_mobile/core/repository/state/impl/tag_repository_state.dart'; part 'document_edit_state.dart'; diff --git a/lib/features/document_search/cubit/document_search_cubit.dart b/lib/features/document_search/cubit/document_search_cubit.dart index 616d46f..e11e0f3 100644 --- a/lib/features/document_search/cubit/document_search_cubit.dart +++ b/lib/features/document_search/cubit/document_search_cubit.dart @@ -2,8 +2,14 @@ import 'package:collection/collection.dart'; import 'package:hydrated_bloc/hydrated_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/notifier/document_changed_notifier.dart'; -import 'package:paperless_mobile/features/document_search/cubit/document_search_state.dart'; import 'package:paperless_mobile/features/paged_document_view/paged_documents_mixin.dart'; +import 'package:equatable/equatable.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:paperless_mobile/features/paged_document_view/model/paged_documents_state.dart'; + +part 'document_search_state.dart'; + +part 'document_search_cubit.g.dart'; class DocumentSearchCubit extends HydratedCubit with PagedDocumentsMixin { diff --git a/lib/features/document_search/cubit/document_search_state.dart b/lib/features/document_search/cubit/document_search_state.dart index 231405d..10c74f2 100644 --- a/lib/features/document_search/cubit/document_search_state.dart +++ b/lib/features/document_search/cubit/document_search_state.dart @@ -1,9 +1,4 @@ -import 'package:equatable/equatable.dart'; -import 'package:json_annotation/json_annotation.dart'; -import 'package:paperless_api/paperless_api.dart'; -import 'package:paperless_mobile/features/paged_document_view/model/paged_documents_state.dart'; - -part 'document_search_state.g.dart'; +part of 'document_search_cubit.dart'; enum SearchView { suggestions, diff --git a/lib/features/document_search/view/document_search_page.dart b/lib/features/document_search/view/document_search_page.dart index ed2ee3b..4bc96ab 100644 --- a/lib/features/document_search/view/document_search_page.dart +++ b/lib/features/document_search/view/document_search_page.dart @@ -1,10 +1,8 @@ import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/document_search/cubit/document_search_cubit.dart'; -import 'package:paperless_mobile/features/document_search/cubit/document_search_state.dart'; import 'package:paperless_mobile/features/documents/view/widgets/adaptive_documents_view.dart'; import 'package:paperless_mobile/generated/l10n.dart'; import 'package:paperless_mobile/routes/document_details_route.dart'; diff --git a/lib/features/documents/cubit/documents_cubit.dart b/lib/features/documents/cubit/documents_cubit.dart index 2a49503..80e9e9b 100644 --- a/lib/features/documents/cubit/documents_cubit.dart +++ b/lib/features/documents/cubit/documents_cubit.dart @@ -5,9 +5,13 @@ import 'package:flutter/foundation.dart'; import 'package:hydrated_bloc/hydrated_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/notifier/document_changed_notifier.dart'; -import 'package:paperless_mobile/features/documents/cubit/documents_state.dart'; import 'package:paperless_mobile/features/paged_document_view/paged_documents_mixin.dart'; import 'package:paperless_mobile/features/settings/model/view_type.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:paperless_mobile/features/paged_document_view/model/paged_documents_state.dart'; + +part 'documents_state.dart'; +part 'documents_cubit.g.dart'; class DocumentsCubit extends HydratedCubit with PagedDocumentsMixin { diff --git a/lib/features/documents/cubit/documents_state.dart b/lib/features/documents/cubit/documents_state.dart index f559f11..614a6aa 100644 --- a/lib/features/documents/cubit/documents_state.dart +++ b/lib/features/documents/cubit/documents_state.dart @@ -1,9 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; -import 'package:paperless_api/paperless_api.dart'; -import 'package:paperless_mobile/features/paged_document_view/model/paged_documents_state.dart'; -import 'package:paperless_mobile/features/settings/model/view_type.dart'; - -part 'documents_state.g.dart'; +part of 'documents_cubit.dart'; @JsonSerializable() class DocumentsState extends PagedDocumentsState { diff --git a/lib/features/documents/view/pages/documents_page.dart b/lib/features/documents/view/pages/documents_page.dart index 0c70b08..e2a5aae 100644 --- a/lib/features/documents/view/pages/documents_page.dart +++ b/lib/features/documents/view/pages/documents_page.dart @@ -7,7 +7,6 @@ import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/app_drawer/view/app_drawer.dart'; import 'package:paperless_mobile/features/document_search/view/document_search_page.dart'; import 'package:paperless_mobile/features/documents/cubit/documents_cubit.dart'; -import 'package:paperless_mobile/features/documents/cubit/documents_state.dart'; import 'package:paperless_mobile/features/documents/view/widgets/adaptive_documents_view.dart'; import 'package:paperless_mobile/features/documents/view/widgets/documents_empty_state.dart'; import 'package:paperless_mobile/features/documents/view/widgets/search/document_filter_panel.dart'; @@ -19,7 +18,6 @@ import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart import 'package:paperless_mobile/features/saved_view/view/add_saved_view_page.dart'; import 'package:paperless_mobile/features/saved_view/view/saved_view_list.dart'; import 'package:paperless_mobile/features/search_app_bar/view/search_app_bar.dart'; -import 'package:paperless_mobile/features/settings/model/view_type.dart'; import 'package:paperless_mobile/features/tasks/cubit/task_status_cubit.dart'; import 'package:paperless_mobile/generated/l10n.dart'; import 'package:paperless_mobile/helpers/message_helpers.dart'; diff --git a/lib/features/documents/view/widgets/items/document_list_item.dart b/lib/features/documents/view/widgets/items/document_list_item.dart index 0f30a36..fdb2f28 100644 --- a/lib/features/documents/view/widgets/items/document_list_item.dart +++ b/lib/features/documents/view/widgets/items/document_list_item.dart @@ -5,7 +5,6 @@ import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/features/documents/view/widgets/document_preview.dart'; import 'package:paperless_mobile/features/documents/view/widgets/items/document_item.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; import 'package:paperless_mobile/features/labels/cubit/providers/document_type_bloc_provider.dart'; import 'package:paperless_mobile/features/labels/correspondent/view/widgets/correspondent_widget.dart'; import 'package:paperless_mobile/features/labels/tags/view/widgets/tags_widget.dart'; diff --git a/lib/features/documents/view/widgets/search/document_filter_form.dart b/lib/features/documents/view/widgets/search/document_filter_form.dart index 140ad0a..4c500fd 100644 --- a/lib/features/documents/view/widgets/search/document_filter_form.dart +++ b/lib/features/documents/view/widgets/search/document_filter_form.dart @@ -3,9 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_form_builder/flutter_form_builder.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/widgets/form_builder_fields/extended_date_range_form_field/form_builder_extended_date_range_picker.dart'; -import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; import 'package:paperless_mobile/features/labels/tags/view/widgets/tags_form_field.dart'; import 'package:paperless_mobile/features/labels/view/widgets/label_form_field.dart'; import 'package:paperless_mobile/generated/l10n.dart'; diff --git a/lib/features/documents/view/widgets/search/document_filter_panel.dart b/lib/features/documents/view/widgets/search/document_filter_panel.dart index 37e19bc..65332b9 100644 --- a/lib/features/documents/view/widgets/search/document_filter_panel.dart +++ b/lib/features/documents/view/widgets/search/document_filter_panel.dart @@ -1,18 +1,10 @@ import 'dart:math'; import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_form_builder/flutter_form_builder.dart'; import 'package:paperless_api/paperless_api.dart'; -import 'package:paperless_mobile/core/widgets/form_builder_fields/extended_date_range_form_field/form_builder_extended_date_range_picker.dart'; -import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/documents/view/pages/documents_page.dart'; import 'package:paperless_mobile/features/documents/view/widgets/search/document_filter_form.dart'; -import 'package:paperless_mobile/features/documents/view/widgets/search/text_query_form_field.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; -import 'package:paperless_mobile/features/labels/tags/view/widgets/tags_form_field.dart'; -import 'package:paperless_mobile/features/labels/view/widgets/label_form_field.dart'; import 'package:paperless_mobile/generated/l10n.dart'; enum DateRangeSelection { before, after } diff --git a/lib/features/documents/view/widgets/search/sort_field_selection_bottom_sheet.dart b/lib/features/documents/view/widgets/search/sort_field_selection_bottom_sheet.dart index 9250330..cafa731 100644 --- a/lib/features/documents/view/widgets/search/sort_field_selection_bottom_sheet.dart +++ b/lib/features/documents/view/widgets/search/sort_field_selection_bottom_sheet.dart @@ -5,7 +5,6 @@ import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/translation/sort_field_localization_mapper.dart'; import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; import 'package:paperless_mobile/generated/l10n.dart'; class SortFieldSelectionBottomSheet extends StatefulWidget { diff --git a/lib/features/documents/view/widgets/selection/bulk_delete_confirmation_dialog.dart b/lib/features/documents/view/widgets/selection/bulk_delete_confirmation_dialog.dart index 17e1cfd..e7513b9 100644 --- a/lib/features/documents/view/widgets/selection/bulk_delete_confirmation_dialog.dart +++ b/lib/features/documents/view/widgets/selection/bulk_delete_confirmation_dialog.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:paperless_api/paperless_api.dart'; -import 'package:paperless_mobile/features/documents/cubit/documents_state.dart'; +import 'package:paperless_mobile/features/documents/cubit/documents_cubit.dart'; import 'package:paperless_mobile/generated/l10n.dart'; class BulkDeleteConfirmationDialog extends StatelessWidget { diff --git a/lib/features/documents/view/widgets/sort_documents_button.dart b/lib/features/documents/view/widgets/sort_documents_button.dart index 814b3ba..91ef997 100644 --- a/lib/features/documents/view/widgets/sort_documents_button.dart +++ b/lib/features/documents/view/widgets/sort_documents_button.dart @@ -2,11 +2,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; -import 'package:paperless_mobile/core/repository/state/impl/correspondent_repository_state.dart'; -import 'package:paperless_mobile/core/repository/state/impl/document_type_repository_state.dart'; import 'package:paperless_mobile/core/translation/sort_field_localization_mapper.dart'; import 'package:paperless_mobile/features/documents/cubit/documents_cubit.dart'; -import 'package:paperless_mobile/features/documents/cubit/documents_state.dart'; import 'package:paperless_mobile/features/documents/view/widgets/search/sort_field_selection_bottom_sheet.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; diff --git a/lib/features/edit_label/cubit/edit_label_cubit.dart b/lib/features/edit_label/cubit/edit_label_cubit.dart index 9ec07e8..dfd6bd8 100644 --- a/lib/features/edit_label/cubit/edit_label_cubit.dart +++ b/lib/features/edit_label/cubit/edit_label_cubit.dart @@ -1,10 +1,11 @@ import 'dart:async'; import 'package:bloc/bloc.dart'; +import 'package:equatable/equatable.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; -import 'package:paperless_mobile/core/repository/state/indexed_repository_state.dart'; -import 'package:paperless_mobile/features/edit_label/cubit/edit_label_state.dart'; + +part 'edit_label_state.dart'; class EditLabelCubit extends Cubit> { final LabelRepository _repository; @@ -13,7 +14,7 @@ class EditLabelCubit extends Cubit> { EditLabelCubit(LabelRepository repository) : _repository = repository, - super(const EditLabelInitial()) { + super(EditLabelState(labels: repository.current?.values ?? {})) { _subscription = repository.values.listen( (event) => emit(EditLabelState(labels: event?.values ?? {})), ); diff --git a/lib/features/edit_label/cubit/edit_label_state.dart b/lib/features/edit_label/cubit/edit_label_state.dart index e26f28c..798d9a6 100644 --- a/lib/features/edit_label/cubit/edit_label_state.dart +++ b/lib/features/edit_label/cubit/edit_label_state.dart @@ -1,16 +1,10 @@ -import 'package:equatable/equatable.dart'; -import 'package:flutter/widgets.dart'; +part of 'edit_label_cubit.dart'; -@immutable class EditLabelState extends Equatable { final Map labels; - const EditLabelState({required this.labels}); + const EditLabelState({this.labels = const {}}); @override List get props => [labels]; } - -class EditLabelInitial extends EditLabelState { - const EditLabelInitial() : super(labels: const {}); -} diff --git a/lib/features/home/view/home_page.dart b/lib/features/home/view/home_page.dart index 5cc59a1..cf8b09c 100644 --- a/lib/features/home/view/home_page.dart +++ b/lib/features/home/view/home_page.dart @@ -1,3 +1,5 @@ +import 'dart:async'; +import 'dart:developer'; import 'dart:io'; import 'package:flutter/material.dart'; @@ -10,25 +12,20 @@ import 'package:paperless_mobile/core/bloc/paperless_server_information_cubit.da import 'package:paperless_mobile/core/global/constants.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; import 'package:paperless_mobile/core/repository/saved_view_repository.dart'; -import 'package:paperless_mobile/core/repository/state/impl/correspondent_repository_state.dart'; -import 'package:paperless_mobile/core/repository/state/impl/document_type_repository_state.dart'; -import 'package:paperless_mobile/core/repository/state/impl/storage_path_repository_state.dart'; -import 'package:paperless_mobile/core/repository/state/impl/tag_repository_state.dart'; import 'package:paperless_mobile/core/translation/error_code_localization_mapper.dart'; +import 'package:paperless_mobile/features/document_scan/cubit/document_scanner_cubit.dart'; +import 'package:paperless_mobile/features/document_scan/view/scanner_page.dart'; import 'package:paperless_mobile/features/document_upload/cubit/document_upload_cubit.dart'; import 'package:paperless_mobile/features/document_upload/view/document_upload_preparation_page.dart'; import 'package:paperless_mobile/features/documents/cubit/documents_cubit.dart'; import 'package:paperless_mobile/features/documents/view/pages/documents_page.dart'; import 'package:paperless_mobile/features/home/view/route_description.dart'; import 'package:paperless_mobile/features/inbox/cubit/inbox_cubit.dart'; -import 'package:paperless_mobile/features/inbox/cubit/state/inbox_state.dart'; import 'package:paperless_mobile/features/inbox/view/pages/inbox_page.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; import 'package:paperless_mobile/features/labels/view/pages/labels_page.dart'; import 'package:paperless_mobile/features/notifications/services/local_notification_service.dart'; import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart'; -import 'package:paperless_mobile/features/document_scan/cubit/document_scanner_cubit.dart'; -import 'package:paperless_mobile/features/document_scan/view/scanner_page.dart'; import 'package:paperless_mobile/features/sharing/share_intent_queue.dart'; import 'package:paperless_mobile/features/tasks/cubit/task_status_cubit.dart'; import 'package:paperless_mobile/generated/l10n.dart'; @@ -45,14 +42,16 @@ class HomePage extends StatefulWidget { _HomePageState createState() => _HomePageState(); } -class _HomePageState extends State { +class _HomePageState extends State with WidgetsBindingObserver { int _currentIndex = 0; final DocumentScannerCubit _scannerCubit = DocumentScannerCubit(); late final InboxCubit _inboxCubit; + late Timer _inboxTimer; @override void initState() { super.initState(); + WidgetsBinding.instance.addObserver(this); _initializeData(context); _inboxCubit = InboxCubit( context.read(), @@ -62,12 +61,43 @@ class _HomePageState extends State { context.read(), context.read(), ); + _listenToInboxChanges(); context.read().reload(); WidgetsBinding.instance.addPostFrameCallback((timeStamp) { _listenForReceivedFiles(); }); } + void _listenToInboxChanges() { + _inboxCubit.refreshItemsInInboxCount(); + _inboxTimer = Timer.periodic(const Duration(seconds: 10), (timer) { + if (!mounted) { + timer.cancel(); + } else { + _inboxCubit.refreshItemsInInboxCount(); + } + }); + } + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + if (state == AppLifecycleState.resumed && !_inboxTimer.isActive) { + log('App is now in foreground, start polling for statistics.'); + _listenToInboxChanges(); + } else if (state != AppLifecycleState.resumed) { + log('App is now in background, stop polling for statistics.'); + _inboxTimer.cancel(); + } + } + + @override + void dispose() { + WidgetsBinding.instance.removeObserver(this); + _inboxTimer.cancel(); + _inboxCubit.close(); + super.dispose(); + } + void _listenForReceivedFiles() async { if (ShareIntentQueue.instance.hasUnhandledFiles) { await _handleReceivedFile(ShareIntentQueue.instance.pop()!); @@ -156,12 +186,6 @@ class _HomePageState extends State { } } - @override - void dispose() { - _inboxCubit.close(); - super.dispose(); - } - @override Widget build(BuildContext context) { final destinations = [ diff --git a/lib/features/inbox/cubit/inbox_cubit.dart b/lib/features/inbox/cubit/inbox_cubit.dart index c2bcfa5..ed82010 100644 --- a/lib/features/inbox/cubit/inbox_cubit.dart +++ b/lib/features/inbox/cubit/inbox_cubit.dart @@ -1,13 +1,16 @@ import 'dart:async'; -import 'package:collection/collection.dart'; import 'package:hydrated_bloc/hydrated_bloc.dart'; +import 'package:json_annotation/json_annotation.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/notifier/document_changed_notifier.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; -import 'package:paperless_mobile/features/inbox/cubit/state/inbox_state.dart'; +import 'package:paperless_mobile/features/paged_document_view/model/paged_documents_state.dart'; import 'package:paperless_mobile/features/paged_document_view/paged_documents_mixin.dart'; +part 'inbox_cubit.g.dart'; +part 'inbox_state.dart'; + class InboxCubit extends HydratedCubit with PagedDocumentsMixin { final LabelRepository _tagsRepository; final LabelRepository _correspondentRepository; @@ -82,13 +85,6 @@ class InboxCubit extends HydratedCubit with PagedDocumentsMixin { refreshItemsInInboxCount(false); loadInbox(); - - Timer.periodic(const Duration(seconds: 5), (timer) { - if (isClosed) { - timer.cancel(); - } - refreshItemsInInboxCount(); - }); } void refreshItemsInInboxCount([bool shouldLoadInbox = true]) async { diff --git a/lib/features/inbox/cubit/state/inbox_state.dart b/lib/features/inbox/cubit/inbox_state.dart similarity index 91% rename from lib/features/inbox/cubit/state/inbox_state.dart rename to lib/features/inbox/cubit/inbox_state.dart index 8546bac..d65ed96 100644 --- a/lib/features/inbox/cubit/state/inbox_state.dart +++ b/lib/features/inbox/cubit/inbox_state.dart @@ -1,8 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; -import 'package:paperless_api/paperless_api.dart'; -import 'package:paperless_mobile/features/paged_document_view/model/paged_documents_state.dart'; - -part 'inbox_state.g.dart'; +part of 'inbox_cubit.dart'; @JsonSerializable(ignoreUnannotated: true) class InboxState extends PagedDocumentsState { diff --git a/lib/features/inbox/view/pages/inbox_page.dart b/lib/features/inbox/view/pages/inbox_page.dart index 4a8bcb7..41dd3a6 100644 --- a/lib/features/inbox/view/pages/inbox_page.dart +++ b/lib/features/inbox/view/pages/inbox_page.dart @@ -10,7 +10,6 @@ import 'package:paperless_mobile/core/widgets/hint_card.dart'; import 'package:paperless_mobile/extensions/dart_extensions.dart'; import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/inbox/cubit/inbox_cubit.dart'; -import 'package:paperless_mobile/features/inbox/cubit/state/inbox_state.dart'; import 'package:paperless_mobile/features/inbox/view/widgets/inbox_empty_widget.dart'; import 'package:paperless_mobile/features/inbox/view/widgets/inbox_item.dart'; import 'package:paperless_mobile/features/search_app_bar/view/search_app_bar.dart'; diff --git a/lib/features/labels/correspondent/view/widgets/correspondent_widget.dart b/lib/features/labels/correspondent/view/widgets/correspondent_widget.dart index dbade5d..3c29a23 100644 --- a/lib/features/labels/correspondent/view/widgets/correspondent_widget.dart +++ b/lib/features/labels/correspondent/view/widgets/correspondent_widget.dart @@ -1,9 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; -import 'package:paperless_mobile/core/repository/state/impl/correspondent_repository_state.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; import 'package:paperless_mobile/features/labels/cubit/providers/correspondent_bloc_provider.dart'; class CorrespondentWidget extends StatelessWidget { diff --git a/lib/features/labels/cubit/label_cubit.dart b/lib/features/labels/cubit/label_cubit.dart index 48e390a..6b3615d 100644 --- a/lib/features/labels/cubit/label_cubit.dart +++ b/lib/features/labels/cubit/label_cubit.dart @@ -3,7 +3,8 @@ import 'dart:async'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; + +part 'label_state.dart'; class LabelCubit extends Cubit> { final LabelRepository _repository; diff --git a/lib/features/labels/cubit/label_state.dart b/lib/features/labels/cubit/label_state.dart index 3cd0f63..1767083 100644 --- a/lib/features/labels/cubit/label_state.dart +++ b/lib/features/labels/cubit/label_state.dart @@ -1,4 +1,4 @@ -import 'package:paperless_api/paperless_api.dart'; +part of 'label_cubit.dart'; class LabelState { LabelState.initial() : this(isLoaded: false, labels: {}); diff --git a/lib/features/labels/document_type/view/widgets/document_type_widget.dart b/lib/features/labels/document_type/view/widgets/document_type_widget.dart index ddde3da..1c87774 100644 --- a/lib/features/labels/document_type/view/widgets/document_type_widget.dart +++ b/lib/features/labels/document_type/view/widgets/document_type_widget.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; import 'package:paperless_mobile/features/labels/cubit/providers/document_type_bloc_provider.dart'; class DocumentTypeWidget extends StatelessWidget { diff --git a/lib/features/labels/storage_path/view/widgets/storage_path_widget.dart b/lib/features/labels/storage_path/view/widgets/storage_path_widget.dart index bff11f4..71f7b10 100644 --- a/lib/features/labels/storage_path/view/widgets/storage_path_widget.dart +++ b/lib/features/labels/storage_path/view/widgets/storage_path_widget.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; import 'package:paperless_mobile/features/labels/cubit/providers/storage_path_bloc_provider.dart'; class StoragePathWidget extends StatelessWidget { diff --git a/lib/features/labels/tags/view/widgets/tags_widget.dart b/lib/features/labels/tags/view/widgets/tags_widget.dart index 710b428..7cb9b2d 100644 --- a/lib/features/labels/tags/view/widgets/tags_widget.dart +++ b/lib/features/labels/tags/view/widgets/tags_widget.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; import 'package:paperless_mobile/features/labels/cubit/providers/tag_bloc_provider.dart'; import 'package:paperless_mobile/features/labels/tags/view/widgets/tag_widget.dart'; diff --git a/lib/features/labels/view/widgets/label_tab_view.dart b/lib/features/labels/view/widgets/label_tab_view.dart index 2e144bf..b75a016 100644 --- a/lib/features/labels/view/widgets/label_tab_view.dart +++ b/lib/features/labels/view/widgets/label_tab_view.dart @@ -5,7 +5,6 @@ import 'package:paperless_mobile/core/bloc/connectivity_cubit.dart'; import 'package:paperless_mobile/core/translation/matching_algorithm_localization_mapper.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; import 'package:paperless_mobile/core/widgets/offline_widget.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; import 'package:paperless_mobile/features/labels/view/widgets/label_item.dart'; import 'package:paperless_mobile/extensions/flutter_extensions.dart'; diff --git a/lib/features/labels/view/widgets/label_text.dart b/lib/features/labels/view/widgets/label_text.dart index 29d85f0..bf2e2f1 100644 --- a/lib/features/labels/view/widgets/label_text.dart +++ b/lib/features/labels/view/widgets/label_text.dart @@ -3,7 +3,6 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart'; -import 'package:paperless_mobile/features/labels/cubit/label_state.dart'; class LabelText extends StatelessWidget { final int? id; diff --git a/lib/features/linked_documents/cubit/linked_documents_state.dart b/lib/features/linked_documents/cubit/linked_documents_state.dart index 905844d..25c497e 100644 --- a/lib/features/linked_documents/cubit/linked_documents_state.dart +++ b/lib/features/linked_documents/cubit/linked_documents_state.dart @@ -1,6 +1,5 @@ part of 'linked_documents_cubit.dart'; - class LinkedDocumentsState extends PagedDocumentsState { const LinkedDocumentsState({ super.filter, diff --git a/lib/features/saved_view/cubit/saved_view_cubit.dart b/lib/features/saved_view/cubit/saved_view_cubit.dart index 6ff9837..2613195 100644 --- a/lib/features/saved_view/cubit/saved_view_cubit.dart +++ b/lib/features/saved_view/cubit/saved_view_cubit.dart @@ -1,9 +1,11 @@ import 'dart:async'; +import 'package:equatable/equatable.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/repository/saved_view_repository.dart'; -import 'package:paperless_mobile/features/saved_view/cubit/saved_view_state.dart'; + +part 'saved_view_state.dart'; class SavedViewCubit extends Cubit { final SavedViewRepository _repository; diff --git a/lib/features/saved_view/cubit/saved_view_state.dart b/lib/features/saved_view/cubit/saved_view_state.dart index f9fa11f..b1f6343 100644 --- a/lib/features/saved_view/cubit/saved_view_state.dart +++ b/lib/features/saved_view/cubit/saved_view_state.dart @@ -1,7 +1,6 @@ -import 'package:equatable/equatable.dart'; -import 'package:paperless_api/paperless_api.dart'; +part of 'saved_view_cubit.dart'; -class SavedViewState with EquatableMixin { +class SavedViewState extends Equatable { final bool hasLoaded; final Map value; diff --git a/lib/features/saved_view/view/saved_view_list.dart b/lib/features/saved_view/view/saved_view_list.dart index dec6dd2..23801ff 100644 --- a/lib/features/saved_view/view/saved_view_list.dart +++ b/lib/features/saved_view/view/saved_view_list.dart @@ -1,10 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_mobile/core/widgets/hint_card.dart'; -import 'package:paperless_mobile/extensions/flutter_extensions.dart'; -import 'package:paperless_mobile/features/documents/cubit/documents_cubit.dart'; import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart'; -import 'package:paperless_mobile/features/saved_view/cubit/saved_view_state.dart'; import 'package:paperless_mobile/features/saved_view_details/cubit/saved_view_details_cubit.dart'; import 'package:paperless_mobile/features/saved_view_details/view/saved_view_details_page.dart'; import 'package:paperless_mobile/generated/l10n.dart';