From 10c317806a17c9a1a139bdfc92d52243a3352b32 Mon Sep 17 00:00:00 2001 From: Taras <tarassmakula@gmail.com> Date: Thu, 4 Aug 2022 17:35:51 +0300 Subject: [PATCH] Create subscription period parser --- .../futo/circles/subscriptions/IsoPeriod.kt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 app/src/main/java/org/futo/circles/subscriptions/IsoPeriod.kt diff --git a/app/src/main/java/org/futo/circles/subscriptions/IsoPeriod.kt b/app/src/main/java/org/futo/circles/subscriptions/IsoPeriod.kt new file mode 100644 index 000000000..d9f9b2fb6 --- /dev/null +++ b/app/src/main/java/org/futo/circles/subscriptions/IsoPeriod.kt @@ -0,0 +1,22 @@ +package org.futo.circles.subscriptions + +import android.content.Context +import org.futo.circles.R + +fun String.formatIsoPeriod(context: Context): String = toDurationNumberPairs() + .joinToString(separator = " ") { (number, duration) -> + context.resources.getQuantityString( + when (duration) { + "D" -> R.plurals.days + "W" -> R.plurals.weeks + "M" -> R.plurals.months + "Y" -> R.plurals.years + + else -> R.plurals.days + }, number, number + ) + } + +private fun String.toDurationNumberPairs() = removePrefix("P") + .chunked(2) + .map { it[0].toString().toInt() to it[1].toString() } \ No newline at end of file -- GitLab