diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-01 15:10:14 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-27 16:21:51 +0000 |
| commit | 390f71ed8b3d4d5dac97f0ccac7f5e3a8782e5e5 (patch) | |
| tree | bbe15c6b366d56db4d3dbcd54ed48f1f71c13a2c /android/src/main | |
| parent | 8cdba47a72444683861f4801c1989f4256c9adee (diff) | |
| download | mullvadvpn-390f71ed8b3d4d5dac97f0ccac7f5e3a8782e5e5.tar.xz mullvadvpn-390f71ed8b3d4d5dac97f0ccac7f5e3a8782e5e5.zip | |
Create `TimeAgoFormatter` helper type
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/util/TimeAgoFormatter.kt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/TimeAgoFormatter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/TimeAgoFormatter.kt new file mode 100644 index 0000000000..1136a21814 --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/TimeAgoFormatter.kt @@ -0,0 +1,36 @@ +package net.mullvad.mullvadvpn.util + +import android.content.res.Resources +import net.mullvad.mullvadvpn.R +import org.joda.time.DateTime +import org.joda.time.Duration +import org.joda.time.PeriodType + +class TimeAgoFormatter(val resources: Resources) { + private val periodType = PeriodType.standard() + .withMillisRemoved() + .withSecondsRemoved() + + fun format(instant: DateTime): String { + val elapsedTime = Duration(instant, DateTime.now()) + val elapsedTimeInfo = elapsedTime.toPeriodTo(instant, periodType) + + if (elapsedTimeInfo.years > 0) { + return getRemainingText(R.plurals.years_ago, elapsedTimeInfo.years) + } else if (elapsedTimeInfo.months > 0) { + return getRemainingText(R.plurals.months_ago, elapsedTimeInfo.months) + } else if (elapsedTimeInfo.days > 0) { + return getRemainingText(R.plurals.days_ago, elapsedTimeInfo.days) + } else if (elapsedTimeInfo.hours > 0) { + return getRemainingText(R.plurals.hours_ago, elapsedTimeInfo.hours) + } else if (elapsedTimeInfo.minutes > 0) { + return getRemainingText(R.plurals.minutes_ago, elapsedTimeInfo.minutes) + } else { + return resources.getString(R.string.less_than_a_minute_ago) + } + } + + private fun getRemainingText(pluralId: Int, quantity: Int): String { + return resources.getQuantityString(pluralId, quantity, quantity) + } +} |
