Message-Data
3.0.3indexedFacilitates message handling through data classes, enabling creation, parsing, combining, and localization of messages, including support for string formats and plurals.
2
Stars
—
Used by
dependents
—
Health
/ 100
Facilitates message handling through data classes, enabling creation, parsing, combining, and localization of messages, including support for string formats and plurals.
Message data classes for easier handling.
Gradle:
dependencies {
implementation 'ro.dragossusi:messagedata:3.0.4'
}
You can create simple messages from things out of the box
//using constructors
val message = StringMessageData("Message")
//using extensions
val messageExtension = "Message".toMessageData()
To parse the message, create a message parser.
val message = StringMessageData("Message")
val parser = DefaultDataParser()
println(message.getMessage(parser)) // prints Message
You can combine multiple message datas:
val parser = DefaultDataParser()
val list = listOf(
"1".toMessageData(),
"2".toMessageData(),
"3".toMessageData(),
)
val combined = list.join(",")
println(combined.getMessage(parser)) // prints "1,2,3"
val first = "First".toMessageData()
second = .toMessageData()
concat = ConcatMessageData(
first,
second,
)
println(concat.getMessage(parser))
println((first + second).getMEssage(parser))
You can create localized messages from android resources.
Supports: strings, string formats(only using %s) and plurals.
<string name="localized_string">Localized</string>
val localizedString = LocalizedMessageData(R.string.loclized_string)
val parser = ContextMessageDataParser(context)
//or use FragmentMessageDataParser(fragment) for fragments
println(localizedString.getMessage(parser)) // prints "Localized"
<string name="localized_string">Localized %s</string>
val text = "Text".toMessageData()
val localizedString = LocalizedFormatMessageData(
R.string.loclized_string,
text
)
val parser = ContextMessageDataParser(context)
println(localizedString.getMessage(parser)) // prints "Localized Text"
Surfaced from shared tags and platforms — no rankings paid for.