fix display of uploader progress to reach 100%

pull/24/head
Zlatin Balevsky 2019-10-29 01:00:59 +00:00
parent c4095abdb4
commit 6c806c4441
3 changed files with 8 additions and 1 deletions

View File

@ -77,6 +77,8 @@ class UploadsModel {
int pieces = it.uploader.getTotalPieces() int pieces = it.uploader.getTotalPieces()
int done = it.uploader.getDonePieces() int done = it.uploader.getDonePieces()
if (percent == 100)
done++
int percentTotal = -1 int percentTotal = -1
if (pieces != 0) if (pieces != 0)
percentTotal = (done * 100) / pieces percentTotal = (done * 100) / pieces

View File

@ -21,6 +21,8 @@ class ContentUploader extends Uploader {
private final Mesh mesh private final Mesh mesh
private final int pieceSize private final int pieceSize
private volatile boolean done
ContentUploader(File file, ContentRequest request, Endpoint endpoint, Mesh mesh, int pieceSize) { ContentUploader(File file, ContentRequest request, Endpoint endpoint, Mesh mesh, int pieceSize) {
super(endpoint) super(endpoint)
this.file = file this.file = file
@ -71,6 +73,7 @@ class ContentUploader extends Uploader {
} }
endpoint.getOutputStream().write(tmp, 0, read) endpoint.getOutputStream().write(tmp, 0, read)
} }
done = true
} finally { } finally {
try {channel?.close() } catch (IOException ignored) {} try {channel?.close() } catch (IOException ignored) {}
endpoint.getOutputStream().flush() endpoint.getOutputStream().flush()
@ -100,7 +103,7 @@ class ContentUploader extends Uploader {
@Override @Override
public synchronized int getProgress() { public synchronized int getProgress() {
if (mapped == null) if (mapped == null)
return 0 return done ? 100 : 0
int position = mapped.position() int position = mapped.position()
int total = request.getRange().end - request.getRange().start int total = request.getRange().end - request.getRange().start
(int)(position * 100.0 / total) (int)(position * 100.0 / total)

View File

@ -282,6 +282,8 @@ class MainFrameView {
closureColumn(header : "Remote Pieces", type : String, read : { row -> closureColumn(header : "Remote Pieces", type : String, read : { row ->
int pieces = row.uploader.getTotalPieces() int pieces = row.uploader.getTotalPieces()
int done = row.uploader.getDonePieces() int done = row.uploader.getDonePieces()
if (row.uploader.getProgress() == 100)
done++
int percent = -1 int percent = -1
if ( pieces != 0 ) { if ( pieces != 0 ) {
percent = (done * 100) / pieces percent = (done * 100) / pieces