import 'dart:async'; import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:core/utils/app_logger.dart'; import 'package:dartz/dartz.dart'; abstract class WorkObserver { Future bindDI(); Future observe(String taskId, Map inputData, Completer completer); void consumeState(Stream> newStateStream) { newStateStream.listen( _handleStateStream, onError: (error, stackTrace) { logError('WorkObserver::consumeState():onError:error: $error'); logError('WorkObserver::consumeState():onError:stackTrace: $stackTrace'); } ); } void _handleStateStream(Either newState) { newState.fold(handleFailureViewState, handleSuccessViewState); } void handleFailureViewState(Failure failure) {} void handleSuccessViewState(Success success) {} }