feat:增加大佬铭牌

This commit is contained in:
amos
2025-12-30 15:43:41 +08:00
parent 18185e69b0
commit 87dc78ad20
2 changed files with 95 additions and 5 deletions

View File

@@ -13,11 +13,11 @@ android {
applicationId = "com.memory.app"
minSdk = 26
targetSdk = 35
versionCode = 33
versionName = "1.4.9"
versionCode = 34
versionName = "1.5.0"
buildConfigField("String", "API_BASE_URL", "\"https://x.amos.us.kg/api/\"")
buildConfigField("int", "VERSION_CODE", "33")
buildConfigField("int", "VERSION_CODE", "34")
}
signingConfigs {

View File

@@ -134,9 +134,13 @@ fun PostCard(
)
// 超管/认证徽章
Spacer(modifier = Modifier.width(4.dp))
val isGaLao = post.user?.username == "zhanghansen"
if (isSuperAdmin) {
// 超管专属徽章 - 彩虹渐变盾牌
RainbowShieldBadge(size = 18.dp)
} else if (isGaLao) {
// 尬佬专属徽章 - 小丑
ClownBadge(size = 18.dp)
} else {
Icon(
imageVector = Icons.Filled.Verified,
@@ -509,6 +513,7 @@ fun UserInfoDialog(
userInfo != null -> {
val info = userInfo!!
val isSuperAdmin = info.user.isSuperAdmin
val isGaLao = info.user.username == "zhanghansen"
Column(modifier = Modifier.fillMaxWidth()) {
// 关闭按钮
@@ -580,7 +585,7 @@ fun UserInfoDialog(
fontSize = 18.sp,
color = MaterialTheme.colorScheme.onSurface
)
if (!isSuperAdmin) {
if (!isSuperAdmin && !isGaLao) {
Spacer(modifier = Modifier.width(6.dp))
Icon(
imageVector = Icons.Filled.Verified,
@@ -600,7 +605,20 @@ fun UserInfoDialog(
) {
RainbowShieldBadge(size = 18.dp)
Spacer(modifier = Modifier.width(4.dp))
RainbowShimmerText(text = "超级管理员", fontSize = 12.sp)
RainbowShimmerText(text = "九五至尊", fontSize = 12.sp)
}
}
// 尬佬标识单独一行
if (isGaLao) {
Spacer(modifier = Modifier.height(6.dp))
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.Center
) {
ClownBadge(size = 18.dp)
Spacer(modifier = Modifier.width(4.dp))
GaLaoPulseText(text = "尬佬", fontSize = 12.sp)
}
}
@@ -867,6 +885,78 @@ fun RainbowShimmerText(
)
}
// 小丑徽章 - 用于 zhanghansen 用户
@Composable
fun ClownBadge(
size: androidx.compose.ui.unit.Dp = 18.dp,
modifier: Modifier = Modifier
) {
Text(
text = "🤡",
fontSize = (size.value * 0.9f).sp,
modifier = modifier
)
}
// 尬佬脉冲文字组件 - 橙色到金黄色渐变 + 呼吸脉冲效果
@Composable
fun GaLaoPulseText(
text: String,
fontSize: androidx.compose.ui.unit.TextUnit = 12.sp,
modifier: Modifier = Modifier
) {
// 橙色到金黄色渐变
val gaLaoColors = listOf(
Color(0xFFFF9500), // 橙色
Color(0xFFFFCC00), // 金黄色
Color(0xFFFF9500), // 橙色 (循环)
)
// 呼吸脉冲动画 - 比彩虹低调
val infiniteTransition = rememberInfiniteTransition(label = "gaLaoPulse")
val pulseAlpha by infiniteTransition.animateFloat(
initialValue = 0.7f,
targetValue = 1f,
animationSpec = infiniteRepeatable(
animation = tween(durationMillis = 1500, easing = LinearEasing),
repeatMode = androidx.compose.animation.core.RepeatMode.Reverse
),
label = "pulseAlpha"
)
val pulseScale by infiniteTransition.animateFloat(
initialValue = 1f,
targetValue = 1.05f,
animationSpec = infiniteRepeatable(
animation = tween(durationMillis = 1500, easing = LinearEasing),
repeatMode = androidx.compose.animation.core.RepeatMode.Reverse
),
label = "pulseScale"
)
// 渐变画刷
val gradientBrush = Brush.linearGradient(
colors = gaLaoColors,
start = Offset(0f, 0f),
end = Offset(100f, 0f)
)
Text(
text = text,
fontSize = fontSize,
fontWeight = FontWeight.Bold,
style = LocalTextStyle.current.copy(
brush = gradientBrush
),
modifier = modifier
.graphicsLayer(
alpha = pulseAlpha,
scaleX = pulseScale,
scaleY = pulseScale
)
)
}
@Composable
fun EditPostDialog(
post: Post,