diff --git a/app/src/main/java/com/aiosman/ravenow/ui/about/AboutScreen.kt b/app/src/main/java/com/aiosman/ravenow/ui/about/AboutScreen.kt index 59e50f5..850d704 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/about/AboutScreen.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/about/AboutScreen.kt @@ -2,6 +2,7 @@ package com.aiosman.ravenow.ui.about import androidx.compose.foundation.Image import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -40,22 +41,21 @@ fun AboutScreen() { modifier = Modifier.padding(horizontal = 24.dp, vertical = 16.dp) ) { NoticeScreenHeader( - title = stringResource(R.string.about_rave_now), + title = stringResource(R.string.about_paipai), moreIcon = false ) } Column( modifier = Modifier .weight(1f) - .fillMaxWidth() - .padding(start = 24.dp), - horizontalAlignment = Alignment.CenterHorizontally + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center ) { - Spacer(modifier = Modifier.height(48.dp)) - // app icon + // app icondww Box { Image( - painter = painterResource(id = R.mipmap.rider_pro_color_logo_next), + painter = painterResource(id = R.mipmap.invalid_name), contentDescription = "app icon", modifier = Modifier.size(80.dp) ) @@ -63,7 +63,7 @@ fun AboutScreen() { Spacer(modifier = Modifier.height(24.dp)) // app name Text( - text = "Rave Now".uppercase(), + text = stringResource(R.string.paipai), fontSize = 24.sp, color = appColors.text, fontWeight = FontWeight.ExtraBold diff --git a/app/src/main/java/com/aiosman/ravenow/ui/comment/notice/CommentNotice.kt b/app/src/main/java/com/aiosman/ravenow/ui/comment/notice/CommentNotice.kt index 656f697..35b1c17 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/comment/notice/CommentNotice.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/comment/notice/CommentNotice.kt @@ -50,7 +50,7 @@ import kotlinx.coroutines.launch import com.aiosman.ravenow.utils.NetworkUtils import com.aiosman.ravenow.ui.network.ReloadButton @Composable -fun CommentNoticeScreen() { +fun CommentNoticeScreen(includeStatusBarPadding: Boolean = true){ val viewModel = viewModel( key = "CommentNotice", factory = object : ViewModelProvider.Factory { @@ -252,7 +252,9 @@ fun CommentNoticeItem( text = commentItem.name, fontSize = 18.sp, modifier = Modifier, - color = AppColors.text + color = AppColors.text, + maxLines = 1, + overflow = TextOverflow.Ellipsis ) Spacer(modifier = Modifier.height(4.dp)) Row { diff --git a/app/src/main/java/com/aiosman/ravenow/ui/composables/StatusBarMask.kt b/app/src/main/java/com/aiosman/ravenow/ui/composables/StatusBarMask.kt index a8f007b..96067f0 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/composables/StatusBarMask.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/composables/StatusBarMask.kt @@ -36,6 +36,7 @@ fun StatusBarMaskLayout( modifier: Modifier = Modifier, darkIcons: Boolean = true, useNavigationBarMask: Boolean = true, + includeStatusBarPadding: Boolean = true, maskBoxBackgroundColor: Color = Color.Transparent, content: @Composable ColumnScope.() -> Unit ) { @@ -50,13 +51,13 @@ fun StatusBarMaskLayout( Column( modifier = modifier.fillMaxSize() ) { - Box( - modifier = Modifier - .height(paddingValues.calculateTopPadding()) - .fillMaxWidth() - .background(maskBoxBackgroundColor) - ) { - + if (includeStatusBarPadding) { + Box( + modifier = Modifier + .height(paddingValues.calculateTopPadding()) + .fillMaxWidth() + .background(maskBoxBackgroundColor) + ) } content() if (navigationBarPaddings > 24.dp && useNavigationBarMask) { diff --git a/app/src/main/java/com/aiosman/ravenow/ui/follower/FollowerNotice.kt b/app/src/main/java/com/aiosman/ravenow/ui/follower/FollowerNotice.kt index 4c7dee9..5af260e 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/follower/FollowerNotice.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/follower/FollowerNotice.kt @@ -21,6 +21,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -48,13 +49,14 @@ import com.aiosman.ravenow.utils.NetworkUtils * 关注消息列表 */ @Composable -fun FollowerNoticeScreen() { +fun FollowerNoticeScreen(includeStatusBarPadding: Boolean = true) { val scope = rememberCoroutineScope() val AppColors = LocalAppTheme.current StatusBarMaskLayout( modifier = Modifier.background(color = AppColors.background).padding(horizontal = 16.dp), darkIcons = !AppState.darkMode, - maskBoxBackgroundColor = AppColors.background + maskBoxBackgroundColor = AppColors.background, + includeStatusBarPadding = includeStatusBarPadding ) { val model = FollowerNoticeViewModel var dataFlow = model.followerItemsFlow @@ -199,7 +201,14 @@ fun FollowItem( Column( modifier = Modifier.weight(1f) ) { - Text(nickname, fontWeight = FontWeight.Bold, fontSize = 16.sp, color = AppColors.text) + Text( + text = nickname, + fontWeight = FontWeight.Bold, + fontSize = 16.sp, + color = AppColors.text, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) } if (!isFollowing && userId != AppState.UserId) { FollowButton( diff --git a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/search/SearchScreen.kt b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/search/SearchScreen.kt index aca469e..a140e34 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/search/SearchScreen.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/search/SearchScreen.kt @@ -415,64 +415,17 @@ fun MomentResultTab() { .background(AppColors.background) ) { if (moments.itemCount == 0 && model.showResult) { - Column( + val isNetworkAvailable = NetworkUtils.isNetworkAvailable(context) + SearchPlaceholderContent( modifier = Modifier .fillMaxSize() .padding(16.dp), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.Center - ) { - val isNetworkAvailable = NetworkUtils.isNetworkAvailable(context) - - if (isNetworkAvailable) { - androidx.compose.foundation.Image( - painter = painterResource( - id = if(AppState.darkMode) R.mipmap.syss_yh_qs_as_img - else R.mipmap.invalid_name_1), - contentDescription = "No Comment", - modifier = Modifier.size(140.dp) - ) - Text( - text = "咦,什么都没找到...", - color = LocalAppTheme.current.text, - fontSize = 16.sp, - fontWeight = FontWeight.W600 - ) - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = "换个关键词试试吧,也许会有新发现!", - color = LocalAppTheme.current.secondaryText, - fontSize = 14.sp, - fontWeight = FontWeight.W400 - ) - } else { - androidx.compose.foundation.Image( - painter = painterResource(id = R.mipmap.invalid_name_10), - contentDescription = "network error", - modifier = Modifier.size(140.dp) - ) - Text( - text = stringResource(R.string.friend_chat_no_network_title), - color = LocalAppTheme.current.text, - fontSize = 16.sp, - fontWeight = FontWeight.W600 - ) - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = stringResource(R.string.friend_chat_no_network_subtitle), - color = LocalAppTheme.current.secondaryText, - fontSize = 14.sp, - fontWeight = FontWeight.W400 - ) - Spacer(modifier = Modifier.size(16.dp)) - ReloadButton( - onClick = { - SearchViewModel.ResetModel() - SearchViewModel.search() - } - ) + isNetworkAvailable = isNetworkAvailable, + onReload = { + SearchViewModel.ResetModel() + SearchViewModel.search() } - } + ) } else { LazyColumn( modifier = Modifier.fillMaxSize(), @@ -566,64 +519,17 @@ fun UserResultTab() { modifier = Modifier.fillMaxSize() ) { if (users.itemCount == 0 && model.showResult) { - Column( + val isNetworkAvailable = NetworkUtils.isNetworkAvailable(context) + SearchPlaceholderContent( modifier = Modifier .fillMaxSize() .padding(16.dp), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.Center - ) { - val isNetworkAvailable = NetworkUtils.isNetworkAvailable(context) - - if (isNetworkAvailable) { - androidx.compose.foundation.Image( - painter = painterResource( - id = if(AppState.darkMode) R.mipmap.syss_yh_qs_as_img - else R.mipmap.invalid_name_1), - contentDescription = "No Comment", - modifier = Modifier.size(140.dp) - ) - Text( - text = "咦,什么都没找到...", - color = LocalAppTheme.current.text, - fontSize = 16.sp, - fontWeight = FontWeight.W600 - ) - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = "换个关键词试试吧,也许会有新发现!", - color = LocalAppTheme.current.secondaryText, - fontSize = 14.sp, - fontWeight = FontWeight.W400 - ) - } else { - androidx.compose.foundation.Image( - painter = painterResource(id = R.mipmap.invalid_name_10), - contentDescription = "network error", - modifier = Modifier.size(140.dp) - ) - Text( - text = stringResource(R.string.friend_chat_no_network_title), - color = LocalAppTheme.current.text, - fontSize = 16.sp, - fontWeight = FontWeight.W600 - ) - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = stringResource(R.string.friend_chat_no_network_subtitle), - color = LocalAppTheme.current.secondaryText, - fontSize = 14.sp, - fontWeight = FontWeight.W400 - ) - Spacer(modifier = Modifier.size(16.dp)) - ReloadButton( - onClick = { - SearchViewModel.ResetModel() - SearchViewModel.search() - } - ) + isNetworkAvailable = isNetworkAvailable, + onReload = { + SearchViewModel.ResetModel() + SearchViewModel.search() } - } + ) } else { LazyColumn( modifier = Modifier.fillMaxSize(), @@ -734,64 +640,17 @@ fun AiResultTab() { .background(AppColors.background) ) { if (agents.itemCount == 0 && model.showResult) { - Column( + val isNetworkAvailable = NetworkUtils.isNetworkAvailable(context) + SearchPlaceholderContent( modifier = Modifier .fillMaxSize() .padding(16.dp), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.Center - ) { - val isNetworkAvailable = NetworkUtils.isNetworkAvailable(context) - if (isNetworkAvailable) { - androidx.compose.foundation.Image( - painter = painterResource( - id = if (AppState.darkMode) R.mipmap.syss_yh_qs_as_img - else R.mipmap.invalid_name_1 - ), - contentDescription = "No Result", - modifier = Modifier.size(140.dp) - ) - Text( - text = "咦,什么都没找到...", - color = LocalAppTheme.current.text, - fontSize = 16.sp, - fontWeight = FontWeight.W600 - ) - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = "换个关键词试试吧,也许会有新发现!", - color = LocalAppTheme.current.secondaryText, - fontSize = 14.sp, - fontWeight = FontWeight.W400 - ) - } else { - androidx.compose.foundation.Image( - painter = painterResource(id = R.mipmap.invalid_name_10), - contentDescription = "network error", - modifier = Modifier.size(140.dp) - ) - Text( - text = stringResource(R.string.friend_chat_no_network_title), - color = LocalAppTheme.current.text, - fontSize = 16.sp, - fontWeight = FontWeight.W600 - ) - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = stringResource(R.string.friend_chat_no_network_subtitle), - color = LocalAppTheme.current.secondaryText, - fontSize = 14.sp, - fontWeight = FontWeight.W400 - ) - Spacer(modifier = Modifier.size(16.dp)) - ReloadButton( - onClick = { - SearchViewModel.ResetModel() - SearchViewModel.search() - } - ) + isNetworkAvailable = isNetworkAvailable, + onReload = { + SearchViewModel.ResetModel() + SearchViewModel.search() } - } + ) } else { LazyColumn( modifier = Modifier.fillMaxSize(), @@ -863,65 +722,17 @@ fun RoomResultTab() { .background(AppColors.background) ) { if (rooms.itemCount == 0 && model.showResult) { - Column( + val isNetworkAvailable = NetworkUtils.isNetworkAvailable(context) + SearchPlaceholderContent( modifier = Modifier .fillMaxSize() .padding(16.dp), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.Center - ) { - val isNetworkAvailable = NetworkUtils.isNetworkAvailable(context) - - if (isNetworkAvailable) { - androidx.compose.foundation.Image( - painter = painterResource( - id = if (AppState.darkMode) R.mipmap.syss_yh_qs_as_img - else R.mipmap.invalid_name_1 - ), - contentDescription = "No Result", - modifier = Modifier.size(140.dp) - ) - Text( - text = "咦,什么都没找到...", - color = LocalAppTheme.current.text, - fontSize = 16.sp, - fontWeight = FontWeight.W600 - ) - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = "换个关键词试试吧,也许会有新发现!", - color = LocalAppTheme.current.secondaryText, - fontSize = 14.sp, - fontWeight = FontWeight.W400 - ) - } else { - androidx.compose.foundation.Image( - painter = painterResource(id = R.mipmap.invalid_name_10), - contentDescription = "network error", - modifier = Modifier.size(140.dp) - ) - Text( - text = stringResource(R.string.friend_chat_no_network_title), - color = LocalAppTheme.current.text, - fontSize = 16.sp, - fontWeight = FontWeight.W600 - ) - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = stringResource(R.string.friend_chat_no_network_subtitle), - color = LocalAppTheme.current.secondaryText, - fontSize = 14.sp, - fontWeight = FontWeight.W400 - ) - Spacer(modifier = Modifier.size(16.dp)) - ReloadButton( - onClick = { - SearchViewModel.ResetModel() - SearchViewModel.search() - } - ) + isNetworkAvailable = isNetworkAvailable, + onReload = { + SearchViewModel.ResetModel() + SearchViewModel.search() } - } + ) } else { LazyColumn( modifier = Modifier.fillMaxSize(), @@ -944,6 +755,55 @@ fun RoomResultTab() { } } +@Composable +fun SearchPlaceholderContent( + modifier: Modifier = Modifier, + isNetworkAvailable: Boolean, + onReload: () -> Unit +) { + val appColors = LocalAppTheme.current + Column( + modifier = modifier, + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + if (isNetworkAvailable) { + androidx.compose.foundation.Image( + painter = painterResource(id = R.mipmap.empty_img), + contentDescription = "No Comment", + modifier = Modifier.size(168.dp) + ) + Text( + text = stringResource(R.string.null_search), + color = appColors.text, + fontSize = 16.sp, + fontWeight = FontWeight.W600 + ) + } else { + androidx.compose.foundation.Image( + painter = painterResource(id = R.mipmap.invalid_name_10), + contentDescription = "network error", + modifier = Modifier.size(140.dp) + ) + Text( + text = stringResource(R.string.friend_chat_no_network_title), + color = appColors.text, + fontSize = 16.sp, + fontWeight = FontWeight.W600 + ) + Spacer(modifier = Modifier.height(8.dp)) + Text( + text = stringResource(R.string.friend_chat_no_network_subtitle), + color = appColors.secondaryText, + fontSize = 14.sp, + fontWeight = FontWeight.W400 + ) + Spacer(modifier = Modifier.size(16.dp)) + ReloadButton(onClick = onReload) + } + } +} + @Composable fun ReloadButton( onClick: () -> Unit diff --git a/app/src/main/java/com/aiosman/ravenow/ui/like/LikePage.kt b/app/src/main/java/com/aiosman/ravenow/ui/like/LikePage.kt index 916b824..c2956f4 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/like/LikePage.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/like/LikePage.kt @@ -28,6 +28,7 @@ import androidx.compose.ui.platform.LocalContext 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.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -49,7 +50,7 @@ import com.aiosman.ravenow.utils.NetworkUtils import com.aiosman.ravenow.ui.network.ReloadButton @Preview @Composable -fun LikeNoticeScreen() { +fun LikeNoticeScreen(includeStatusBarPadding: Boolean = true) { val model = LikeNoticeViewModel val listState = rememberLazyListState() var dataFlow = model.likeItemsFlow @@ -63,7 +64,8 @@ fun LikeNoticeScreen() { StatusBarMaskLayout( darkIcons = !AppState.darkMode, - maskBoxBackgroundColor = AppColors.background + maskBoxBackgroundColor = AppColors.background, + includeStatusBarPadding = includeStatusBarPadding ) { Column( modifier = Modifier @@ -219,7 +221,14 @@ fun ActionPostNoticeItem( ) } ) { - Text(nickName, fontWeight = FontWeight.Bold, fontSize = 16.sp, color = AppColors.text) + Text( + text = nickName, + fontWeight = FontWeight.Bold, + fontSize = 16.sp, + color = AppColors.text, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) Spacer(modifier = Modifier.height(2.dp)) when (action) { "like" -> Text(stringResource(R.string.like_your_post), color = AppColors.text) @@ -283,7 +292,14 @@ fun LikeCommentNoticeItem( modifier = Modifier .weight(1f) ) { - Text(item.user.nickName, fontWeight = FontWeight.Bold, fontSize = 16.sp, color = AppColors.text) + Text( + text = item.user.nickName, + fontWeight = FontWeight.Bold, + fontSize = 16.sp, + color = AppColors.text, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) Spacer(modifier = Modifier.height(2.dp)) Text(stringResource(R.string.like_your_comment), color = AppColors.text) Spacer(modifier = Modifier.height(2.dp)) diff --git a/app/src/main/java/com/aiosman/ravenow/ui/notification/Notification.kt b/app/src/main/java/com/aiosman/ravenow/ui/notification/Notification.kt index 05b117a..20dbf7c 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/notification/Notification.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/notification/Notification.kt @@ -22,6 +22,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -89,7 +90,7 @@ fun NotificationScreen() { modifier = Modifier .fillMaxWidth() .wrapContentHeight() - .padding(start = 16.dp, top = 8.dp, bottom = 16.dp), + .padding(start = 16.dp, top = 8.dp), horizontalArrangement = Arrangement.Start, verticalAlignment = Alignment.Bottom ) { @@ -135,9 +136,9 @@ fun NotificationScreen() { .weight(1f) ) { page -> when (page) { - 0 -> LikeNoticeScreen() - 1 -> FollowerNoticeScreen() - 2 -> CommentNoticeScreen() + 0 -> LikeNoticeScreen(includeStatusBarPadding = false) + 1 -> FollowerNoticeScreen(includeStatusBarPadding = false) + 2 -> CommentNoticeScreen(includeStatusBarPadding = false) } } } diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 0ee67f4..c7bd3a3 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -221,6 +221,8 @@ 上部のボタンをクリックしてグループ記憶を追加してください けんさくりれき + Paip.ai + まだここは空です 作成 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 2fb44fd..9e10ddd 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -222,13 +222,14 @@ 暂无草稿 仅保存最近5个草稿 历史搜索 - + 这里还空着呢~ 创建 AI 群聊 动态 关闭 + 派派 你好呀!今天想创造什么? diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 95a08d0..845bec5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -220,6 +220,8 @@ Click the button above to add group memory Recent Search people + Paip.ai + It\'s still empty here Create @@ -347,7 +349,7 @@ Scan QR Edit Profile - About Paipai + About Paip.ai Follow System Message Notification Logout