Cleaned up code, implemented message queue to notify subscribers of document updates.

This commit is contained in:
Anton Stubenbord
2023-02-06 01:04:13 +01:00
parent 337c178be8
commit 4d7fab1839
111 changed files with 1412 additions and 1029 deletions

View File

@@ -3,15 +3,14 @@ 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/core/repository/state/repository_state.dart';
import 'package:paperless_mobile/features/labels/bloc/label_state.dart';
class LabelCubit<T extends Label> extends Cubit<LabelState<T>> {
final LabelRepository<T, RepositoryState> _repository;
final LabelRepository<T> _repository;
late StreamSubscription _subscription;
LabelCubit(LabelRepository<T, RepositoryState> repository)
LabelCubit(LabelRepository<T> repository)
: _repository = repository,
super(LabelState(
isLoaded: repository.isInitialized,
@@ -22,7 +21,8 @@ class LabelCubit<T extends Label> extends Cubit<LabelState<T>> {
if (event == null) {
emit(LabelState());
}
emit(LabelState(isLoaded: true, labels: event!.values));
emit(
LabelState(isLoaded: event!.hasLoaded, labels: event.values ?? {}));
},
);
}

View File

@@ -7,14 +7,16 @@ import 'package:paperless_mobile/features/labels/bloc/label_cubit.dart';
class CorrespondentBlocProvider extends StatelessWidget {
final Widget child;
const CorrespondentBlocProvider({super.key, required this.child});
const CorrespondentBlocProvider({
super.key,
required this.child,
});
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<Correspondent>(
context.read<
LabelRepository<Correspondent, CorrespondentRepositoryState>>(),
context.read<LabelRepository<Correspondent>>(),
),
child: child,
);

View File

@@ -13,8 +13,7 @@ class DocumentTypeBlocProvider extends StatelessWidget {
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<DocumentType>(
context
.read<LabelRepository<DocumentType, DocumentTypeRepositoryState>>(),
context.read<LabelRepository<DocumentType>>(),
),
child: child,
);

View File

@@ -18,25 +18,22 @@ class LabelsBlocProvider extends StatelessWidget {
providers: [
BlocProvider<LabelCubit<StoragePath>>(
create: (context) => LabelCubit<StoragePath>(
context.read<
LabelRepository<StoragePath, StoragePathRepositoryState>>(),
context.read<LabelRepository<StoragePath>>(),
),
),
BlocProvider<LabelCubit<Correspondent>>(
create: (context) => LabelCubit<Correspondent>(
context.read<
LabelRepository<Correspondent, CorrespondentRepositoryState>>(),
context.read<LabelRepository<Correspondent>>(),
),
),
BlocProvider<LabelCubit<DocumentType>>(
create: (context) => LabelCubit<DocumentType>(
context.read<
LabelRepository<DocumentType, DocumentTypeRepositoryState>>(),
context.read<LabelRepository<DocumentType>>(),
),
),
BlocProvider<LabelCubit<Tag>>(
create: (context) => LabelCubit<Tag>(
context.read<LabelRepository<Tag, TagRepositoryState>>(),
context.read<LabelRepository<Tag>>(),
),
),
],

View File

@@ -13,8 +13,7 @@ class StoragePathBlocProvider extends StatelessWidget {
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<StoragePath>(
context
.read<LabelRepository<StoragePath, StoragePathRepositoryState>>(),
context.read<LabelRepository<StoragePath>>(),
),
child: child,
);

View File

@@ -13,7 +13,7 @@ class TagBlocProvider extends StatelessWidget {
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<Tag>(
context.read<LabelRepository<Tag, TagRepositoryState>>(),
context.read<LabelRepository<Tag>>(),
),
child: child,
);