summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
authorCalMWolfs <94038482+CalMWolfs@users.noreply.github.com>2024-06-14 05:58:40 +1000
committerGitHub <noreply@github.com>2024-06-13 21:58:40 +0200
commitb48e43dff9baf2710809debe47a4bd5b329d70a0 (patch)
treed6470d8e3f41ae3982cecab685ca034318397196 /src/main/java/at/hannibal2/skyhanni/utils
parent31344fc364cde2cef243a49f1e7d4c4fbb390699 (diff)
downloadskyhanni-b48e43dff9baf2710809debe47a4bd5b329d70a0.tar.gz
skyhanni-b48e43dff9baf2710809debe47a4bd5b329d70a0.tar.bz2
skyhanni-b48e43dff9baf2710809debe47a4bd5b329d70a0.zip
Backend: Remove deprecated time utils format (#1898)
* remove deprecated time utils format * cleanup file * mix merge * make it default to right amount * fix merge * fix merge * revert 2 changes * revert other thing --------- Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/TimeUtils.kt80
1 files changed, 31 insertions, 49 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/TimeUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/TimeUtils.kt
index 78213df56..43cd46906 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/TimeUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/TimeUtils.kt
@@ -19,66 +19,42 @@ object TimeUtils {
showMilliSeconds: Boolean = false,
longName: Boolean = false,
maxUnits: Int = -1,
- ): String = formatDuration(
- inWholeMilliseconds - 999, biggestUnit, showMilliSeconds, longName, maxUnits
- )
-
- fun Duration.timerColor(default: String = "§f") = when (this) {
- in 0.seconds..60.seconds -> "§c"
- in 60.seconds..3.minutes -> "§6"
- in 3.minutes..10.minutes -> "§e"
- else -> default
- }
-
- @Deprecated(
- "Has an offset of one second",
- ReplaceWith("millis.toDuration(DurationUnit.MILLISECONDS).format(biggestUnit, showMilliSeconds, longName, maxUnits)")
- )
- fun formatDuration(
- millis: Long,
- biggestUnit: TimeUnit = TimeUnit.YEAR,
- showMilliSeconds: Boolean = false,
- longName: Boolean = false,
- maxUnits: Int = -1,
): String {
- // TODO: if this weird offset gets removed, also remove that subtraction from formatDuration(kotlin.time.Duration)
- var milliseconds = millis + 999
- val map = mutableMapOf<TimeUnit, Int>()
+ var millis = inWholeMilliseconds
+ val parts = mutableMapOf<TimeUnit, Int>()
+
for (unit in TimeUnit.entries) {
if (unit.ordinal >= biggestUnit.ordinal) {
val factor = unit.factor
- map[unit] = (milliseconds / factor).toInt()
- milliseconds %= factor
+ parts[unit] = (millis / factor).toInt()
+ millis %= factor
}
}
- val builder = StringBuilder()
- var count = 0
- for ((unit, value) in map.entries) {
- if (value > 0 || builder.isNotEmpty() || unit == TimeUnit.SECOND) {
- builder.append(value.addSeparators())
- val name = if (longName) {
- " " + unit.longName + if (value > 1) "s" else ""
- } else {
- unit.shortName
- }
-
- if (unit == TimeUnit.SECOND) {
- if (showMilliSeconds) {
- val formatMillis = milliseconds / 100
- builder.append(".")
- builder.append(formatMillis)
+ var currentUnits = 0
+ val result = buildString {
+ for ((unit, value) in parts) {
+ if (value != 0) {
+ val formatted = unit.format(value, longName)
+ append(formatted)
+ if (unit == TimeUnit.SECOND && showMilliSeconds) {
+ val formattedMillis = (millis / 100).toInt()
+ append(".$formattedMillis")
}
- builder.append(name)
- } else {
- builder.append("$name ")
- }
- count++
- if (maxUnits != -1 && count == maxUnits) break
+ append(" ")
+ if (maxUnits != -1 && ++currentUnits == maxUnits) break
+ }
}
}
- return builder.toString().trim()
+ return result.trim()
+ }
+
+ fun Duration.timerColor(default: String = "§f") = when (this) {
+ in 0.seconds..60.seconds -> "§c"
+ in 60.seconds..3.minutes -> "§6"
+ in 3.minutes..10.minutes -> "§e"
+ else -> default
}
val Duration.inWholeTicks: Int
@@ -182,4 +158,10 @@ enum class TimeUnit(val factor: Long, val shortName: String, val longName: Strin
MINUTE(FACTOR_MINUTES, "m", "Minute"),
SECOND(FACTOR_SECONDS, "s", "Second"),
;
+
+ fun format(value: Int, longFormat: Boolean = false) = if (longFormat) {
+ "${value.addSeparators()} $longName" + if (value > 1) "s" else ""
+ } else {
+ "${value.addSeparators()}$shortName"
+ }
}