aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java')
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java b/src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java
index a2ed6d81..e3680b81 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java
@@ -291,31 +291,28 @@ public class UIHelper {
}
public static String getHumanReadableFileSize(long size) {
- String filesize;
- if (size > (1.5 * 1024 * 1024)) {
- filesize = size / (1024 * 1024)+ " MiB";
- } else if (size > 0) {
- filesize = size / 1024 + " KiB";
- } else {
- filesize = null;
+ return getHumanReadableDetailedFileSize(size, 1);
}
- return filesize;
+ public static String getHumanReadableDetailedFileSize(long filesize) {
+ String size = getHumanReadableDetailedFileSize(filesize, 2);
+ return null == size ? "?" : size;
}
- public static String getHumanReadableDetailedFileSize(long filesize) {
+ public static String getHumanReadableDetailedFileSize(long filesize, int precision) {
if (0 > filesize) {
- return "?";
+ return null;
}
double size = Double.valueOf(filesize);
String[] sizes = {" bytes", " Kb", " Mb", " Gb", " Tb"};
int i = 0;
- while (1023 < size) {
+ while (1023 < size && i < sizes.length - 1) {
size /= 1024d;
++i;
}
+
BigDecimal readableSize = new BigDecimal(size);
- readableSize = readableSize.setScale(2, BigDecimal.ROUND_HALF_UP);
- return readableSize.doubleValue() + sizes[i];
+ readableSize = readableSize.setScale(precision, BigDecimal.ROUND_HALF_UP);
+ return ((0 == i) ? String.valueOf(readableSize.intValue()) : String.valueOf(readableSize.doubleValue())) + sizes[i];
}
}