From 12ea8fec33fc5d197d14be9b1d61577d91ca845d Mon Sep 17 00:00:00 2001 From: AYM1607 Date: Fri, 5 Apr 2019 01:16:06 -0600 Subject: [PATCH] Added docs for the new image bloc --- lib/src/blocs/new_image_bloc.dart | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lib/src/blocs/new_image_bloc.dart b/lib/src/blocs/new_image_bloc.dart index 9ccd5f4..8e21002 100644 --- a/lib/src/blocs/new_image_bloc.dart +++ b/lib/src/blocs/new_image_bloc.dart @@ -9,12 +9,24 @@ import '../services/auth_service.dart'; import '../resources/firebase_storage_provider.dart'; import '../resources/firestore_provider.dart'; +/// A business logic component that manages the state for the new image screen. class NewImageBloc { + /// An instance of the auth service. final AuthService _auth = authService; + + /// An instance of the firestore provider. final FirestoreProvider _firestore = firestoreProvider; + + /// An instance of the firebase storage provider. final FirebaseStorageProvider _storage = storageProvider; + + /// A subject of the current picture file. final _picture = BehaviorSubject(); + + /// A subject of the current user model. final _user = BehaviorSubject(); + + /// A subject of the current task event name. final _eventName = BehaviorSubject(); NewImageBloc() { @@ -22,22 +34,34 @@ class NewImageBloc { } //Stream getters. + /// An observable of the picture file. Observable get picture => _picture.stream; + + /// An observable of the user model. Observable get userModelStream => _user.stream; + + /// An observable of the task event name. Observable get eventName => _eventName.stream; + + /// An observable of the ready to submit flag. Observable get submitEnabled => Observable.combineLatest2(_picture, _eventName, (a, b) => true); //Sink getters. + /// Changes the current picture file. Function(File) get changePicture => _picture.sink.add; + + /// Changes the current task event name. Function(String) get changeEventName => _eventName.sink.add; + /// Fetches and updates the current user. Future setCurrentUser() async { final user = await _auth.currentUser; final userModel = await _firestore.getUser(username: user.email); _user.add(userModel); } + /// Saves the current picture to the database. Future submit() async { final user = _user.value; final StorageUploadTask uploadTask =