Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -34,6 +34,7 @@ import androidx.lifecycle.viewModelScope
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import androidx.paging.LoadState
|
||||
import androidx.paging.compose.collectAsLazyPagingItems
|
||||
import com.aiosman.ravenow.AppState
|
||||
import com.aiosman.ravenow.LocalAppTheme
|
||||
import com.aiosman.ravenow.LocalNavController
|
||||
import com.aiosman.ravenow.R
|
||||
@@ -89,7 +90,9 @@ fun CommentNoticeScreen() {
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
androidx.compose.foundation.Image(
|
||||
painter = painterResource(id = R.mipmap.qst_pl_qs_img),
|
||||
painter = painterResource(
|
||||
id =if(AppState.darkMode) R.mipmap.qst_pl_qs_as_img
|
||||
else R.mipmap.qst_pl_qs_img),
|
||||
contentDescription = "No Comment",
|
||||
modifier = Modifier.size(181.dp)
|
||||
)
|
||||
|
||||
@@ -71,7 +71,7 @@ fun FollowerListScreen(userId: Int) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(top = 188.dp),
|
||||
.padding(top = 149.dp),
|
||||
contentAlignment = Alignment.TopCenter
|
||||
) {
|
||||
Column(
|
||||
@@ -79,22 +79,24 @@ fun FollowerListScreen(userId: Int) {
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(id = R.mipmap.rider_pro_followers_empty),
|
||||
painter = painterResource(
|
||||
id =if(AppState.darkMode) R.mipmap.qst_fs_qs_as_img
|
||||
else R.mipmap.qst_fs_qs_img),
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(140.dp)
|
||||
modifier = Modifier.size(181.dp)
|
||||
)
|
||||
Spacer(modifier = Modifier.size(24.dp))
|
||||
androidx.compose.material.Text(
|
||||
text = "No one's paying attention to you yet",
|
||||
text = "还没有人关注哦",
|
||||
color = appColors.text,
|
||||
fontSize = 16.sp,
|
||||
fontWeight = FontWeight.W600
|
||||
)
|
||||
Spacer(modifier = Modifier.size(8.dp))
|
||||
androidx.compose.material.Text(
|
||||
text = "Your vibe attracts your tribe.",
|
||||
text = "去发布动态,吸引更多粉丝~",
|
||||
color = appColors.text,
|
||||
fontSize = 16.sp,
|
||||
fontSize = 14.sp,
|
||||
fontWeight = FontWeight.W400
|
||||
)
|
||||
}
|
||||
|
||||
@@ -78,7 +78,9 @@ fun FollowerNoticeScreen() {
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(id = R.mipmap.qst_fs_qs_img),
|
||||
painter = painterResource(
|
||||
id =if(AppState.darkMode) R.mipmap.qst_fs_qs_as_img
|
||||
else R.mipmap.qst_fs_qs_img),
|
||||
contentDescription = "No Followers",
|
||||
modifier = Modifier.size(181.dp)
|
||||
)
|
||||
|
||||
@@ -81,7 +81,9 @@ fun FollowingListScreen(userId: Int) {
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(id = R.mipmap.qst_gz_qs_img_my),
|
||||
painter = painterResource(
|
||||
id =if(AppState.darkMode) R.mipmap.qst_gz_qs_as_img_my
|
||||
else R.mipmap.qst_gz_qs_img_my),
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(181.dp)
|
||||
)
|
||||
|
||||
@@ -38,6 +38,7 @@ import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import com.aiosman.ravenow.AppState
|
||||
import com.aiosman.ravenow.LocalAppTheme
|
||||
import com.aiosman.ravenow.LocalNavController
|
||||
import com.aiosman.ravenow.R
|
||||
@@ -89,12 +90,14 @@ fun AgentChatListScreen() {
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
|
||||
) {
|
||||
Spacer(modifier = Modifier.height(80.dp))
|
||||
Spacer(modifier = Modifier.height(39.dp))
|
||||
Image(
|
||||
painter = painterResource(id = R.mipmap.icon_agent_chat_empty),
|
||||
painter = painterResource(
|
||||
id = if(AppState.darkMode) R.mipmap.qs_znt_qs_as_img
|
||||
else R.mipmap.qs_znt_qs_img),
|
||||
contentDescription = "null data",
|
||||
modifier = Modifier
|
||||
.size(140.dp)
|
||||
.size(181.dp)
|
||||
)
|
||||
Spacer(modifier = Modifier.height(24.dp))
|
||||
Text(
|
||||
|
||||
@@ -27,6 +27,7 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.aiosman.ravenow.AppState
|
||||
import com.aiosman.ravenow.LocalAppTheme
|
||||
import com.aiosman.ravenow.LocalNavController
|
||||
import com.aiosman.ravenow.R
|
||||
@@ -74,7 +75,9 @@ fun FriendChatListScreen() {
|
||||
|
||||
Spacer(modifier = Modifier.height(39.dp))
|
||||
Image(
|
||||
painter = painterResource(id = R.mipmap.qs_py_qs_img),
|
||||
painter = painterResource(
|
||||
id = if(AppState.darkMode) R.mipmap.qs_py_qs_as_img
|
||||
else R.mipmap.qs_py_qs_img),
|
||||
contentDescription = "null data",
|
||||
modifier = Modifier
|
||||
.size(181.dp)
|
||||
|
||||
@@ -26,6 +26,7 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.aiosman.ravenow.AppState
|
||||
import com.aiosman.ravenow.LocalAppTheme
|
||||
import com.aiosman.ravenow.LocalNavController
|
||||
import com.aiosman.ravenow.R
|
||||
@@ -71,7 +72,9 @@ fun GroupChatListScreen() {
|
||||
) {
|
||||
Spacer(modifier = Modifier.height(39.dp))
|
||||
Image(
|
||||
painter = painterResource(id = R.mipmap.qs_ql_qs_img),
|
||||
painter = painterResource(
|
||||
id = if(AppState.darkMode) R.mipmap.qs_ql_qs_as_img
|
||||
else R.mipmap.qs_ql_qs_img),
|
||||
contentDescription = "null data",
|
||||
modifier = Modifier
|
||||
.size(181.dp)
|
||||
|
||||
@@ -37,6 +37,7 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.paging.compose.collectAsLazyPagingItems
|
||||
import com.aiosman.ravenow.AppState
|
||||
import com.aiosman.ravenow.LocalAppTheme
|
||||
import com.aiosman.ravenow.R
|
||||
import com.aiosman.ravenow.ui.composables.MomentCard
|
||||
@@ -86,7 +87,9 @@ fun TimelineMomentsList() {
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(id = R.mipmap.qst_gz_qs_img),
|
||||
painter = painterResource(
|
||||
id = if(AppState.darkMode) R.mipmap.qst_gz_qs_as_img
|
||||
else R.mipmap.qst_gz_qs_img),
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(140.dp)
|
||||
)
|
||||
|
||||
@@ -82,6 +82,7 @@ import com.aiosman.ravenow.ui.composables.toolbar.CollapsingToolbarScaffold
|
||||
import com.aiosman.ravenow.ui.composables.toolbar.ScrollStrategy
|
||||
import com.aiosman.ravenow.ui.composables.toolbar.rememberCollapsingToolbarScaffoldState
|
||||
import com.aiosman.ravenow.ui.index.IndexViewModel
|
||||
import com.aiosman.ravenow.ui.index.tabs.profile.composable.GalleryGrid
|
||||
import com.aiosman.ravenow.ui.post.MenuActionItem
|
||||
import com.aiosman.ravenow.ui.index.tabs.profile.composable.OtherProfileAction
|
||||
import com.aiosman.ravenow.ui.index.tabs.profile.composable.SelfProfileAction
|
||||
@@ -604,53 +605,7 @@ fun ProfileV3(
|
||||
) { idx ->
|
||||
when (idx) {
|
||||
0 ->
|
||||
LazyVerticalGrid(
|
||||
columns = GridCells.Fixed(3),
|
||||
state = gridState,
|
||||
modifier = Modifier.fillMaxSize().padding(bottom = 8.dp),
|
||||
) {
|
||||
|
||||
items(moments.size) { idx ->
|
||||
val moment = moments[idx] ?: return@items
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.aspectRatio(1f)
|
||||
.padding(2.dp)
|
||||
.noRippleClickable {
|
||||
navController.navigateToPost(
|
||||
id = moment.id,
|
||||
highlightCommentId = 0,
|
||||
initImagePagerIndex = 0
|
||||
)
|
||||
}
|
||||
) {
|
||||
CustomAsyncImage(
|
||||
imageUrl = moment.images[0].thumbnail,
|
||||
contentDescription = "",
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
context = LocalContext.current
|
||||
)
|
||||
if (moment.images.size > 1) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.padding(top = 8.dp, end = 8.dp)
|
||||
.align(Alignment.TopEnd)
|
||||
) {
|
||||
Image(
|
||||
modifier = Modifier.size(24.dp),
|
||||
painter = painterResource(R.drawable.rider_pro_picture_more),
|
||||
contentDescription = "",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
item {
|
||||
Spacer(modifier = Modifier.height(120.dp))
|
||||
}
|
||||
}
|
||||
|
||||
GalleryGrid(moments = moments)
|
||||
1 ->
|
||||
UserAgentsList(
|
||||
agents = agents,
|
||||
|
||||
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.aspectRatio
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
@@ -16,6 +17,27 @@ import com.aiosman.ravenow.entity.MomentEntity
|
||||
import com.aiosman.ravenow.ui.composables.CustomAsyncImage
|
||||
import com.aiosman.ravenow.ui.modifiers.noRippleClickable
|
||||
import com.aiosman.ravenow.ui.navigateToPost
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.aiosman.ravenow.LocalAppTheme
|
||||
import com.aiosman.ravenow.R
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.foundation.lazy.grid.GridCells
|
||||
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
||||
import androidx.compose.foundation.lazy.grid.itemsIndexed
|
||||
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import com.aiosman.ravenow.AppState
|
||||
|
||||
@Composable
|
||||
fun GalleryItem(
|
||||
@@ -23,6 +45,7 @@ fun GalleryItem(
|
||||
idx: Int = 0
|
||||
) {
|
||||
val navController = LocalNavController.current
|
||||
val AppColors = LocalAppTheme.current
|
||||
|
||||
Box(
|
||||
modifier = Modifier
|
||||
@@ -46,9 +69,41 @@ fun GalleryItem(
|
||||
moment.id
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
) {
|
||||
// 检查图片列表是否为空
|
||||
if (moment.images.isEmpty()) {
|
||||
// 显示占位符内容,类似于EmptyAgentsView
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(vertical = 60.dp),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(R.mipmap.qs_dt_qs_img),
|
||||
contentDescription = "暂无图片",
|
||||
modifier = Modifier.size(181.dp),
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(24.dp))
|
||||
|
||||
Text(
|
||||
text = "故事还没开始",
|
||||
fontSize = 12.sp,
|
||||
color = AppColors.text,
|
||||
fontWeight = FontWeight.W600
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
|
||||
Text(
|
||||
text = "发布一条动态,和世界打个招呼吧",
|
||||
fontSize = 14.sp,
|
||||
color = AppColors.secondaryText,
|
||||
fontWeight = FontWeight.W400
|
||||
)
|
||||
}
|
||||
} else {
|
||||
CustomAsyncImage(
|
||||
LocalContext.current,
|
||||
moment.images[0].thumbnail,
|
||||
@@ -59,3 +114,97 @@ fun GalleryItem(
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun GalleryGrid(
|
||||
moments: List<MomentEntity>
|
||||
) {
|
||||
val navController = LocalNavController.current
|
||||
val AppColors = LocalAppTheme.current
|
||||
val gridState = rememberLazyGridState()
|
||||
|
||||
if (moments.isEmpty()) {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.verticalScroll(rememberScrollState())
|
||||
.padding(vertical = 60.dp),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(
|
||||
id = if(AppState.darkMode) R.mipmap.qs_dt_qs_as_img
|
||||
else R.mipmap.qs_dt_qs_img),
|
||||
contentDescription = "暂无图片",
|
||||
modifier = Modifier.size(181.dp),
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(24.dp))
|
||||
|
||||
Text(
|
||||
text = "故事还没开始",
|
||||
fontSize = 12.sp,
|
||||
color = AppColors.text,
|
||||
fontWeight = FontWeight.W600
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
|
||||
Text(
|
||||
text = "发布一条动态,和世界打个招呼吧",
|
||||
fontSize = 14.sp,
|
||||
color = AppColors.secondaryText,
|
||||
fontWeight = FontWeight.W400
|
||||
)
|
||||
}
|
||||
} else {
|
||||
LazyVerticalGrid(
|
||||
columns = GridCells.Fixed(3),
|
||||
state = gridState,
|
||||
modifier = Modifier.fillMaxSize().padding(bottom = 8.dp),
|
||||
) {
|
||||
itemsIndexed(moments) { idx, moment ->
|
||||
if (moment != null) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.aspectRatio(1f)
|
||||
.padding(2.dp)
|
||||
.noRippleClickable {
|
||||
navController.navigateToPost(
|
||||
id = moment.id,
|
||||
highlightCommentId = 0,
|
||||
initImagePagerIndex = 0
|
||||
)
|
||||
}
|
||||
) {
|
||||
CustomAsyncImage(
|
||||
imageUrl = moment.images[0].thumbnail,
|
||||
contentDescription = "",
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
context = LocalContext.current
|
||||
)
|
||||
if (moment.images.size > 1) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.padding(top = 8.dp, end = 8.dp)
|
||||
.align(Alignment.TopEnd)
|
||||
) {
|
||||
Image(
|
||||
modifier = Modifier.size(24.dp),
|
||||
painter = painterResource(R.drawable.rider_pro_picture_more),
|
||||
contentDescription = "",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
item {
|
||||
Spacer(modifier = Modifier.height(120.dp))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.aiosman.ravenow.AppState
|
||||
import com.aiosman.ravenow.GuestLoginCheckOut
|
||||
import com.aiosman.ravenow.GuestLoginCheckOutScene
|
||||
import com.aiosman.ravenow.LocalAppTheme
|
||||
@@ -203,7 +204,9 @@ fun EmptyAgentsView() {
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(R.mipmap.qs_ai_qs_img),
|
||||
painter = painterResource(
|
||||
id =if(AppState.darkMode) R.mipmap.qs_ai_qs_as_img
|
||||
else R.mipmap.qs_ai_qs_img),
|
||||
contentDescription = "暂无Agent",
|
||||
modifier = Modifier.size(181.dp),
|
||||
)
|
||||
|
||||
@@ -318,7 +318,9 @@ fun MomentResultTab() {
|
||||
verticalArrangement = Arrangement.Center
|
||||
) {
|
||||
androidx.compose.foundation.Image(
|
||||
painter = painterResource(id = R.mipmap.syss_yh_qs_img),
|
||||
painter = painterResource(
|
||||
id = if(AppState.darkMode) R.mipmap.syss_yh_qs_as_img
|
||||
else R.mipmap.syss_yh_qs_img),
|
||||
contentDescription = "No Comment",
|
||||
modifier = Modifier.size(140.dp)
|
||||
)
|
||||
@@ -379,7 +381,9 @@ fun UserResultTab() {
|
||||
verticalArrangement = Arrangement.Center
|
||||
) {
|
||||
androidx.compose.foundation.Image(
|
||||
painter = painterResource(id = R.mipmap.syss_yh_qs_img),
|
||||
painter = painterResource(
|
||||
id = if(AppState.darkMode) R.mipmap.syss_yh_qs_as_img
|
||||
else R.mipmap.syss_yh_qs_img),
|
||||
contentDescription = "No Comment",
|
||||
modifier = Modifier.size(140.dp)
|
||||
)
|
||||
|
||||
@@ -94,7 +94,9 @@ fun LikeNoticeScreen() {
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(id = R.mipmap.qst_z_qs_img),
|
||||
painter = painterResource(
|
||||
id =if(AppState.darkMode) R.mipmap.qst_z_qs_as_img
|
||||
else R.mipmap.qst_z_qs_img),
|
||||
contentDescription = "No Notice",
|
||||
modifier = Modifier.size(181.dp)
|
||||
)
|
||||
|
||||
BIN
app/src/main/res/drawable/dynamic.png
Normal file
BIN
app/src/main/res/drawable/dynamic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 551 B |
BIN
app/src/main/res/mipmap-hdpi/dynamic_hl.png
Normal file
BIN
app/src/main/res/mipmap-hdpi/dynamic_hl.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 866 B |
Reference in New Issue
Block a user