Merge branch 'main' into zhong_1

This commit is contained in:
2025-11-18 10:08:08 +08:00
committed by GitHub
36 changed files with 216 additions and 201 deletions

View File

@@ -35,6 +35,7 @@ import com.aiosman.ravenow.LocalSharedTransitionScope
import com.aiosman.ravenow.ui.about.AboutScreen
import com.aiosman.ravenow.ui.account.AccountEditScreen2
import com.aiosman.ravenow.ui.account.AccountSetting
import com.aiosman.ravenow.ui.account.BlockedUsersScreen
import com.aiosman.ravenow.ui.account.MbtiSelectScreen
import com.aiosman.ravenow.ui.account.RemoveAccountScreen
import com.aiosman.ravenow.ui.account.ResetPasswordScreen
@@ -135,6 +136,7 @@ sealed class NavigationRoute(
data object ZodiacSelect : NavigationRoute("ZodiacSelect")
data object ScanQr : NavigationRoute("ScanQr")
data object AiPromptEdit : NavigationRoute("AiPromptEdit/{chatAIId}")
data object BlockedUsersScreen : NavigationRoute("BlockedUsersScreen")
}
@@ -439,6 +441,9 @@ fun NavigationController(
composable(route = NavigationRoute.ChangePasswordScreen.route) {
ChangePasswordScreen()
}
composable(route = NavigationRoute.BlockedUsersScreen.route) {
BlockedUsersScreen()
}
composable(route = NavigationRoute.RemoveAccountScreen.route) {
RemoveAccountScreen()
}

View File

@@ -161,9 +161,7 @@ fun AccountSetting() {
SecurityOptionItem(
iconRes = R.mipmap.icons_block,
label = stringResource(R.string.blocked_users),
onClick = {
// TODO: 导航到屏蔽用户页面
}
onClick = { navController.navigate(NavigationRoute.BlockedUsersScreen.route) }
)
SecurityOptionItem(

View File

@@ -0,0 +1,127 @@
package com.aiosman.ravenow.ui.account
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.aiosman.ravenow.LocalAppTheme
import com.aiosman.ravenow.LocalNavController
import com.aiosman.ravenow.R
import com.aiosman.ravenow.ui.composables.StatusBarSpacer
import com.aiosman.ravenow.ui.modifiers.noRippleClickable
private object BlockedUsersConstants {
const val BACK_BUTTON_SIZE = 36
const val BACK_BUTTON_ICON_SIZE = 24
const val BACK_BUTTON_START_PADDING = 19
const val HEADER_VERTICAL_PADDING = 16
const val TITLE_OFFSET_X = 19
const val TITLE_TEXT_SIZE = 17
}
@Composable
private fun CircularBackButton(
onClick: () -> Unit,
modifier: Modifier = Modifier
) {
val appColors = LocalAppTheme.current
Image(
painter = painterResource(id = R.drawable.rider_pro_back_icon),
contentDescription = "返回",
modifier = modifier
.size(BlockedUsersConstants.BACK_BUTTON_ICON_SIZE.dp)
.noRippleClickable { onClick() },
colorFilter = ColorFilter.tint(appColors.text)
)
}
/**
* 被屏蔽的用户界面
*/
@Composable
fun BlockedUsersScreen() {
val appColors = LocalAppTheme.current
val navController = LocalNavController.current
Column(
modifier = Modifier
.fillMaxSize()
.background(appColors.background),
) {
StatusBarSpacer()
// 顶部标题栏
Box(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = BlockedUsersConstants.HEADER_VERTICAL_PADDING.dp)
) {
Row(
modifier = Modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
CircularBackButton(
onClick = { navController.navigateUp() },
modifier = Modifier.padding(start = BlockedUsersConstants.BACK_BUTTON_START_PADDING.dp)
)
Spacer(modifier = Modifier.width(12.dp))
Text(
text = stringResource(R.string.blocked_users),
fontWeight = FontWeight.W800,
fontSize = BlockedUsersConstants.TITLE_TEXT_SIZE.sp,
color = appColors.text
)
}
}
// 缺省状态
Box(
modifier = Modifier
.fillMaxSize()
.padding(top = 149.dp),
contentAlignment = Alignment.TopCenter
) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxWidth()
) {
Image(
painter = painterResource(id = R.mipmap.frame_23),
contentDescription = null,
modifier = Modifier.size(181.dp, 153.dp)
)
Spacer(modifier = Modifier.size(9.dp))
Text(
text = stringResource(R.string.no_users_isolated_yet),
color = appColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
}
}
}
}

View File

@@ -124,27 +124,18 @@ fun CommentNoticeScreen() {
modifier = Modifier.fillMaxWidth()
) {
androidx.compose.foundation.Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.tietie_dark
else R.mipmap.invalid_name_11),
painter = painterResource(id = R.mipmap.invalid_name_5),
contentDescription = "No Comment",
modifier = Modifier
.size(width = 181.dp, height = 153.dp)
)
Spacer(modifier = Modifier.height(24.dp))
Spacer(modifier = Modifier.height(9.dp))
Text(
text = "等一位旅人~",
text = stringResource(R.string.no_one_pinged_yet),
color = AppColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600
)
Spacer(modifier = Modifier.size(8.dp))
Text(
text = "去发布动态,让更多人参与对话",
color = AppColors.text,
fontSize = 14.sp,
fontWeight = FontWeight.W400
)
}
}
} else {

View File

@@ -93,33 +93,29 @@ fun UnderlineTabItem(
label = "padding"
)
Column(
Box(
modifier = modifier
.noRippleClickable { onClick() },
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
contentAlignment = Alignment.Center
) {
Box(
// 文本层 - 始终居中,不受下划线影响
Text(
text = text,
fontSize = animatedFontSize.sp,
fontWeight = FontWeight.ExtraBold,
color = if (isSelected) AppColors.text else AppColors.text.copy(alpha = 0.6f),
textAlign = androidx.compose.ui.text.style.TextAlign.Center,
modifier = Modifier
.padding(horizontal = animatedPadding)
.padding(top = 13.dp, bottom = 0.dp),
contentAlignment = Alignment.BottomCenter
) {
Text(
text = text,
fontSize = animatedFontSize.sp,
fontWeight = FontWeight.ExtraBold,
color = if (isSelected) AppColors.text else AppColors.text.copy(alpha = 0.6f),
textAlign = androidx.compose.ui.text.style.TextAlign.Center
)
}
)
// 选中状态下显示图标
// 下划线层 - 固定在底部,不影响文本位置
if (isSelected) {
Box(
modifier = Modifier
.align(Alignment.BottomCenter)
.size(24.dp)
.offset(y = (-4).dp),
.offset(y = (15).dp),
contentAlignment = Alignment.Center
) {
Image(

View File

@@ -134,8 +134,8 @@ fun FavouriteListPage() {
) {
Image(
painter = painterResource(
id = if (com.aiosman.ravenow.AppState.darkMode) R.mipmap.invalid_dark
else R.mipmap.invalid_name_1),
id = if (com.aiosman.ravenow.AppState.darkMode) R.mipmap.empty_img
else R.mipmap.empty_img),
contentDescription = "No favourites",
modifier = Modifier.size(181.dp, 153.dp)
)

View File

@@ -125,15 +125,13 @@ fun FollowerListScreen(userId: Int) {
modifier = Modifier.fillMaxWidth()
) {
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.frame_4
else R.mipmap.invalid_name_8),
painter = painterResource(id = R.mipmap.frame_31),
contentDescription = null,
modifier = Modifier.size(181.dp, 153.dp)
)
Spacer(modifier = Modifier.size(9.dp)) // 调整间距为9dp
androidx.compose.material.Text(
text = stringResource(R.string.follower_empty_title),
text = stringResource(R.string.awaiting_traveler),
color = appColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600,
@@ -142,17 +140,6 @@ fun FollowerListScreen(userId: Int) {
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
Spacer(modifier = Modifier.size(8.dp))
androidx.compose.material.Text(
text = stringResource(R.string.follower_empty_subtitle),
color = appColors.text,
fontSize = 14.sp,
fontWeight = FontWeight.W400,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 3,
overflow = TextOverflow.Ellipsis
)
}
}
} else {

View File

@@ -115,16 +115,14 @@ fun FollowerNoticeScreen() {
modifier = Modifier.fillMaxWidth()
) {
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.frame_4
else R.mipmap.invalid_name_8),
painter = painterResource(id = R.mipmap.invalid_name_5),
contentDescription = "No Followers",
modifier = Modifier
.size(width = 181.dp, height = 153.dp)
)
Spacer(modifier = Modifier.height(if (AppState.darkMode) 9.dp else 24.dp))
Spacer(modifier = Modifier.height(9.dp))
androidx.compose.material.Text(
text = stringResource(R.string.follower_empty_title),
text = stringResource(R.string.no_one_pinged_yet),
color = AppColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600,
@@ -133,17 +131,6 @@ fun FollowerNoticeScreen() {
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
Spacer(modifier = Modifier.size(8.dp))
androidx.compose.material.Text(
text = stringResource(R.string.follower_empty_subtitle),
color = AppColors.text,
fontSize = 14.sp,
fontWeight = FontWeight.W400,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 3,
overflow = TextOverflow.Ellipsis
)
}
}
}else{

View File

@@ -127,15 +127,13 @@ fun FollowingListScreen(userId: Int) {
modifier = Modifier.fillMaxWidth()
) {
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.frame_3
else R.mipmap.invalid_name_9),
painter = painterResource(id = R.mipmap.frame_31),
contentDescription = null,
modifier = Modifier.size(181.dp, 153.dp)
)
Spacer(modifier = Modifier.size(9.dp)) // 调整间距为9dp
androidx.compose.material.Text(
text = stringResource(R.string.following_empty_title),
text = stringResource(R.string.awaiting_traveler),
color = appColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600,
@@ -144,17 +142,6 @@ fun FollowingListScreen(userId: Int) {
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
Spacer(modifier = Modifier.size(8.dp))
androidx.compose.material.Text(
text = stringResource(R.string.following_empty_subtitle),
color = appColors.secondaryText,
fontSize = 14.sp,
fontWeight = FontWeight.W400,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 3,
overflow = TextOverflow.Ellipsis
)
}
}
}else{

View File

@@ -48,6 +48,7 @@ import com.aiosman.ravenow.ui.composables.CustomAsyncImage
import com.aiosman.ravenow.ui.composables.rememberDebouncer
import com.aiosman.ravenow.ui.modifiers.noRippleClickable
import com.aiosman.ravenow.utils.NetworkUtils
import com.aiosman.ravenow.ui.network.ReloadButton
/**
* 智能体聊天列表页面
@@ -97,16 +98,15 @@ fun AgentChatListScreen() {
if (isNetworkAvailable) {
Spacer(modifier = Modifier.height(39.dp))
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.juhao_dark
else R.mipmap.invalid_name_5),
painter = painterResource(id = R.mipmap.invalid_name_3),
contentDescription = "null data",
modifier = Modifier
.size(width = 181.dp, height = 153.dp)
.width(181.dp)
.height(153.dp)
)
Spacer(modifier = Modifier.height(if (AppState.darkMode) 9.dp else 24.dp))
Spacer(modifier = Modifier.height(9.dp))
Text(
text = stringResource(R.string.agent_chat_empty_title),
text = stringResource(R.string.no_one_knocked_yet),
color = AppColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600,
@@ -115,16 +115,6 @@ fun AgentChatListScreen() {
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = stringResource(R.string.agent_chat_empty_subtitle),
color = AppColors.secondaryText,
fontSize = 14.sp,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 3,
overflow = TextOverflow.Ellipsis
)
}
else {
Spacer(modifier = Modifier.height(39.dp))

View File

@@ -42,6 +42,7 @@ import com.aiosman.ravenow.ui.composables.CustomAsyncImage
import com.aiosman.ravenow.ui.composables.rememberDebouncer
import com.aiosman.ravenow.ui.modifiers.noRippleClickable
import com.aiosman.ravenow.utils.NetworkUtils
import com.aiosman.ravenow.ui.network.ReloadButton
import androidx.compose.material.Button
import androidx.compose.material.ButtonDefaults
import androidx.compose.ui.text.font.FontFamily
@@ -227,16 +228,15 @@ fun AllChatListScreen() {
if (isNetworkAvailable) {
Spacer(modifier = Modifier.height(39.dp))
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.piao_dark
else R.mipmap.invalid_name_2),
painter = painterResource(id = R.mipmap.invalid_name_3),
contentDescription = "null data",
modifier = Modifier
.size(width = 181.dp, height = 153.dp)
.width(181.dp)
.height(153.dp)
)
Spacer(modifier = Modifier.height(if (AppState.darkMode) 9.dp else 24.dp))
Spacer(modifier = Modifier.height(9.dp))
Text(
text = stringResource(R.string.friend_chat_empty_title),
text = stringResource(R.string.no_one_knocked_yet),
color = AppColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600,
@@ -245,16 +245,6 @@ fun AllChatListScreen() {
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = stringResource(R.string.friend_chat_empty_subtitle),
color = AppColors.secondaryText,
fontSize = 14.sp,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 3,
overflow = TextOverflow.Ellipsis
)
} else {
Spacer(modifier = Modifier.height(39.dp))
Image(

View File

@@ -84,16 +84,15 @@ fun FriendChatListScreen() {
if (isNetworkAvailable) {
Spacer(modifier = Modifier.height(39.dp))
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.piao_dark
else R.mipmap.invalid_name_2),
painter = painterResource(id = R.mipmap.invalid_name_3),
contentDescription = "null data",
modifier = Modifier
.size(width = 181.dp, height = 153.dp)
.width(181.dp)
.height(153.dp)
)
Spacer(modifier = Modifier.height(if (AppState.darkMode) 9.dp else 24.dp))
Spacer(modifier = Modifier.height(9.dp))
Text(
text = stringResource(R.string.friend_chat_empty_title),
text = stringResource(R.string.no_one_knocked_yet),
color = AppColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600,
@@ -102,16 +101,6 @@ fun FriendChatListScreen() {
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = stringResource(R.string.friend_chat_empty_subtitle),
color = AppColors.secondaryText,
fontSize = 14.sp,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 3,
overflow = TextOverflow.Ellipsis
)
}else {
Spacer(modifier = Modifier.height(39.dp))
Image(

View File

@@ -35,6 +35,7 @@ import com.aiosman.ravenow.ui.composables.CustomAsyncImage
import com.aiosman.ravenow.ui.composables.rememberDebouncer
import com.aiosman.ravenow.ui.modifiers.noRippleClickable
import com.aiosman.ravenow.utils.NetworkUtils
import com.aiosman.ravenow.ui.network.ReloadButton
@OptIn(ExperimentalMaterialApi::class)
@Composable
@@ -77,16 +78,15 @@ fun GroupChatListScreen() {
if (isNetworkAvailable) {
Spacer(modifier = Modifier.height(39.dp))
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.fei_dark
else R.mipmap.invalid_name_12),
painter = painterResource(id = R.mipmap.invalid_name_3),
contentDescription = "null data",
modifier = Modifier
.size(width = 181.dp, height = 153.dp)
.width(181.dp)
.height(153.dp)
)
Spacer(modifier = Modifier.height(if (AppState.darkMode) 9.dp else 24.dp))
Spacer(modifier = Modifier.height(9.dp))
Text(
text = stringResource(R.string.group_chat_empty),
text = stringResource(R.string.no_one_knocked_yet),
color = AppColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600,
@@ -95,16 +95,6 @@ fun GroupChatListScreen() {
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = stringResource(R.string.group_chat_empty_join),
color = AppColors.secondaryText,
fontSize = 14.sp,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 3,
overflow = TextOverflow.Ellipsis
)
}else {
Spacer(modifier = Modifier.height(39.dp))
Image(

View File

@@ -692,7 +692,7 @@ fun TopNavigationBar(
if (backgroundAlpha >= 1f) Color.Black else Color.White
}
val cardBorderColor = if (AppState.darkMode) {
Color.White // 暗色模式下边框应为白色
Color.White.copy(alpha = 0.35f) // 暗色模式下使用半透明白色,避免整体变白
} else {
if (backgroundAlpha >= 1f) Color.Black else Color.White
}
@@ -747,8 +747,11 @@ fun TopNavigationBar(
val cardBackgroundColor = remember(backgroundAlpha) {
val smoothProgress = backgroundAlpha.coerceIn(0f, 1f)
if (AppState.darkMode) {
// 暗色模式:从半透明白色逐渐变为更不透明的白色
Color.White.copy(alpha = 0.52f + (0.48f * smoothProgress))
// 暗色模式:保持在半透明灰白区间,避免滚动到顶部后变纯白
val minAlpha = 0.18f
val maxAlpha = 0.35f
val alpha = minAlpha + (maxAlpha - minAlpha) * smoothProgress
Color.White.copy(alpha = alpha)
} else {
// 亮色模式:从半透明白色逐渐变为完全不透明的白色
Color.White.copy(alpha = 0.52f + (0.48f * smoothProgress))

View File

@@ -199,18 +199,16 @@ fun GalleryGrid(
horizontalAlignment = Alignment.CenterHorizontally
) {
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.shuihu_dark
else R.mipmap.invalid_name_7),
painter = painterResource(id = R.mipmap.l_empty_img),
contentDescription = "暂无图片",
modifier = Modifier
.size(width = 181.dp, height = 153.dp),
)
Spacer(modifier = Modifier.height(if(AppState.darkMode) 9.dp else 24.dp))
Spacer(modifier = Modifier.height(9.dp))
Text(
text = stringResource(R.string.your_story_not_started),
text = stringResource(R.string.cosmos_awaits),
fontSize = 16.sp,
color = AppColors.text,
fontWeight = FontWeight.W600,
@@ -219,19 +217,6 @@ fun GalleryGrid(
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = stringResource(R.string.publish_moment_greeting),
fontSize = 14.sp,
color = AppColors.secondaryText,
fontWeight = FontWeight.W400,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 3,
overflow = TextOverflow.Ellipsis
)
}
} else {
LazyVerticalGrid(

View File

@@ -136,7 +136,7 @@ fun GroupChatEmptyContent(
// 空状态文本
Text(
text = stringResource(R.string.empty_nothing),
text = stringResource(R.string.cosmos_awaits),
fontSize = 16.sp,
fontWeight = FontWeight.SemiBold,
color = AppColors.text,

View File

@@ -269,27 +269,24 @@ fun AgentEmptyContentWithSegments() {
Spacer(modifier = Modifier.height(8.dp))
// 空状态内容(使用智能体原本的图标和文字
// 空状态内容(与动态、群聊保持一致
Column(
modifier = Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally
) {
if (isNetworkAvailable) {
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.ai_dark
else R.mipmap.ai),
painter = painterResource(id = R.mipmap.l_empty_img),
contentDescription = "暂无Agent",
modifier = Modifier
.size(width = 181.dp, height = 153.dp)
.align(Alignment.CenterHorizontally),
)
// 根据是否为深色模式调整间距
Spacer(modifier = Modifier.height(if(AppState.darkMode) 9.dp else 24.dp))
Spacer(modifier = Modifier.height(9.dp))
Text(
text = stringResource(R.string.exclusive_ai_waiting),
text = stringResource(R.string.cosmos_awaits),
fontSize = 16.sp,
color = AppColors.text,
fontWeight = FontWeight.W600,
@@ -298,19 +295,6 @@ fun AgentEmptyContentWithSegments() {
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = stringResource(R.string.ai_companion_not_tool),
fontSize = 14.sp,
color = AppColors.secondaryText,
fontWeight = FontWeight.W400,
textAlign = TextAlign.Center,
modifier = Modifier.padding(horizontal = 24.dp),
maxLines = 3,
overflow = TextOverflow.Ellipsis
)
} else {
Image(
painter = painterResource(id = R.mipmap.invalid_name_10),

View File

@@ -122,27 +122,18 @@ fun LikeNoticeScreen() {
horizontalAlignment = Alignment.CenterHorizontally
) {
Image(
painter = painterResource(
id = if(AppState.darkMode) R.mipmap.sanqiu_dark
else R.mipmap.invalid_name_6),
painter = painterResource(id = R.mipmap.invalid_name_5),
contentDescription = "No Notice",
modifier = Modifier
.size(width = 181.dp, height = 153.dp)
)
Spacer(modifier = Modifier.height(if (AppState.darkMode) 9.dp else 24.dp))
Spacer(modifier = Modifier.height(9.dp))
Text(
text = "你的赞在赶来的路上",
text = stringResource(R.string.no_one_pinged_yet),
color = AppColors.text,
fontSize = 16.sp,
fontWeight = FontWeight.W600,
)
Spacer(modifier = Modifier.size(8.dp))
Text(
text = "智能体和朋友看到后,说不定马上就来~",
color = AppColors.text,
fontSize = 14.sp,
fontWeight = FontWeight.W400
)
}
}
}else{

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@@ -14,7 +14,7 @@
<string name="followers_upper">フォロワー</string>
<string name="posts">投稿</string>
<string name="favourites_upper">お気に入り</string>
<string name="favourites_null">あれ、何もない。..</string>
<string name="favourites_null">ここはまだ空っぽだよ</string>
<string name="notifications_upper">通知</string>
<string name="following_upper">フォロー中</string>
<string name="unfollow_upper">フォロー解除</string>
@@ -392,6 +392,11 @@
<string name="explore">探検する</string>
<string name="reply_to_user">返信@%1$s</string>
<string name="error_select_at_least_one_image">少なくとも1枚の画像を選択してください。</string>
<string name="awaiting_traveler">旅人を待ってるよ</string>
<string name="no_one_pinged_yet">まだ誰からも声がかからないよ</string>
<string name="cosmos_awaits">小さな宇宙は、あなた待ち。</string>
<string name="no_one_knocked_yet">まだ誰もノックしてないよ</string>
<string name="no_users_isolated_yet">まだユーザーが隔離されていません</string>
<!-- Create Group Chat Confirm -->
<string name="create_group_chat_confirm_title">グループチャットを作成</string>

View File

@@ -162,7 +162,7 @@
<string name="chat_all">全部</string>
<string name="public_label">公开</string>
<string name="private_label">私有</string>
<string name="favourites_null">咦,什么都没有...</string>
<string name="favourites_null">这里还空着呢~</string>
<string name="agent_chat_list_title">智能体聊天</string>
<string name="agent_chat_empty_title">AI 在等你的开场白</string>
@@ -408,4 +408,9 @@
<string name="spend_room_memory">房间记忆添加</string>
<string name="spend_chat_background">自定义聊天背景</string>
<string name="spend_schedule_event">日程事件解锁</string>
<string name="awaiting_traveler">等一位旅人~</string>
<string name="no_one_pinged_yet">还没有人来打扰你</string>
<string name="cosmos_awaits">小宇宙等你探索。</string>
<string name="no_one_knocked_yet">还没有人敲门</string>
<string name="no_users_isolated_yet">还没有用户被隔离</string>
</resources>

View File

@@ -13,7 +13,7 @@
<string name="followers_upper">FOLLOWERS</string>
<string name="posts">Posts</string>
<string name="favourites_upper">FAVOURITES</string>
<string name="favourites_null">Well,nothing </string>
<string name="favourites_null">Its still empty here </string>
<string name="notifications_upper">NOTIFICATIONS</string>
<string name="following_upper">FOLLOWING</string>
<string name="unfollow_upper">UNFOLLOW</string>
@@ -403,4 +403,9 @@
<string name="spend_room_memory">Room Memory Addition</string>
<string name="spend_chat_background">Custom Chat Background</string>
<string name="spend_schedule_event">Schedule Event Unlock</string>
<string name="awaiting_traveler">Awaiting a traveler</string>
<string name="no_one_pinged_yet">No one has pinged you yet</string>
<string name="cosmos_awaits">Your cosmos awaits.</string>
<string name="no_one_knocked_yet">No one\'s knocked yet</string>
<string name="no_users_isolated_yet">No users have been isolated yet</string>
</resources>