You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
719 B
30 lines
719 B
2 years ago
|
part of '../neon_files.dart';
|
||
2 years ago
|
|
||
|
class UploadTask {
|
||
|
UploadTask({
|
||
|
required this.path,
|
||
|
required this.size,
|
||
|
required this.lastModified,
|
||
|
});
|
||
|
|
||
|
final List<String> path;
|
||
|
final int size;
|
||
|
final DateTime lastModified;
|
||
|
|
||
|
final _streamController = StreamController<int>();
|
||
|
late final progress = _streamController.stream.asBroadcastStream();
|
||
|
|
||
|
Future execute(final NextcloudClient client, final Stream<List<int>> stream) async {
|
||
|
var uploaded = 0;
|
||
2 years ago
|
await client.webdav.uploadStream(
|
||
2 years ago
|
stream.map((final chunk) {
|
||
|
uploaded += chunk.length;
|
||
|
_streamController.add((uploaded / size * 100).toInt());
|
||
|
|
||
|
return Uint8List.fromList(chunk);
|
||
|
}),
|
||
|
path.join('/'),
|
||
|
);
|
||
|
}
|
||
|
}
|