diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-03-30 22:57:58 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-27 16:21:51 +0000 |
| commit | 72d66935bbb91d80e74042e7ebcf3cc3e626abd5 (patch) | |
| tree | 4b0ed85792950df75fb112a322381a0876c1e639 /android/src/main | |
| parent | 83c614a9439f093e6c915d7580e3833e89cd1ecc (diff) | |
| download | mullvadvpn-72d66935bbb91d80e74042e7ebcf3cc3e626abd5.tar.xz mullvadvpn-72d66935bbb91d80e74042e7ebcf3cc3e626abd5.zip | |
Create `TimeSinceLabel` helper class
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/TimeSinceLabel.kt | 53 | ||||
| -rw-r--r-- | android/src/main/res/values/plurals.xml | 21 | ||||
| -rw-r--r-- | android/src/main/res/values/strings.xml | 2 |
3 files changed, 76 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/TimeSinceLabel.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/TimeSinceLabel.kt new file mode 100644 index 0000000000..2fa2c4f2be --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/TimeSinceLabel.kt @@ -0,0 +1,53 @@ +package net.mullvad.mullvadvpn.ui + +import android.content.Context +import android.view.View +import android.widget.TextView +import net.mullvad.mullvadvpn.R +import org.joda.time.DateTime +import org.joda.time.Duration +import org.joda.time.PeriodType + +class TimeSinceLabel(val context: Context, val view: View) { + private val resources = context.resources + private val label = view.findViewById<TextView>(R.id.time_since) + + private val periodType = PeriodType.standard() + .withMillisRemoved() + .withSecondsRemoved() + + var timeInstant: DateTime? = null + set(value) { + field = value + updateLabel() + } + + private fun updateLabel() { + val instant = timeInstant + + if (instant != null) { + val elapsedTime = Duration(instant, DateTime.now()) + val elapsedTimeInfo = elapsedTime.toPeriodTo(instant, periodType) + + if (elapsedTimeInfo.years > 0) { + label.setText(getRemainingText(R.plurals.years_ago, elapsedTimeInfo.years)) + } else if (elapsedTimeInfo.months > 0) { + label.setText(getRemainingText(R.plurals.months_ago, elapsedTimeInfo.months)) + } else if (elapsedTimeInfo.days > 0) { + label.setText(getRemainingText(R.plurals.days_ago, elapsedTimeInfo.days)) + } else if (elapsedTimeInfo.hours > 0) { + label.setText(getRemainingText(R.plurals.hours_ago, elapsedTimeInfo.hours)) + } else if (elapsedTimeInfo.minutes > 0) { + label.setText(getRemainingText(R.plurals.minutes_ago, elapsedTimeInfo.minutes)) + } else { + label.setText(R.string.less_than_a_minute_ago) + } + } else { + label.text = "" + } + } + + private fun getRemainingText(pluralId: Int, quantity: Int): String { + return resources.getQuantityString(pluralId, quantity, quantity) + } +} diff --git a/android/src/main/res/values/plurals.xml b/android/src/main/res/values/plurals.xml index 5395e2f4fa..679c4f46db 100644 --- a/android/src/main/res/values/plurals.xml +++ b/android/src/main/res/values/plurals.xml @@ -11,4 +11,25 @@ <item quantity="one">%d day left</item> <item quantity="other">%d days left</item> </plurals> + <plurals name="minutes_ago"> + <item quantity="zero">less than a minute ago</item> + <item quantity="one">a minute ago</item> + <item quantity="other">%d minutes ago</item> + </plurals> + <plurals name="hours_ago"> + <item quantity="one">an hour ago</item> + <item quantity="other">%d hours ago</item> + </plurals> + <plurals name="days_ago"> + <item quantity="one">a day ago</item> + <item quantity="other">%d days ago</item> + </plurals> + <plurals name="months_ago"> + <item quantity="one">a month ago</item> + <item quantity="other">%d months ago</item> + </plurals> + <plurals name="years_ago"> + <item quantity="one">a year ago</item> + <item quantity="other">%d years ago</item> + </plurals> </resources> diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml index d85e15698d..de1419cdf8 100644 --- a/android/src/main/res/values/strings.xml +++ b/android/src/main/res/values/strings.xml @@ -33,6 +33,8 @@ <string name="settings_account">Account</string> <string name="less_than_a_day_left">less than a day left</string> + <string name="less_than_a_minute_ago">less than a minute + ago</string> <string name="out_of_time">Out of time</string> <string name="settings_preferences">Preferences</string> <string name="settings_advanced">Advanced</string> |
