i_trash_impl.dart 979 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import 'package:app_flowy/workspace/domain/i_trash.dart';
  2. import 'package:app_flowy/workspace/infrastructure/repos/trash_repo.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  4. import 'package:dartz/dartz.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/trash_create.pb.dart';
  6. class ITrashImpl implements ITrash {
  7. TrashRepo repo;
  8. ITrashImpl({required this.repo});
  9. @override
  10. Future<Either<List<Trash>, WorkspaceError>> readTrash() {
  11. return repo.readTrash().then((result) {
  12. return result.fold(
  13. (repeatedTrash) => left(repeatedTrash.items),
  14. (err) => right(err),
  15. );
  16. });
  17. }
  18. }
  19. class ITrashListenerImpl extends ITrashListener {
  20. TrashListenerRepo repo;
  21. ITrashListenerImpl({
  22. required this.repo,
  23. });
  24. @override
  25. Future<void> stop() async {
  26. await repo.close();
  27. }
  28. @override
  29. void start(TrashUpdatedCallback updateCallback) {
  30. repo.startListening(trashUpdated: updateCallback);
  31. }
  32. }