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