import 'package:app_flowy/workspace/domain/i_trash.dart'; import 'package:app_flowy/workspace/infrastructure/repos/trash_repo.dart'; import 'package:dartz/dartz.dart'; import 'package:flowy_sdk/protobuf/flowy-workspace-infra/trash_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart'; class ITrashImpl implements ITrash { TrashRepo repo; ITrashImpl({required this.repo}); @override Future, WorkspaceError>> readTrash() { return repo.readTrash().then((result) { return result.fold( (repeatedTrash) => left(repeatedTrash.items), (err) => right(err), ); }); } @override Future> putback(String trashId) { return repo.putback(trashId); } @override Future> deleteAll() { return repo.deleteAll(); } @override Future> restoreAll() { return repo.restoreAll(); } @override Future> deleteViews(List> trashList) { return repo.deleteViews(trashList); } } class ITrashListenerImpl extends ITrashListener { TrashListenerRepo repo; ITrashListenerImpl({ required this.repo, }); @override Future stop() async { await repo.close(); } @override void start(TrashUpdatedCallback updateCallback) { repo.startListening(trashUpdated: updateCallback); } }