fix display of uploader progress to reach 100%

This commit is contained in:
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

@@ -20,6 +20,8 @@ class ContentUploader extends Uploader {
private final ContentRequest request private final ContentRequest request
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)
@@ -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