Person.kt 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package io.nexilis.alpha.ui.components
  2. import androidx.compose.foundation.background
  3. import androidx.compose.foundation.layout.Box
  4. import androidx.compose.foundation.layout.Column
  5. import androidx.compose.foundation.layout.size
  6. import androidx.compose.foundation.shape.CircleShape
  7. import androidx.compose.material.icons.Icons
  8. import androidx.compose.material.icons.filled.Person
  9. import androidx.compose.material.icons.filled.Verified
  10. import androidx.compose.material3.Icon
  11. import androidx.compose.material3.MaterialTheme
  12. import androidx.compose.runtime.Composable
  13. import androidx.compose.ui.Alignment
  14. import androidx.compose.ui.Modifier
  15. import androidx.compose.ui.draw.clip
  16. import androidx.compose.ui.graphics.Color
  17. import androidx.compose.ui.graphics.vector.rememberVectorPainter
  18. import androidx.compose.ui.layout.ContentScale
  19. import androidx.compose.ui.platform.LocalContext
  20. import androidx.compose.ui.unit.dp
  21. import coil.compose.AsyncImage
  22. import coil.request.ImageRequest
  23. import io.nexilis.service.data.entities.Buddy
  24. @Composable
  25. fun Person(buddy: Buddy) {
  26. Column {
  27. Box(
  28. Modifier.align(Alignment.CenterHorizontally),
  29. contentAlignment = Alignment.BottomEnd
  30. ) {
  31. AsyncImage(
  32. model = ImageRequest.Builder(LocalContext.current)
  33. .data("https://digixplatform.com/filepalio/image/${buddy.image_id}")
  34. .addHeader("Cookie", "PHPSESSID=123;MOBILE=123")
  35. .crossfade(true)
  36. .build(),
  37. placeholder = rememberVectorPainter(image = Icons.Default.Person),
  38. contentDescription = "",
  39. contentScale = ContentScale.Crop,
  40. modifier = Modifier
  41. .size(48.dp)
  42. .clip(CircleShape)
  43. .background(Color.LightGray),
  44. error = rememberVectorPainter(image = Icons.Default.Person),
  45. )
  46. if (buddy.official_account != "0") {
  47. val color: Color = when (buddy.official_account) {
  48. "1", "3" -> {
  49. Color(0xFF4c87ef)
  50. }
  51. "2" -> {
  52. Color(0xFF0cff00)
  53. }
  54. "5" -> {
  55. Color(0xFFE000FF)
  56. }
  57. else -> {
  58. Color.Transparent
  59. }
  60. }
  61. Icon(
  62. imageVector = Icons.Default.Verified,
  63. contentDescription = "",
  64. modifier = Modifier
  65. .size(16.dp)
  66. .clip(CircleShape)
  67. .background(color = MaterialTheme.colorScheme.surface),
  68. tint = color
  69. )
  70. }
  71. if (buddy.user_type != "0") {
  72. val color: Color = when (buddy.user_type) {
  73. "23" -> {
  74. Color(0xFFFF0000)
  75. }
  76. "24" -> {
  77. Color(0xFFF89E00)
  78. }
  79. else -> {
  80. Color.Transparent
  81. }
  82. }
  83. Icon(
  84. imageVector = Icons.Default.Verified,
  85. contentDescription = "",
  86. modifier = Modifier
  87. .size(16.dp)
  88. .clip(CircleShape)
  89. .background(color = MaterialTheme.colorScheme.surface),
  90. tint = color
  91. )
  92. }
  93. }
  94. }
  95. }