Allow to resume failed transfers
This commit is contained in:
parent
90bee87ff5
commit
fefcf35352
|
@ -210,6 +210,8 @@ public class FileManager : StreamInteractionModule, Object {
|
|||
|
||||
private async void download_file_internal(FileProvider file_provider, FileTransfer file_transfer, Conversation conversation) {
|
||||
try {
|
||||
file_transfer.cancellable.reset();
|
||||
|
||||
// Get meta info
|
||||
FileReceiveData receive_data = file_provider.get_file_receive_data(file_transfer);
|
||||
FileDecryptor? file_decryptor = null;
|
||||
|
@ -246,6 +248,7 @@ public class FileManager : StreamInteractionModule, Object {
|
|||
File file = File.new_for_path(Path.build_filename(get_storage_dir(), filename));
|
||||
|
||||
OutputStream os = file.create(FileCreateFlags.REPLACE_DESTINATION);
|
||||
file_transfer.cancellable.reset();
|
||||
uint8[] buffer = new uint8[1024];
|
||||
ssize_t read;
|
||||
while ((read = yield input_stream.read_async(buffer, Priority.LOW, file_transfer.cancellable)) > 0) {
|
||||
|
|
|
@ -198,12 +198,13 @@ public class FileDefaultWidgetController : Object {
|
|||
open_file();
|
||||
}
|
||||
break;
|
||||
case FileTransfer.State.FAILED:
|
||||
case FileTransfer.State.NOT_STARTED:
|
||||
assert(stream_interactor != null && file_transfer != null);
|
||||
stream_interactor.get_module(FileManager.IDENTITY).download_file.begin(file_transfer);
|
||||
break;
|
||||
default:
|
||||
// Clicking doesn't do anything in FAILED and IN_PROGRESS states
|
||||
// Clicking doesn't do anything in IN_PROGRESS states
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue