diff --git a/app/src/main/java/com/aiosman/riderpro/ui/account/edit2.kt b/app/src/main/java/com/aiosman/riderpro/ui/account/edit2.kt
index 792d834..8d6b0cb 100644
--- a/app/src/main/java/com/aiosman/riderpro/ui/account/edit2.kt
+++ b/app/src/main/java/com/aiosman/riderpro/ui/account/edit2.kt
@@ -161,7 +161,7 @@ fun AccountEditScreen2() {
}
Column(
modifier = Modifier
- .fillMaxSize(),
+ .fillMaxSize().background(Color.White),
horizontalAlignment = Alignment.CenterHorizontally
) {
StatusBarSpacer()
@@ -210,13 +210,13 @@ fun AccountEditScreen2() {
.size(32.dp)
.clip(CircleShape)
.background(AppColors.mainColor)
- .align(Alignment.BottomEnd).noRippleClickable {
+ .align(Alignment.BottomEnd)
+ .noRippleClickable {
Intent(Intent.ACTION_PICK).apply {
type = "image/*"
pickImageLauncher.launch(this)
}
- }
- ,
+ },
contentAlignment = Alignment.Center
) {
Icon(
@@ -229,14 +229,16 @@ fun AccountEditScreen2() {
}
Spacer(modifier = Modifier.height(46.dp))
Column(
- modifier = Modifier.padding(horizontal = 24.dp).border(
- width = 1.dp,
- color = Color(0xFFEBEBEB),
- )
+ modifier = Modifier
+ .padding(horizontal = 16.dp)
) {
Row(
- modifier = Modifier.padding(16.dp),
+ modifier = Modifier
+ .clip(RoundedCornerShape(24.dp))
+ .background(Color(0xfff8f8f8))
+ .padding(16.dp),
verticalAlignment = Alignment.CenterVertically
+
) {
Text(
text = stringResource(R.string.nickname),
@@ -263,15 +265,12 @@ fun AccountEditScreen2() {
.padding(start = 16.dp)
)
}
- Box(
- modifier = Modifier
- .fillMaxWidth()
- .height(1.dp)
- .padding(horizontal = 16.dp)
- .background(Color(0xFFEBEBEB))
- )
+ Spacer(modifier = Modifier.height(16.dp))
Row(
- modifier = Modifier.padding(16.dp),
+ modifier = Modifier
+ .clip(RoundedCornerShape(16.dp))
+ .background(Color(0xfff8f8f8))
+ .padding(16.dp),
verticalAlignment = Alignment.CenterVertically
) {
Text(
diff --git a/app/src/main/java/com/aiosman/riderpro/ui/comment/notice/CommentNotice.kt b/app/src/main/java/com/aiosman/riderpro/ui/comment/notice/CommentNotice.kt
index 66d8115..bf5ca0c 100644
--- a/app/src/main/java/com/aiosman/riderpro/ui/comment/notice/CommentNotice.kt
+++ b/app/src/main/java/com/aiosman/riderpro/ui/comment/notice/CommentNotice.kt
@@ -22,6 +22,7 @@ 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.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
@@ -32,6 +33,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.paging.LoadState
import androidx.paging.compose.collectAsLazyPagingItems
import com.aiosman.riderpro.LocalNavController
+import com.aiosman.riderpro.R
import com.aiosman.riderpro.entity.CommentEntity
import com.aiosman.riderpro.exp.timeAgo
import com.aiosman.riderpro.ui.NavigationRoute
@@ -68,7 +70,7 @@ fun CommentNoticeScreen() {
.fillMaxWidth()
.padding(16.dp)
) {
- NoticeScreenHeader("Comment", moreIcon = false)
+ NoticeScreenHeader(stringResource(R.string.comment), moreIcon = false)
}
LazyColumn(
diff --git a/app/src/main/java/com/aiosman/riderpro/ui/composables/toolbar/CollapsingToolbarScaffold.kt b/app/src/main/java/com/aiosman/riderpro/ui/composables/toolbar/CollapsingToolbarScaffold.kt
index 1805abc..a93d3c0 100644
--- a/app/src/main/java/com/aiosman/riderpro/ui/composables/toolbar/CollapsingToolbarScaffold.kt
+++ b/app/src/main/java/com/aiosman/riderpro/ui/composables/toolbar/CollapsingToolbarScaffold.kt
@@ -22,7 +22,13 @@
package com.aiosman.riderpro.ui.composables.toolbar
+import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.gestures.ScrollableDefaults
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Stable
import androidx.compose.runtime.mutableStateOf
@@ -35,7 +41,9 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.layout.Layout
import androidx.compose.ui.layout.ParentDataModifier
+import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalLayoutDirection
+import androidx.compose.ui.unit.Constraints
import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.IntSize
import kotlin.math.max
@@ -87,6 +95,7 @@ fun CollapsingToolbarScaffold(
enabled: Boolean = true,
toolbarModifier: Modifier = Modifier,
toolbarClipToBounds: Boolean = true,
+ toolbarScrollable: Boolean = false,
toolbar: @Composable CollapsingToolbarScope.() -> Unit,
body: @Composable CollapsingToolbarScaffoldScope.() -> Unit
) {
@@ -98,6 +107,7 @@ fun CollapsingToolbarScaffold(
}
val toolbarState = state.toolbarState
+ val toolbarScrollState = rememberScrollState()
Layout(
content = {
@@ -106,6 +116,12 @@ fun CollapsingToolbarScaffold(
clipToBounds = toolbarClipToBounds,
collapsingToolbarState = toolbarState,
) {
+ ToolbarScrollableBox(
+ enabled,
+ toolbarScrollable,
+ toolbarState,
+ toolbarScrollState
+ )
toolbar()
}
@@ -181,6 +197,24 @@ fun CollapsingToolbarScaffold(
}
}
+@Composable
+private fun ToolbarScrollableBox(
+ enabled: Boolean,
+ toolbarScrollable: Boolean,
+ toolbarState: CollapsingToolbarState,
+ toolbarScrollState: ScrollState
+) {
+ val toolbarScrollableEnabled = enabled && toolbarScrollable
+ if (toolbarScrollableEnabled && toolbarState.height != Constraints.Infinity) {
+ Box(
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(with(LocalDensity.current) { toolbarState.height.toDp() })
+ .verticalScroll(state = toolbarScrollState)
+ )
+ }
+}
+
internal object CollapsingToolbarScaffoldScopeInstance: CollapsingToolbarScaffoldScope {
@ExperimentalToolbarApi
override fun Modifier.align(alignment: Alignment): Modifier =
diff --git a/app/src/main/java/com/aiosman/riderpro/ui/composables/toolbar/ToolbarWithFabScaffold.kt b/app/src/main/java/com/aiosman/riderpro/ui/composables/toolbar/ToolbarWithFabScaffold.kt
index 581a12b..4034204 100644
--- a/app/src/main/java/com/aiosman/riderpro/ui/composables/toolbar/ToolbarWithFabScaffold.kt
+++ b/app/src/main/java/com/aiosman/riderpro/ui/composables/toolbar/ToolbarWithFabScaffold.kt
@@ -15,6 +15,7 @@ fun ToolbarWithFabScaffold(
toolbarModifier: Modifier = Modifier,
toolbarClipToBounds: Boolean = true,
toolbar: @Composable CollapsingToolbarScope.() -> Unit,
+ toolbarScrollable: Boolean = false,
fab: @Composable () -> Unit,
fabPosition: FabPosition = FabPosition.End,
body: @Composable CollapsingToolbarScaffoldScope.() -> Unit
@@ -37,7 +38,8 @@ fun ToolbarWithFabScaffold(
toolbarModifier = toolbarModifier,
toolbarClipToBounds = toolbarClipToBounds,
toolbar = toolbar,
- body = body
+ body = body,
+ toolbarScrollable = toolbarScrollable
)
}.map { it.measure(toolbarScaffoldConstraints) }
diff --git a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/ProfileV3.kt b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/ProfileV3.kt
index 11b46d3..0d48f50 100644
--- a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/ProfileV3.kt
+++ b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/ProfileV3.kt
@@ -8,6 +8,7 @@ import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.Image
+import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -33,6 +34,7 @@ import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.foundation.verticalScroll
import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
@@ -48,8 +50,12 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.shadow
+import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.graphicsLayer
+import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
+import androidx.compose.ui.input.nestedscroll.NestedScrollSource
+import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.platform.LocalContext
@@ -58,8 +64,11 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
+import androidx.media3.common.util.Log
+import androidx.media3.common.util.UnstableApi
import androidx.paging.PagingData
import androidx.paging.compose.collectAsLazyPagingItems
+import com.aiosman.riderpro.AppState
import com.aiosman.riderpro.LocalNavController
import com.aiosman.riderpro.R
import com.aiosman.riderpro.entity.AccountProfileEntity
@@ -122,9 +131,12 @@ fun ProfileV3(
Box {
CollapsingToolbarScaffold(
- modifier = Modifier.fillMaxSize(),
+ modifier = Modifier
+ .fillMaxSize()
+ .background(Color(0xfff8f8f8)),
state = state,
scrollStrategy = ScrollStrategy.ExitUntilCollapsed,
+ toolbarScrollable = true,
enabled = enabled,
toolbar = {
Column(
@@ -133,8 +145,6 @@ fun ProfileV3(
// 保持在最低高度和当前高度之间
.background(Color(0xfff8f8f8))
.padding(horizontal = 16.dp)
-
-
) {
StatusBarSpacer()
@@ -161,20 +171,6 @@ fun ProfileV3(
}
Spacer(modifier = Modifier.height(8.dp))
}
-// Column(
-// modifier = Modifier.fillMaxWidth()
-//
-// ) {
-// StatusBarSpacer()
-// Box(
-// modifier = Modifier
-// .background(Color.White)
-// .fillMaxWidth()
-// .height(64.dp)
-// ) {
-//
-// }
-// }
Box(
modifier = Modifier
.parallax(0.5f)
@@ -333,15 +329,18 @@ fun ProfileV3(
navController.navigate(NavigationRoute.AccountEdit.route)
}
} else {
- OtherProfileAction(
- it,
- onFollow = {
- onFollowClick()
- },
- onChat = {
- onChatClick()
- }
- )
+ if (it.id != AppState.UserId) {
+ OtherProfileAction(
+ it,
+ onFollow = {
+ onFollowClick()
+ },
+ onChat = {
+ onChatClick()
+ }
+ )
+ }
+
}
}
@@ -414,7 +413,7 @@ fun ProfileV3(
}
items(moments.itemCount) { idx ->
val moment = moments[idx] ?: return@items
- GalleryItem(moment,idx)
+ GalleryItem(moment, idx)
}
items(2) {
Spacer(modifier = Modifier.height(120.dp))
@@ -426,7 +425,7 @@ fun ProfileV3(
modifier = Modifier
.fillMaxSize()
) {
- if (moments.itemCount == 0) {
+ if (moments.itemCount == 0 && isSelf) {
item {
EmptyMomentPostUnit()
}
diff --git a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/composable/UserContentPageIndicator.kt b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/composable/UserContentPageIndicator.kt
index bba2652..ac88ada 100644
--- a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/composable/UserContentPageIndicator.kt
+++ b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/composable/UserContentPageIndicator.kt
@@ -9,7 +9,9 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.pager.PagerState
+import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope
@@ -33,6 +35,7 @@ fun UserContentPageIndicator(
val scope = rememberCoroutineScope()
Row(
modifier = Modifier
+ .verticalScroll(rememberScrollState())
.fillMaxWidth()
.padding(horizontal = 16.dp),
) {
diff --git a/app/src/main/java/com/aiosman/riderpro/ui/like/LikePage.kt b/app/src/main/java/com/aiosman/riderpro/ui/like/LikePage.kt
index bfea935..d3067ef 100644
--- a/app/src/main/java/com/aiosman/riderpro/ui/like/LikePage.kt
+++ b/app/src/main/java/com/aiosman/riderpro/ui/like/LikePage.kt
@@ -114,7 +114,6 @@ fun LikeNoticeScreen() {
}
}
-
@Composable
fun ActionPostNoticeItem(
avatar: String,
@@ -165,8 +164,8 @@ fun ActionPostNoticeItem(
Text(nickName, fontWeight = FontWeight.Bold, fontSize = 16.sp)
Spacer(modifier = Modifier.height(2.dp))
when (action) {
- "like" -> Text("Like your post")
- "favourite" -> Text("Favourite your post")
+ "like" -> Text(stringResource(R.string.like_your_post))
+ "favourite" -> Text(stringResource(R.string.favourite_your_post))
}
Spacer(modifier = Modifier.height(2.dp))
Row {
@@ -190,16 +189,18 @@ fun LikeCommentNoticeItem(
val navController = LocalNavController.current
val context = LocalContext.current
Box(
- modifier = Modifier.padding(vertical = 16.dp).noRippleClickable {
- item.comment?.postId.let {
- navController.navigateToPost(
- id = it ?: 0,
- highlightCommentId = item.comment?.id ?: 0,
- initImagePagerIndex = 0
- )
- }
+ modifier = Modifier
+ .padding(vertical = 16.dp)
+ .noRippleClickable {
+ item.comment?.postId.let {
+ navController.navigateToPost(
+ id = it ?: 0,
+ highlightCommentId = item.comment?.id ?: 0,
+ initImagePagerIndex = 0
+ )
+ }
- }
+ }
) {
Column(
@@ -213,7 +214,7 @@ fun LikeCommentNoticeItem(
modifier = Modifier
.size(48.dp)
.clip(CircleShape),
- contentDescription = "Like your comment"
+ contentDescription = stringResource(R.string.like_your_comment)
)
Spacer(modifier = Modifier.width(12.dp))
Column(
@@ -222,7 +223,7 @@ fun LikeCommentNoticeItem(
) {
Text(item.user.nickName, fontWeight = FontWeight.Bold, fontSize = 16.sp)
Spacer(modifier = Modifier.height(2.dp))
- Text("Like your comment")
+ Text(stringResource(R.string.like_your_comment))
Spacer(modifier = Modifier.height(2.dp))
Row {
Text(
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 680d3cd..b70f712 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -76,4 +76,7 @@
用户协议
图片
私信
+ 喜欢了你的动态
+ 收藏了你的动态
+ 喜欢了你的评论
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c968e96..56b3f40 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -75,4 +75,7 @@
Rider Pro’s Privacy Policy
Gallery
CHAT
+ Like your post
+ Favourite your post
+ Like your comment
\ No newline at end of file