From ca5ce53066515c70801f45f5e1ca040f21f997d5 Mon Sep 17 00:00:00 2001 From: Corentin Forler <10946971+cogk@users.noreply.github.com> Date: Sat, 20 Jul 2024 14:01:47 +0200 Subject: [PATCH] force second display when less than 1 minute --- .../core/mapper/RecordViewDataMapper.kt | 10 ++++++---- .../util/simpletimetracker/core/mapper/TimeMapper.kt | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/mapper/RecordViewDataMapper.kt b/core/src/main/java/com/example/util/simpletimetracker/core/mapper/RecordViewDataMapper.kt index acbc9bf43..38a867a02 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/mapper/RecordViewDataMapper.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/mapper/RecordViewDataMapper.kt @@ -130,10 +130,12 @@ class RecordViewDataMapper @Inject constructor( timeEnded: Long, showSeconds: Boolean, ): Long { - return if (showSeconds) { - timeEnded - timeStarted - } else { - timeEnded.dropSeconds() - timeStarted.dropSeconds() + var delta: Long = timeEnded - timeStarted + if (!showSeconds && delta >= 60000L) { + // If we don't want seconds, return duration without taking them into account. + // However, if the result would be "0 minute", don't round the duration. + delta = timeEnded.dropSeconds() - timeStarted.dropSeconds() } + return delta } } \ No newline at end of file diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/mapper/TimeMapper.kt b/core/src/main/java/com/example/util/simpletimetracker/core/mapper/TimeMapper.kt index deead2829..5c83e42f8 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/mapper/TimeMapper.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/mapper/TimeMapper.kt @@ -494,7 +494,7 @@ class TimeMapper @Inject constructor( val willShowMinutes: Boolean val willShowSeconds: Boolean - if (forceSeconds) { + if (forceSeconds || (hr == 0L && min == 0L)) { willShowHours = hr != 0L willShowMinutes = willShowHours || min != 0L willShowSeconds = true