diff --git a/F-Droid/src/org/fdroid/fdroid/AppDetails.java b/F-Droid/src/org/fdroid/fdroid/AppDetails.java index 5d7424405..4d2463f90 100644 --- a/F-Droid/src/org/fdroid/fdroid/AppDetails.java +++ b/F-Droid/src/org/fdroid/fdroid/AppDetails.java @@ -1502,7 +1502,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A if (totalBytes == -1) { setProgressVisible(true); progressBar.setIndeterminate(true); - progressSize.setText(readableFileSize(bytesDownloaded)); + progressSize.setText(Utils.getFriendlySize(bytesDownloaded)); progressPercent.setText(""); } else { long percent = bytesDownloaded * 100 / totalBytes; @@ -1510,24 +1510,11 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A progressBar.setIndeterminate(false); progressBar.setProgress((int) percent); progressBar.setMax(100); - progressSize.setText(readableFileSize(bytesDownloaded) + " / " + readableFileSize(totalBytes)); + progressSize.setText(Utils.getFriendlySize(bytesDownloaded) + " / " + Utils.getFriendlySize(totalBytes)); progressPercent.setText(Long.toString(percent) + " %"); } } - /** - * Converts a number of bytes to a human readable file size (eg 3.5 GiB). - * - * Based on http://stackoverflow.com/a/5599842 - */ - public String readableFileSize(long bytes) { - final String[] units = getResources().getStringArray(R.array.file_size_units); - if (bytes <= 0) return "0 " + units[0]; - int digitGroups = (int) (Math.log10(bytes) / Math.log10(1024)); - return new DecimalFormat("#,##0.#") - .format(bytes / Math.pow(1024, digitGroups)) + " " + units[digitGroups]; - } - /** * Shows or hides progress bar and related views. */ diff --git a/F-Droid/src/org/fdroid/fdroid/Utils.java b/F-Droid/src/org/fdroid/fdroid/Utils.java index 14db5651d..e5ccd595c 100644 --- a/F-Droid/src/org/fdroid/fdroid/Utils.java +++ b/F-Droid/src/org/fdroid/fdroid/Utils.java @@ -186,7 +186,7 @@ public final class Utils { } } - public static String getFriendlySize(int size) { + public static String getFriendlySize(long size) { double s = size; int i = 0; while (i < FRIENDLY_SIZE_FORMAT.length - 1 && s >= 1024) {