Feat: Update scanner persistence, more migrations and bugfixes

This commit is contained in:
Anton Stubenbord
2023-09-28 17:14:27 +02:00
parent 18ab657932
commit 653344c9ee
55 changed files with 887 additions and 442 deletions

View File

@@ -3,6 +3,7 @@ import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/database/tables/local_user_app_state.dart';
import 'package:paperless_mobile/core/notifier/document_changed_notifier.dart';
import 'package:paperless_mobile/core/repository/label_repository.dart';
import 'package:paperless_mobile/core/service/connectivity_status_service.dart';
import 'package:paperless_mobile/features/paged_document_view/cubit/paged_documents_state.dart';
import 'package:paperless_mobile/features/paged_document_view/cubit/document_paging_bloc_mixin.dart';
import 'package:paperless_mobile/features/settings/model/view_type.dart';
@@ -15,7 +16,8 @@ class SavedViewDetailsCubit extends Cubit<SavedViewDetailsState>
final PaperlessDocumentsApi api;
final LabelRepository _labelRepository;
@override
final ConnectivityStatusService connectivityStatusService;
@override
final DocumentChangedNotifier notifier;
@@ -27,7 +29,8 @@ class SavedViewDetailsCubit extends Cubit<SavedViewDetailsState>
this.api,
this.notifier,
this._labelRepository,
this._userState, {
this._userState,
this.connectivityStatusService, {
required this.savedView,
int initialCount = 25,
}) : super(

View File

@@ -1,6 +1,7 @@
import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/service/connectivity_status_service.dart';
part 'saved_view_preview_state.dart';
part 'saved_view_preview_cubit.freezed.dart';
@@ -8,11 +9,21 @@ part 'saved_view_preview_cubit.freezed.dart';
class SavedViewPreviewCubit extends Cubit<SavedViewPreviewState> {
final PaperlessDocumentsApi _api;
final SavedView view;
SavedViewPreviewCubit(this._api, this.view)
: super(const SavedViewPreviewState.initial());
final ConnectivityStatusService _connectivityStatusService;
SavedViewPreviewCubit(
this._api,
this._connectivityStatusService, {
required this.view,
}) : super(const InitialSavedViewPreviewState());
Future<void> initialize() async {
emit(const SavedViewPreviewState.loading());
final isConnected =
await _connectivityStatusService.isConnectedToInternet();
if (!isConnected) {
emit(const OfflineSavedViewPreviewState());
return;
}
emit(const LoadingSavedViewPreviewState());
try {
final documents = await _api.findAll(
view.toDocumentFilter().copyWith(
@@ -20,9 +31,9 @@ class SavedViewPreviewCubit extends Cubit<SavedViewPreviewState> {
pageSize: 5,
),
);
emit(SavedViewPreviewState.loaded(documents: documents.results));
emit(LoadedSavedViewPreviewState(documents: documents.results));
} catch (e) {
emit(const SavedViewPreviewState.error());
emit(const ErrorSavedViewPreviewState());
}
}
}

View File

@@ -1,11 +1,29 @@
part of 'saved_view_preview_cubit.dart';
@freezed
class SavedViewPreviewState with _$SavedViewPreviewState {
const factory SavedViewPreviewState.initial() = _Initial;
const factory SavedViewPreviewState.loading() = _Loading;
const factory SavedViewPreviewState.loaded({
required List<DocumentModel> documents,
}) = _Loaded;
const factory SavedViewPreviewState.error() = _Error;
sealed class SavedViewPreviewState {
const SavedViewPreviewState();
}
class InitialSavedViewPreviewState extends SavedViewPreviewState {
const InitialSavedViewPreviewState();
}
class LoadingSavedViewPreviewState extends SavedViewPreviewState {
const LoadingSavedViewPreviewState();
}
class LoadedSavedViewPreviewState extends SavedViewPreviewState {
final List<DocumentModel> documents;
const LoadedSavedViewPreviewState({
required this.documents,
});
}
class ErrorSavedViewPreviewState extends SavedViewPreviewState {
const ErrorSavedViewPreviewState();
}
class OfflineSavedViewPreviewState extends SavedViewPreviewState {
const OfflineSavedViewPreviewState();
}