| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | import 'package:appflowy/startup/plugin/plugin.dart';import 'package:appflowy/workspace/application/view/view_listener.dart';import 'package:dartz/dartz.dart';import 'package:appflowy_backend/log.dart';import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart';import 'package:flutter/material.dart';class ViewPluginNotifier extends PluginNotifier<Option<DeletedViewPB>> {  final ViewListener? _viewListener;  ViewPB view;  @override  final ValueNotifier<Option<DeletedViewPB>> isDeleted = ValueNotifier(none());  @override  final ValueNotifier<int> isDisplayChanged = ValueNotifier(0);  ViewPluginNotifier({    required this.view,  }) : _viewListener = ViewListener(view: view) {    _viewListener?.start(onViewUpdated: (result) {      result.fold(        (updatedView) {          view = updatedView;          isDisplayChanged.value = updatedView.hashCode;        },        (err) => Log.error(err),      );    }, onViewMoveToTrash: (result) {      result.fold(        (deletedView) => isDeleted.value = some(deletedView),        (err) => Log.error(err),      );    });  }  @override  void dispose() {    isDeleted.dispose();    isDisplayChanged.dispose();    _viewListener?.stop();  }}
 |