LibraryBadges.kt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package eu.kanade.presentation.library.components
  2. import androidx.compose.foundation.layout.Column
  3. import androidx.compose.material.icons.Icons
  4. import androidx.compose.material.icons.outlined.Folder
  5. import androidx.compose.material3.MaterialTheme
  6. import androidx.compose.runtime.Composable
  7. import androidx.compose.ui.tooling.preview.PreviewLightDark
  8. import eu.kanade.presentation.theme.TachiyomiPreviewTheme
  9. import tachiyomi.presentation.core.components.Badge
  10. @Composable
  11. internal fun DownloadsBadge(count: Long) {
  12. if (count > 0) {
  13. Badge(
  14. text = "$count",
  15. color = MaterialTheme.colorScheme.tertiary,
  16. textColor = MaterialTheme.colorScheme.onTertiary,
  17. )
  18. }
  19. }
  20. @Composable
  21. internal fun UnreadBadge(count: Long) {
  22. if (count > 0) {
  23. Badge(text = "$count")
  24. }
  25. }
  26. @Composable
  27. internal fun LanguageBadge(
  28. isLocal: Boolean,
  29. sourceLanguage: String,
  30. ) {
  31. if (isLocal) {
  32. Badge(
  33. imageVector = Icons.Outlined.Folder,
  34. color = MaterialTheme.colorScheme.tertiary,
  35. iconColor = MaterialTheme.colorScheme.onTertiary,
  36. )
  37. } else if (sourceLanguage.isNotEmpty()) {
  38. Badge(
  39. text = sourceLanguage.uppercase(),
  40. color = MaterialTheme.colorScheme.tertiary,
  41. textColor = MaterialTheme.colorScheme.onTertiary,
  42. )
  43. }
  44. }
  45. @PreviewLightDark
  46. @Composable
  47. private fun BadgePreview() {
  48. TachiyomiPreviewTheme {
  49. Column {
  50. DownloadsBadge(count = 10)
  51. UnreadBadge(count = 10)
  52. LanguageBadge(isLocal = true, sourceLanguage = "EN")
  53. LanguageBadge(isLocal = false, sourceLanguage = "EN")
  54. }
  55. }
  56. }