From 596c3bd524bda92a9bdd42538d69bd179422d159 Mon Sep 17 00:00:00 2001 From: crschnick Date: Mon, 4 Mar 2024 14:10:27 +0000 Subject: [PATCH] Make progress less jittery --- .../main/java/io/xpipe/app/browser/BrowserFileListComp.java | 2 +- .../main/java/io/xpipe/app/browser/BrowserStatusBarComp.java | 4 ++-- app/src/main/java/io/xpipe/app/util/HumanReadableFormat.java | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserFileListComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserFileListComp.java index 7a25ede4b..5d0f0552e 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserFileListComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserFileListComp.java @@ -445,7 +445,7 @@ final class BrowserFileListComp extends SimpleComp { if (path.getRawFileEntry().resolved().getKind() == FileKind.DIRECTORY) { setText(""); } else { - setText(byteCount(fileSize.longValue())); + setText(byteCount(fileSize.longValue(), true)); } } } diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserStatusBarComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserStatusBarComp.java index 4cdbfab20..4b4ab0d81 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserStatusBarComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserStatusBarComp.java @@ -46,13 +46,13 @@ public class BrowserStatusBarComp extends SimpleComp { var transferredCount = PlatformThread.sync(Bindings.createStringBinding( () -> { return HumanReadableFormat.byteCount( - model.getProgress().getValue().getTransferred()); + model.getProgress().getValue().getTransferred(), false); }, model.getProgress())); var allCount = PlatformThread.sync(Bindings.createStringBinding( () -> { return HumanReadableFormat.byteCount( - model.getProgress().getValue().getTotal()); + model.getProgress().getValue().getTotal(), true); }, model.getProgress())); var progressComp = new LabelComp(Bindings.createStringBinding( diff --git a/app/src/main/java/io/xpipe/app/util/HumanReadableFormat.java b/app/src/main/java/io/xpipe/app/util/HumanReadableFormat.java index c1544446c..1d3c915ab 100644 --- a/app/src/main/java/io/xpipe/app/util/HumanReadableFormat.java +++ b/app/src/main/java/io/xpipe/app/util/HumanReadableFormat.java @@ -16,7 +16,7 @@ public final class HumanReadableFormat { public static final DateTimeFormatter DAY_OF_WEEK = DateTimeFormatter.ofPattern("EEE"); public static final DateTimeFormatter HOUR_MINUTE = DateTimeFormatter.ofPattern("HH:mm"); - public static String byteCount(long bytes) { + public static String byteCount(long bytes, boolean precise) { if (-1024 < bytes && bytes < 1024) { return bytes + " B"; } @@ -25,7 +25,8 @@ public final class HumanReadableFormat { bytes /= 1024; ci.next(); } - return String.format("%.1f %cB", bytes / 1024.0, ci.current()); + var f = precise ? "%.1f" : "%.0f"; + return String.format(f + " %cB", bytes / 1024.0, ci.current()); } public static String date(LocalDateTime x) {