summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-01 15:10:14 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-27 16:21:51 +0000
commit390f71ed8b3d4d5dac97f0ccac7f5e3a8782e5e5 (patch)
treebbe15c6b366d56db4d3dbcd54ed48f1f71c13a2c /android/src
parent8cdba47a72444683861f4801c1989f4256c9adee (diff)
downloadmullvadvpn-390f71ed8b3d4d5dac97f0ccac7f5e3a8782e5e5.tar.xz
mullvadvpn-390f71ed8b3d4d5dac97f0ccac7f5e3a8782e5e5.zip
Create `TimeAgoFormatter` helper type
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/util/TimeAgoFormatter.kt36
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)
+ }
+}