Skip to content

Commit 316635a

Browse files
author
roman_tcaregorodtcev
committed
Plurals text added
1 parent 9643cfe commit 316635a

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

  • omegatypes/src/main/java/com/omega_r/libs/omegatypes

omegatypes/src/main/java/com/omega_r/libs/omegatypes/Text.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ open class Text(protected val defaultTextStyle: TextStyle?) : Serializable, Text
3333
@JvmOverloads
3434
fun from(stringRes: Int, vararg formatArgs: Any, textStyle: TextStyle? = null): Text = FormatResourceText(stringRes, *formatArgs, textStyle = textStyle)
3535

36+
@JvmStatic
37+
@JvmOverloads
38+
fun from(stringRes: Int, quantity: Int, vararg formatArgs: Any, textStyle: TextStyle? = null): Text = PluralsText(stringRes, quantity, *formatArgs, textStyle = textStyle)
39+
3640
@JvmStatic
3741
@JvmOverloads
3842
fun from(stringHolder: StringHolder, textStyle: TextStyle? = null): Text = stringHolder.getStringText()?.let { from(it, textStyle) }
@@ -228,6 +232,21 @@ open class Text(protected val defaultTextStyle: TextStyle?) : Serializable, Text
228232

229233
}
230234

235+
class PluralsText(
236+
private val res: Int,
237+
private val quantity: Int,
238+
private vararg val formatArgs: Any,
239+
textStyle: TextStyle? = null
240+
) : Text(textStyle) {
241+
242+
override fun isEmpty(): Boolean = res <= 0
243+
244+
override fun getString(context: Context): String? {
245+
return context.resources.getQuantityString(res, quantity, *formatArgs)
246+
}
247+
248+
}
249+
231250
private class ArrayText internal constructor(
232251
private vararg val texts: Text,
233252
textStyle: TextStyle?

0 commit comments

Comments
 (0)