diff --git a/composeApp/src/androidMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/DomainSection.android.kt b/composeApp/src/androidMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/DomainSection.android.kt
index 891b37c..53f37c1 100644
--- a/composeApp/src/androidMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/DomainSection.android.kt
+++ b/composeApp/src/androidMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/DomainSection.android.kt
@@ -7,6 +7,8 @@ import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.Share
+import androidx.compose.material.icons.rounded.Check
+import androidx.compose.material.icons.rounded.Share
import androidx.compose.material3.Icon
import androidx.compose.material3.Switch
import androidx.compose.material3.SwitchDefaults
@@ -18,8 +20,10 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
+import dev.datlag.aniflow.SharedRes
import dev.datlag.aniflow.other.DomainVerifier
import dev.datlag.tooling.decompose.lifecycle.collectAsStateWithLifecycle
+import dev.icerock.moko.resources.compose.stringResource
@Composable
actual fun DomainSection(modifier: Modifier) {
@@ -37,11 +41,11 @@ actual fun DomainSection(modifier: Modifier) {
horizontalArrangement = Arrangement.spacedBy(8.dp)
) {
Icon(
- imageVector = Icons.Filled.Share,
+ imageVector = Icons.Rounded.Share,
contentDescription = null,
)
Text(
- text = "Open Links"
+ text = stringResource(SharedRes.strings.open_links)
)
Spacer(modifier = Modifier.weight(1F))
Switch(
@@ -54,7 +58,7 @@ actual fun DomainSection(modifier: Modifier) {
if (verified) {
Icon(
modifier = Modifier.size(SwitchDefaults.IconSize),
- imageVector = Icons.Default.Check,
+ imageVector = Icons.Rounded.Check,
contentDescription = null
)
}
diff --git a/composeApp/src/androidMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/TranslateButton.android.kt b/composeApp/src/androidMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/TranslateButton.android.kt
index 589b819..7a6f5cb 100644
--- a/composeApp/src/androidMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/TranslateButton.android.kt
+++ b/composeApp/src/androidMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/TranslateButton.android.kt
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Translate
+import androidx.compose.material.icons.rounded.Translate
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
@@ -102,7 +103,7 @@ actual fun TranslateButton(
} else {
Icon(
modifier = Modifier.size(ButtonDefaults.IconSize),
- imageVector = Icons.Default.Translate,
+ imageVector = Icons.Rounded.Translate,
contentDescription = null
)
}
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/component/airing/Airing.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/component/airing/Airing.kt
index 26ac5f2..69ceb47 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/component/airing/Airing.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/component/airing/Airing.kt
@@ -3,6 +3,7 @@ package dev.datlag.aniflow.ui.navigation.screen.home.component.airing
import androidx.compose.foundation.layout.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Schedule
+import androidx.compose.material.icons.rounded.Schedule
import androidx.compose.material3.Icon
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
@@ -28,7 +29,7 @@ fun Airing(airingAt: Int, color: Color = LocalContentColor.current) {
verticalAlignment = Alignment.CenterVertically
) {
Icon(
- imageVector = Icons.Default.Schedule,
+ imageVector = Icons.Rounded.Schedule,
contentDescription = null,
modifier = Modifier.size(24.dp),
tint = color
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/component/airing/Episode.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/component/airing/Episode.kt
index bcc046c..4ab96f0 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/component/airing/Episode.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/component/airing/Episode.kt
@@ -3,6 +3,7 @@ package dev.datlag.aniflow.ui.navigation.screen.home.component.airing
import androidx.compose.foundation.layout.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Slideshow
+import androidx.compose.material.icons.rounded.Slideshow
import androidx.compose.material3.Icon
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
@@ -13,6 +14,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
+import dev.datlag.aniflow.SharedRes
+import dev.icerock.moko.resources.compose.stringResource
@Composable
fun Episode(value: Int, color: Color = LocalContentColor.current) {
@@ -23,13 +26,13 @@ fun Episode(value: Int, color: Color = LocalContentColor.current) {
verticalAlignment = Alignment.CenterVertically
) {
Icon(
- imageVector = Icons.Default.Slideshow,
+ imageVector = Icons.Rounded.Slideshow,
contentDescription = null,
modifier = Modifier.size(24.dp),
tint = color
)
Text(
- text = "Episode $value",
+ text = stringResource(SharedRes.strings.episode_number, value),
style = MaterialTheme.typography.titleMedium,
textAlign = TextAlign.Center,
color = color
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/SettingsDialog.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/SettingsDialog.kt
index 56eaedd..b1bb025 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/SettingsDialog.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/SettingsDialog.kt
@@ -12,6 +12,7 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.*
import androidx.compose.material.icons.rounded.ArrowBackIosNew
import androidx.compose.material.icons.rounded.Code
+import androidx.compose.material.icons.rounded.NotInterested
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
@@ -120,17 +121,17 @@ fun SettingsScreen(component: SettingsComponent) {
) {
if (isLoggedIn) {
Icon(
- imageVector = Icons.Default.NotInterested,
+ imageVector = Icons.Rounded.NotInterested,
contentDescription = null,
)
- Text(text = "Logout")
+ Text(text = stringResource(SharedRes.strings.logout))
} else {
Image(
modifier = Modifier.size(24.dp).clip(CircleShape),
painter = painterResource(SharedRes.images.anilist),
contentDescription = null,
)
- Text(text = "Login")
+ Text(text = stringResource(SharedRes.strings.login))
}
}
}
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/AdultSection.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/AdultSection.kt
index b78002a..4338ed9 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/AdultSection.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/AdultSection.kt
@@ -7,6 +7,8 @@ import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.NoAdultContent
+import androidx.compose.material.icons.rounded.Check
+import androidx.compose.material.icons.rounded.NoAdultContent
import androidx.compose.material3.Icon
import androidx.compose.material3.Switch
import androidx.compose.material3.Text
@@ -35,7 +37,7 @@ fun AdultSection(
horizontalArrangement = Arrangement.spacedBy(8.dp)
) {
Icon(
- imageVector = Icons.Default.NoAdultContent,
+ imageVector = Icons.Rounded.NoAdultContent,
contentDescription = null,
)
Text(
@@ -49,7 +51,7 @@ fun AdultSection(
if (adultContent) {
Icon(
modifier = Modifier.size(SwitchDefaults.IconSize),
- imageVector = Icons.Default.Check,
+ imageVector = Icons.Rounded.Check,
contentDescription = null
)
}
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/CharacterSection.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/CharacterSection.kt
index 3c89c14..e50f70e 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/CharacterSection.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/CharacterSection.kt
@@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ExpandMore
import androidx.compose.material.icons.filled.PersonPin
+import androidx.compose.material.icons.rounded.ExpandMore
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
@@ -22,6 +23,7 @@ import com.maxkeppeler.sheets.option.models.DisplayMode
import com.maxkeppeler.sheets.option.models.Option
import com.maxkeppeler.sheets.option.models.OptionConfig
import com.maxkeppeler.sheets.option.models.OptionSelection
+import dev.datlag.aniflow.SharedRes
import dev.datlag.aniflow.common.toComposeString
import dev.datlag.tooling.decompose.lifecycle.collectAsStateWithLifecycle
import dev.datlag.aniflow.settings.model.CharLanguage as SettingsChar
@@ -67,14 +69,14 @@ fun CharacterSection(
contentDescription = null
)
Text(
- text = "Character Language"
+ text = stringResource(SharedRes.strings.char_language)
)
Spacer(modifier = Modifier.weight(1F))
IconButton(
onClick = { useCase.show() }
) {
Icon(
- imageVector = Icons.Default.ExpandMore,
+ imageVector = Icons.Rounded.ExpandMore,
contentDescription = null
)
}
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/ColorSection.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/ColorSection.kt
index c14a620..3fe90be 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/ColorSection.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/ColorSection.kt
@@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Circle
import androidx.compose.material.icons.filled.Palette
+import androidx.compose.material.icons.rounded.Palette
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
@@ -86,7 +87,7 @@ fun ColorSection(
horizontalArrangement = Arrangement.spacedBy(8.dp)
) {
Icon(
- imageVector = Icons.Default.Palette,
+ imageVector = Icons.Rounded.Palette,
contentDescription = null,
)
Text(
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/TitleSection.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/TitleSection.kt
index 7607813..f92012f 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/TitleSection.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/home/dialog/settings/component/TitleSection.kt
@@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ExpandMore
+import androidx.compose.material.icons.rounded.ExpandMore
import androidx.compose.material.icons.rounded.Title
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
@@ -22,6 +23,7 @@ import com.maxkeppeler.sheets.option.models.DisplayMode
import com.maxkeppeler.sheets.option.models.Option
import com.maxkeppeler.sheets.option.models.OptionConfig
import com.maxkeppeler.sheets.option.models.OptionSelection
+import dev.datlag.aniflow.SharedRes
import dev.datlag.aniflow.common.toComposeString
import dev.datlag.aniflow.settings.model.TitleLanguage as SettingsTitle
import dev.datlag.tooling.decompose.lifecycle.collectAsStateWithLifecycle
@@ -67,14 +69,14 @@ fun TitleSection(
contentDescription = null
)
Text(
- text = "Title Language"
+ text = stringResource(SharedRes.strings.title_language)
)
Spacer(modifier = Modifier.weight(1F))
IconButton(
onClick = { useCase.show() }
) {
Icon(
- imageVector = Icons.Default.ExpandMore,
+ imageVector = Icons.Rounded.ExpandMore,
contentDescription = null
)
}
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/AdultSection.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/AdultSection.kt
index ad9a44f..a8461a4 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/AdultSection.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/AdultSection.kt
@@ -4,6 +4,7 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBackIosNew
+import androidx.compose.material.icons.rounded.ArrowBackIosNew
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Icon
@@ -60,7 +61,7 @@ fun AdultSection(
) {
Icon(
modifier = Modifier.size(ButtonDefaults.IconSize),
- imageVector = Icons.Default.ArrowBackIosNew,
+ imageVector = Icons.Rounded.ArrowBackIosNew,
contentDescription = null
)
Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing))
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/CollapsingToolbar.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/CollapsingToolbar.kt
index 18e4e1e..d41d2ce 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/CollapsingToolbar.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/CollapsingToolbar.kt
@@ -15,6 +15,7 @@ import androidx.compose.material.icons.filled.Share
import androidx.compose.material.icons.rounded.ArrowBackIosNew
import androidx.compose.material.icons.rounded.Favorite
import androidx.compose.material.icons.rounded.FavoriteBorder
+import androidx.compose.material.icons.rounded.Share
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
@@ -210,7 +211,7 @@ fun CollapsingToolbar(
}
) {
Icon(
- imageVector = Icons.Default.Share,
+ imageVector = Icons.Rounded.Share,
contentDescription = null
)
}
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/DescriptionSection.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/DescriptionSection.kt
index c531649..fd54e0f 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/DescriptionSection.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/component/DescriptionSection.kt
@@ -3,9 +3,12 @@ package dev.datlag.aniflow.ui.navigation.screen.medium.component
import androidx.compose.animation.core.animateIntAsState
import androidx.compose.animation.core.tween
import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ExpandLess
import androidx.compose.material.icons.filled.ExpandMore
+import androidx.compose.material.icons.rounded.ExpandLess
+import androidx.compose.material.icons.rounded.ExpandMore
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
@@ -68,20 +71,20 @@ fun DescriptionSection(
animationSpec = tween()
)
- Text(
- modifier = Modifier.padding(horizontal = 16.dp).onClick {
- descriptionExpanded = !descriptionExpanded
- },
- text = (translatedDescription ?: description)!!.htmlToAnnotatedString(),
- maxLines = max(animatedLines, 1),
- softWrap = true,
- overflow = TextOverflow.Ellipsis,
- onTextLayout = { result ->
- if (!descriptionExpanded) {
- descriptionExpandable = result.hasVisualOverflow
+ SelectionContainer {
+ Text(
+ modifier = Modifier.padding(horizontal = 16.dp),
+ text = (translatedDescription ?: description)!!.htmlToAnnotatedString(),
+ maxLines = max(animatedLines, 1),
+ softWrap = true,
+ overflow = TextOverflow.Ellipsis,
+ onTextLayout = { result ->
+ if (!descriptionExpanded) {
+ descriptionExpandable = result.hasVisualOverflow
+ }
}
- }
- )
+ )
+ }
if (descriptionExpandable) {
IconButton(
modifier = Modifier.fillMaxWidth(),
@@ -90,9 +93,9 @@ fun DescriptionSection(
}
) {
val icon = if (descriptionExpanded) {
- Icons.Default.ExpandLess
+ Icons.Rounded.ExpandLess
} else {
- Icons.Default.ExpandMore
+ Icons.Rounded.ExpandMore
}
Icon(
diff --git a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/dialog/character/CharacterDialog.kt b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/dialog/character/CharacterDialog.kt
index f005460..7c8b93b 100644
--- a/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/dialog/character/CharacterDialog.kt
+++ b/composeApp/src/commonMain/kotlin/dev/datlag/aniflow/ui/navigation/screen/medium/dialog/character/CharacterDialog.kt
@@ -10,9 +10,7 @@ import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.*
-import androidx.compose.material.icons.rounded.ArrowBackIosNew
-import androidx.compose.material.icons.rounded.Favorite
-import androidx.compose.material.icons.rounded.FavoriteBorder
+import androidx.compose.material.icons.rounded.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
@@ -185,7 +183,7 @@ fun CharacterDialog(component: CharacterComponent) {
horizontalAlignment = Alignment.CenterHorizontally,
) {
Icon(
- imageVector = Icons.Filled.Bloodtype,
+ imageVector = Icons.Rounded.Bloodtype,
contentDescription = null
)
Text(
@@ -206,7 +204,7 @@ fun CharacterDialog(component: CharacterComponent) {
horizontalAlignment = Alignment.CenterHorizontally,
) {
Icon(
- imageVector = Icons.Filled.Man4,
+ imageVector = Icons.Rounded.Man4,
contentDescription = null
)
Text(
@@ -227,7 +225,7 @@ fun CharacterDialog(component: CharacterComponent) {
horizontalAlignment = Alignment.CenterHorizontally,
) {
Icon(
- imageVector = Icons.Filled.Cake,
+ imageVector = Icons.Rounded.Cake,
contentDescription = null
)
Text(
diff --git a/composeApp/src/commonMain/moko-resources/base/strings.xml b/composeApp/src/commonMain/moko-resources/base/strings.xml
index e1ab238..9651c3a 100644
--- a/composeApp/src/commonMain/moko-resources/base/strings.xml
+++ b/composeApp/src/commonMain/moko-resources/base/strings.xml
@@ -72,4 +72,10 @@
Repeating
Install
%dmin / Episode
+ Episode %d
+ Title Language
+ Character Language
+ Login
+ Logout
+ Open Links