locality_file 0.0.1
locality_file: ^0.0.1 copied to clipboard
Monitor file upload progress with Locality Social Cloud.
example/main.dart
import 'package:locality_core/locality_core.dart';
import 'package:locality_file/locality_file.dart';
void main() async {
MediaPubSub mediaPubSub = MediaPubSub("some-file-topic");
await LocalitySocialCloud.supervise(pubSub: mediaPubSub);
MediaItemAdapter mediaItemAdapter = mediaPubSub.makeUpload("some-image-name", metadata: {
// Some metadata
"size": 1000
});
// We announce we started uploading the file with bytesize 1024 bytes
mediaItemAdapter.start(byteSize: 1024);
// You can use this method to communicate file upload progress to other users
mediaItemAdapter.setByteTransferProgress(1024);
// This signifies the file upload has finished; The file is now available to other users.
mediaItemAdapter.setFinished("https://some-download-link.com");
List<MediaItemAdapter> availableUploads = mediaPubSub.uploadsById.values.toList();
for( MediaItemAdapter upload in availableUploads ) {
upload.addObserver((ObserverEvent evt, {Map<String, dynamic>? data}) {
switch ( evt ) {
case ObserverEvent.start:
// TODO: Handle this case.
throw UnimplementedError();
case ObserverEvent.fail:
// TODO: Handle this case.
throw UnimplementedError();
case ObserverEvent.finish:
// TODO: Handle this case.
throw UnimplementedError();
case ObserverEvent.byteProgress:
// TODO: Handle this case.
throw UnimplementedError();
}
});
}
}