package com.sshproxy.vpn.util

import java.util.Locale

object TrafficFormatter {

    fun format(bytes: Long): String {
        if (bytes < 0) {
            return "0 B"
        }
        val units = arrayOf("B", "KB", "MB", "GB", "TB")
        var value = bytes.toDouble()
        var unitIndex = 0
        while (value >= 1024.0 && unitIndex < units.lastIndex) {
            value /= 1024.0
            unitIndex++
        }
        return if (unitIndex == 0) {
            String.format(Locale.getDefault(), "%.0f %s", value, units[unitIndex])
        } else {
            String.format(Locale.getDefault(), "%.1f %s", value, units[unitIndex])
        }
    }
}
