common: add common stringValue api

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
This commit is contained in:
Aditya Wasan 2021-03-21 01:33:14 +05:30 committed by Harsh Shandilya
parent 4a40192647
commit 01ffc49e18
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
6 changed files with 83 additions and 0 deletions

View file

@ -36,6 +36,7 @@ kotlin {
val commonMain by getting {
dependencies {
implementation(compose.runtime)
implementation(compose.ui)
}
}

View file

@ -0,0 +1,25 @@
package dev.msfjarvis.lobsters.utils
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import dev.msfjarvis.lobsters.common.R
private fun stringEnumMapper(stringEnum: StringEnum): Int {
return when (stringEnum) {
StringEnum.AddToSavedPosts -> R.string.add_to_saved_posts
StringEnum.AppName -> R.string.app_name
StringEnum.AvatarContentDescription -> R.string.avatar_content_description
StringEnum.HottestPosts -> R.string.hottest_posts
StringEnum.Loading -> R.string.loading
StringEnum.NoSavedPost -> R.string.no_saved_posts
StringEnum.OpenComments -> R.string.open_comments
StringEnum.RefreshPostsContentDescription -> R.string.refresh_posts_content_description
StringEnum.RemoveFromSavedPosts -> R.string.remove_from_saved_posts
StringEnum.SubmittedBy -> R.string.submitted_by
}
}
@Composable
actual fun stringValue(enum: StringEnum, vararg formatArgs: Any): String {
return stringResource(stringEnumMapper(enum), formatArgs)
}

View file

@ -0,0 +1,13 @@
<resources>
<string name="app_name">Claw</string>
<string name="loading">Loading posts…</string>
<string name="no_saved_posts">You don\'t have any saved posts</string>
<string name="hottest_posts">Hottest</string>
<string name="saved_posts">Saved</string>
<string name="submitted_by">submitted by %1$s</string>
<string name="avatar_content_description">%1$s\'s avatar</string>
<string name="add_to_saved_posts">Add to saved posts</string>
<string name="remove_from_saved_posts">Remove from saved posts</string>
<string name="refresh_posts_content_description">Refresh posts</string>
<string name="open_comments">Open comments</string>
</resources>

View file

@ -0,0 +1,15 @@
package dev.msfjarvis.lobsters.utils
enum class StringEnum {
AddToSavedPosts,
AppName,
AvatarContentDescription,
HottestPosts,
Loading,
NoSavedPost,
OpenComments,
RefreshPostsContentDescription,
RemoveFromSavedPosts,
SubmittedBy,
;
}

View file

@ -0,0 +1,6 @@
package dev.msfjarvis.lobsters.utils
import androidx.compose.runtime.Composable
@Composable
expect fun stringValue(enum: StringEnum, vararg formatArgs: Any): String

View file

@ -0,0 +1,23 @@
package dev.msfjarvis.lobsters.utils
import androidx.compose.runtime.Composable
private fun stringEnumMapper(stringEnum: StringEnum): String {
return when (stringEnum) {
StringEnum.AddToSavedPosts -> "Add to saved posts"
StringEnum.AppName -> "Claw"
StringEnum.AvatarContentDescription -> "%1s's avatar"
StringEnum.HottestPosts -> "Hottest"
StringEnum.Loading -> "Loading posts…"
StringEnum.NoSavedPost -> "You don't have any saved posts"
StringEnum.OpenComments -> "Open comments"
StringEnum.RefreshPostsContentDescription -> "Refresh posts"
StringEnum.RemoveFromSavedPosts -> "Remove from saved posts"
StringEnum.SubmittedBy -> "submitted by %1s"
}
}
@Composable
actual fun stringValue(enum: StringEnum, vararg formatArgs: Any): String {
return stringEnumMapper(enum).format(formatArgs)
}