mirror of
https://github.com/mihonapp/mihon.git
synced 2024-11-07 20:31:02 -05:00
Use Compose's existing method to get plural string (#8194)
This commit is contained in:
parent
26a42ba9c0
commit
02b3718aa1
4 changed files with 9 additions and 40 deletions
|
@ -14,9 +14,9 @@ import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.compose.ui.res.pluralStringResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import eu.kanade.presentation.util.quantityStringResource
|
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ fun ChapterHeader(
|
||||||
text = if (chapterCount == null) {
|
text = if (chapterCount == null) {
|
||||||
stringResource(R.string.chapters)
|
stringResource(R.string.chapters)
|
||||||
} else {
|
} else {
|
||||||
quantityStringResource(id = R.plurals.manga_num_chapters, quantity = chapterCount)
|
pluralStringResource(id = R.plurals.manga_num_chapters, count = chapterCount, chapterCount)
|
||||||
},
|
},
|
||||||
style = MaterialTheme.typography.titleMedium,
|
style = MaterialTheme.typography.titleMedium,
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
|
|
|
@ -63,6 +63,7 @@ import androidx.compose.ui.layout.ContentScale
|
||||||
import androidx.compose.ui.layout.SubcomposeLayout
|
import androidx.compose.ui.layout.SubcomposeLayout
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalDensity
|
import androidx.compose.ui.platform.LocalDensity
|
||||||
|
import androidx.compose.ui.res.pluralStringResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
|
@ -76,7 +77,6 @@ import eu.kanade.domain.manga.model.Manga
|
||||||
import eu.kanade.presentation.components.MangaCover
|
import eu.kanade.presentation.components.MangaCover
|
||||||
import eu.kanade.presentation.components.TextButton
|
import eu.kanade.presentation.components.TextButton
|
||||||
import eu.kanade.presentation.util.clickableNoIndication
|
import eu.kanade.presentation.util.clickableNoIndication
|
||||||
import eu.kanade.presentation.util.quantityStringResource
|
|
||||||
import eu.kanade.presentation.util.secondaryItemAlpha
|
import eu.kanade.presentation.util.secondaryItemAlpha
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.source.model.SManga
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
|
@ -184,7 +184,7 @@ fun MangaActionRow(
|
||||||
title = if (trackingCount == 0) {
|
title = if (trackingCount == 0) {
|
||||||
stringResource(R.string.manga_tracking_tab)
|
stringResource(R.string.manga_tracking_tab)
|
||||||
} else {
|
} else {
|
||||||
quantityStringResource(id = R.plurals.num_trackers, quantity = trackingCount, trackingCount)
|
pluralStringResource(id = R.plurals.num_trackers, count = trackingCount, trackingCount)
|
||||||
},
|
},
|
||||||
icon = if (trackingCount == 0) Icons.Default.Sync else Icons.Default.Done,
|
icon = if (trackingCount == 0) Icons.Default.Sync else Icons.Default.Done,
|
||||||
color = if (trackingCount == 0) defaultActionButtonColor else MaterialTheme.colorScheme.primary,
|
color = if (trackingCount == 0) defaultActionButtonColor else MaterialTheme.colorScheme.primary,
|
||||||
|
|
|
@ -16,13 +16,13 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
||||||
import androidx.compose.ui.platform.LocalUriHandler
|
import androidx.compose.ui.platform.LocalUriHandler
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
|
import androidx.compose.ui.res.pluralStringResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import eu.kanade.presentation.components.AppStateBanners
|
import eu.kanade.presentation.components.AppStateBanners
|
||||||
import eu.kanade.presentation.components.Divider
|
import eu.kanade.presentation.components.Divider
|
||||||
import eu.kanade.presentation.components.PreferenceRow
|
import eu.kanade.presentation.components.PreferenceRow
|
||||||
import eu.kanade.presentation.components.ScrollbarLazyColumn
|
import eu.kanade.presentation.components.ScrollbarLazyColumn
|
||||||
import eu.kanade.presentation.components.SwitchPreference
|
import eu.kanade.presentation.components.SwitchPreference
|
||||||
import eu.kanade.presentation.util.quantityStringResource
|
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.ui.more.DownloadQueueState
|
import eu.kanade.tachiyomi.ui.more.DownloadQueueState
|
||||||
import eu.kanade.tachiyomi.ui.more.MoreController
|
import eu.kanade.tachiyomi.ui.more.MoreController
|
||||||
|
@ -86,9 +86,9 @@ fun MoreScreen(
|
||||||
stringResource(R.string.paused)
|
stringResource(R.string.paused)
|
||||||
} else {
|
} else {
|
||||||
"${stringResource(R.string.paused)} • ${
|
"${stringResource(R.string.paused)} • ${
|
||||||
quantityStringResource(
|
pluralStringResource(
|
||||||
R.plurals.download_queue_summary,
|
id = R.plurals.download_queue_summary,
|
||||||
pending,
|
count = pending,
|
||||||
pending,
|
pending,
|
||||||
)
|
)
|
||||||
}"
|
}"
|
||||||
|
@ -96,7 +96,7 @@ fun MoreScreen(
|
||||||
}
|
}
|
||||||
is DownloadQueueState.Downloading -> {
|
is DownloadQueueState.Downloading -> {
|
||||||
val pending = (downloadQueueState as DownloadQueueState.Downloading).pending
|
val pending = (downloadQueueState as DownloadQueueState.Downloading).pending
|
||||||
quantityStringResource(R.plurals.download_queue_summary, pending, pending)
|
pluralStringResource(id = R.plurals.download_queue_summary, count = pending, pending)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
painter = rememberVectorPainter(Icons.Outlined.GetApp),
|
painter = rememberVectorPainter(Icons.Outlined.GetApp),
|
||||||
|
|
|
@ -2,9 +2,7 @@ package eu.kanade.presentation.util
|
||||||
|
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.annotation.PluralsRes
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.ReadOnlyComposable
|
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.graphics.asImageBitmap
|
import androidx.compose.ui.graphics.asImageBitmap
|
||||||
import androidx.compose.ui.graphics.painter.BitmapPainter
|
import androidx.compose.ui.graphics.painter.BitmapPainter
|
||||||
|
@ -12,35 +10,6 @@ import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.graphics.drawable.toBitmap
|
import androidx.core.graphics.drawable.toBitmap
|
||||||
|
|
||||||
/**
|
|
||||||
* Load a quantity string resource.
|
|
||||||
*
|
|
||||||
* @param id the resource identifier
|
|
||||||
* @param quantity The number used to get the string for the current language's plural rules.
|
|
||||||
* @return the string data associated with the resource
|
|
||||||
*/
|
|
||||||
@Composable
|
|
||||||
@ReadOnlyComposable
|
|
||||||
fun quantityStringResource(@PluralsRes id: Int, quantity: Int): String {
|
|
||||||
val context = LocalContext.current
|
|
||||||
return context.resources.getQuantityString(id, quantity, quantity)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load a quantity string resource with formatting.
|
|
||||||
*
|
|
||||||
* @param id the resource identifier
|
|
||||||
* @param quantity The number used to get the string for the current language's plural rules.
|
|
||||||
* @param formatArgs the format arguments
|
|
||||||
* @return the string data associated with the resource
|
|
||||||
*/
|
|
||||||
@Composable
|
|
||||||
@ReadOnlyComposable
|
|
||||||
fun quantityStringResource(@PluralsRes id: Int, quantity: Int, vararg formatArgs: Any): String {
|
|
||||||
val context = LocalContext.current
|
|
||||||
return context.resources.getQuantityString(id, quantity, *formatArgs)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a BitmapPainter from an drawable resource.
|
* Create a BitmapPainter from an drawable resource.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue