修改背景细节

This commit is contained in:
2024-10-13 05:57:25 +08:00
parent 20a34b569a
commit fab1e0206d
17 changed files with 70 additions and 28 deletions

View File

@@ -84,6 +84,7 @@ dependencies {
implementation(libs.googleid) implementation(libs.googleid)
implementation(libs.identity.credential) implementation(libs.identity.credential)
implementation(libs.androidx.lifecycle.process) implementation(libs.androidx.lifecycle.process)
implementation(libs.rendering)
testImplementation(libs.junit) testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(libs.androidx.espresso.core)

View File

@@ -170,7 +170,7 @@ fun ChatScreen(userId: String) {
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Image( Image(
painter = painterResource(R.drawable.rider_pro_nav_back), painter = painterResource(R.drawable.rider_pro_back_icon),
modifier = Modifier modifier = Modifier
.size(28.dp) .size(28.dp)
.noRippleClickable { .noRippleClickable {

View File

@@ -72,7 +72,7 @@ fun NoticeScreenHeader(
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
) { ) {
Image( Image(
painter = painterResource(id = R.drawable.rider_pro_nav_back), painter = painterResource(id = R.drawable.rider_pro_back_icon),
contentDescription = title, contentDescription = title,
modifier = Modifier.size(16.dp).clickable( modifier = Modifier.size(16.dp).clickable(
indication = null, indication = null,

View File

@@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.LinearProgressIndicator import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@@ -62,7 +63,7 @@ fun CommentNoticeScreen() {
var comments = dataFlow.collectAsLazyPagingItems() var comments = dataFlow.collectAsLazyPagingItems()
val navController = LocalNavController.current val navController = LocalNavController.current
Column( Column(
modifier = Modifier.fillMaxSize() modifier = Modifier.fillMaxSize().background(color = Color(0xFFFFFFFF))
) { ) {
StatusBarSpacer() StatusBarSpacer()
Box( Box(
@@ -218,7 +219,7 @@ fun CommentNoticeItem(
imageUrl = it.images[0].thumbnail, imageUrl = it.images[0].thumbnail,
contentDescription = "Post Image", contentDescription = "Post Image",
modifier = Modifier modifier = Modifier
.size(48.dp) .size(48.dp).clip(RoundedCornerShape(8.dp))
) )
// unread indicator // unread indicator

View File

@@ -94,7 +94,7 @@ fun ImageCropScreen() {
.padding(vertical = 8.dp, horizontal = 16.dp) .padding(vertical = 8.dp, horizontal = 16.dp)
) { ) {
Image( Image(
painter = painterResource(R.drawable.rider_pro_nav_back), painter = painterResource(R.drawable.rider_pro_back_icon),
contentDescription = null, contentDescription = null,
modifier = Modifier.clickable { modifier = Modifier.clickable {
navController.popBackStack() navController.popBackStack()

View File

@@ -1,5 +1,6 @@
package com.aiosman.riderpro.ui.follower package com.aiosman.riderpro.ui.follower
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
@@ -11,16 +12,20 @@ import androidx.compose.material.pullrefresh.pullRefresh
import androidx.compose.material.pullrefresh.rememberPullRefreshState import androidx.compose.material.pullrefresh.rememberPullRefreshState
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.UiMode
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems
import com.aiosman.riderpro.R import com.aiosman.riderpro.R
import com.aiosman.riderpro.ui.comment.NoticeScreenHeader import com.aiosman.riderpro.ui.comment.NoticeScreenHeader
import com.aiosman.riderpro.ui.composables.StatusBarMaskLayout import com.aiosman.riderpro.ui.composables.StatusBarMaskLayout
import com.google.ar.sceneform.rendering.Light
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterialApi::class) @OptIn(ExperimentalMaterialApi::class)
@@ -34,16 +39,18 @@ fun FollowerListScreen(userId: Int) {
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
model.loadData(userId) model.loadData(userId)
} }
StatusBarMaskLayout( StatusBarMaskLayout(
modifier = Modifier modifier = Modifier
.padding(horizontal = 16.dp) .background(color = Color(0xFFFFFFFF))
.padding(horizontal = 16.dp),
maskBoxBackgroundColor = Color(0xFFFFFFFF)
) { ) {
var dataFlow = model.usersFlow var dataFlow = model.usersFlow
var users = dataFlow.collectAsLazyPagingItems() var users = dataFlow.collectAsLazyPagingItems()
Box( Box(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.background(color = Color(0xFFFFFFFF))
.padding(vertical = 16.dp) .padding(vertical = 16.dp)
) { ) {
NoticeScreenHeader(stringResource(R.string.followers_upper), moreIcon = false) NoticeScreenHeader(stringResource(R.string.followers_upper), moreIcon = false)
@@ -52,10 +59,12 @@ fun FollowerListScreen(userId: Int) {
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.weight(1f) .weight(1f)
.background(color = Color(0xFFFFFFFF))
.pullRefresh(refreshState) .pullRefresh(refreshState)
) { ) {
LazyColumn( LazyColumn(
modifier = Modifier.fillMaxSize() modifier = Modifier.fillMaxSize()
.background(color = Color(0xFFFFFFFF))
) { ) {
items(users.itemCount) { index -> items(users.itemCount) { index ->
users[index]?.let { user -> users[index]?.let { user ->

View File

@@ -1,6 +1,7 @@
package com.aiosman.riderpro.ui.follower package com.aiosman.riderpro.ui.follower
import androidx.compose.foundation.Image import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
@@ -11,12 +12,14 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
@@ -43,7 +46,9 @@ import kotlinx.coroutines.launch
fun FollowerNoticeScreen() { fun FollowerNoticeScreen() {
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
StatusBarMaskLayout( StatusBarMaskLayout(
modifier = Modifier.padding(horizontal = 16.dp) modifier = Modifier.background(color = Color(0xFFFFFFFF)).padding(horizontal = 16.dp),
darkIcons = true,
maskBoxBackgroundColor = Color(0xFFFFFFFF)
) { ) {
val model = FollowerNoticeViewModel val model = FollowerNoticeViewModel
var dataFlow = model.followerItemsFlow var dataFlow = model.followerItemsFlow
@@ -52,6 +57,7 @@ fun FollowerNoticeScreen() {
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(vertical = 16.dp) .padding(vertical = 16.dp)
.background(color = Color(0xFFFFFFFF))
) { ) {
NoticeScreenHeader(stringResource(R.string.followers_upper), moreIcon = false) NoticeScreenHeader(stringResource(R.string.followers_upper), moreIcon = false)
} }
@@ -61,6 +67,7 @@ fun FollowerNoticeScreen() {
} }
LazyColumn( LazyColumn(
modifier = Modifier.weight(1f) modifier = Modifier.weight(1f)
.background(color = Color(0xFFFFFFFF))
) { ) {
items(followers.itemCount) { index -> items(followers.itemCount) { index ->
followers[index]?.let { follower -> followers[index]?.let { follower ->
@@ -92,7 +99,7 @@ fun FollowItem(
val context = LocalContext.current val context = LocalContext.current
val navController = LocalNavController.current val navController = LocalNavController.current
Box( Box(
modifier = Modifier.padding(horizontal = 24.dp, vertical = 16.dp) modifier = Modifier.padding(vertical = 16.dp)
) { ) {
Row( Row(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
@@ -104,6 +111,7 @@ fun FollowItem(
contentDescription = nickname, contentDescription = nickname,
modifier = Modifier modifier = Modifier
.size(40.dp) .size(40.dp)
.clip(CircleShape)
.noRippleClickable { .noRippleClickable {
navController.navigate( navController.navigate(
NavigationRoute.AccountProfile.route.replace( NavigationRoute.AccountProfile.route.replace(
@@ -119,16 +127,16 @@ fun FollowItem(
) { ) {
Text(nickname, fontWeight = FontWeight.Bold, fontSize = 16.sp) Text(nickname, fontWeight = FontWeight.Bold, fontSize = 16.sp)
} }
if (userId != AppState.UserId) { // if (userId != AppState.UserId) {
FollowButton( // FollowButton(
isFollowing = isFollowing, // isFollowing = isFollowing,
onFollowClick = onFollow, // onFollowClick = onFollow,
fontSize = 14.sp, // fontSize = 14.sp,
imageModifier = Modifier // imageModifier = Modifier
.width(100.dp) // .width(100.dp)
.height(24.dp) // .height(24.dp)
) // )
} // }
// Box( // Box(
// modifier = Modifier.noRippleClickable { // modifier = Modifier.noRippleClickable {

View File

@@ -1,5 +1,6 @@
package com.aiosman.riderpro.ui.follower package com.aiosman.riderpro.ui.follower
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
@@ -14,6 +15,7 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems
@@ -34,7 +36,10 @@ fun FollowingListScreen(userId: Int) {
model.loadData(userId) model.loadData(userId)
} }
StatusBarMaskLayout( StatusBarMaskLayout(
modifier = Modifier.padding(horizontal = 16.dp) modifier = Modifier
.background(color = Color(0xFFFFFFFF))
.padding(horizontal = 16.dp),
maskBoxBackgroundColor = Color(0xFFFFFFFF)
) { ) {
var dataFlow = model.usersFlow var dataFlow = model.usersFlow
var users = dataFlow.collectAsLazyPagingItems() var users = dataFlow.collectAsLazyPagingItems()

View File

@@ -62,7 +62,7 @@ fun OfficialGalleryPageHeader() {
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Icon( Icon(
painter = painterResource(id = R.drawable.rider_pro_nav_back), // Replace with your logo resource painter = painterResource(id = R.drawable.rider_pro_back_icon), // Replace with your logo resource
contentDescription = "Logo", contentDescription = "Logo",
modifier = Modifier.size(24.dp) modifier = Modifier.size(24.dp)
) )

View File

@@ -263,7 +263,7 @@ fun OfficialPhotographerScreen() {
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
) { ) {
Image( Image(
painter = painterResource(id = R.drawable.rider_pro_nav_back), painter = painterResource(id = R.drawable.rider_pro_back_icon),
colorFilter = ColorFilter.tint(Color.White), colorFilter = ColorFilter.tint(Color.White),
contentDescription = "", contentDescription = "",
modifier = Modifier modifier = Modifier

View File

@@ -26,6 +26,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
@@ -274,6 +275,7 @@ fun ChatMessageList(
contentDescription = item.nickname, contentDescription = item.nickname,
modifier = Modifier modifier = Modifier
.size(48.dp) .size(48.dp)
.clip(RoundedCornerShape(48.dp))
.noRippleClickable { .noRippleClickable {
onUserAvatarClick(item) onUserAvatarClick(item)
} }

View File

@@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.ClickableText import androidx.compose.foundation.text.ClickableText
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@@ -175,7 +176,9 @@ fun ActionPostNoticeItem(
CustomAsyncImage( CustomAsyncImage(
context, context,
imageUrl = thumbnail, imageUrl = thumbnail,
modifier = Modifier.size(48.dp), modifier = Modifier
.size(48.dp)
.clip(RoundedCornerShape(8.dp)),
contentDescription = action, contentDescription = action,
) )
} }
@@ -247,7 +250,9 @@ fun LikeCommentNoticeItem(
context = context, context = context,
imageUrl = MyProfileViewModel.avatar, imageUrl = MyProfileViewModel.avatar,
contentDescription = "Comment Profile Picture", contentDescription = "Comment Profile Picture",
modifier = Modifier.size(24.dp), modifier = Modifier
.size(24.dp)
.clip(RoundedCornerShape(24.dp)),
contentScale = ContentScale.Crop contentScale = ContentScale.Crop
) )
} }
@@ -276,7 +281,9 @@ fun LikeCommentNoticeItem(
context = context, context = context,
imageUrl = it.images[0].thumbnail, imageUrl = it.images[0].thumbnail,
contentDescription = "Post Thumbnail", contentDescription = "Post Thumbnail",
modifier = Modifier.size(48.dp), modifier = Modifier
.size(48.dp)
.clip(RoundedCornerShape(8.dp)),
contentScale = ContentScale.Crop contentScale = ContentScale.Crop
) )
} }
@@ -286,7 +293,9 @@ fun LikeCommentNoticeItem(
context = context, context = context,
imageUrl = it.images[0].thumbnail, imageUrl = it.images[0].thumbnail,
contentDescription = "Post Thumbnail", contentDescription = "Post Thumbnail",
modifier = Modifier.size(48.dp), modifier = Modifier
.size(48.dp)
.clip(RoundedCornerShape(8.dp)),
contentScale = ContentScale.Crop contentScale = ContentScale.Crop
) )
} }

View File

@@ -234,7 +234,7 @@ fun SignupScreen() {
} }
) { ) {
Image( Image(
painter = painterResource(id = R.drawable.rider_pro_nav_back), painter = painterResource(id = R.drawable.rider_pro_back_icon),
contentDescription = "Back", contentDescription = "Back",
modifier = Modifier.size(24.dp) modifier = Modifier.size(24.dp)
) )

View File

@@ -650,7 +650,7 @@ fun Header(
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Image( Image(
painter = painterResource(id = R.drawable.rider_pro_nav_back), // Replace with your image resource painter = painterResource(id = R.drawable.rider_pro_back_icon), // Replace with your image resource
contentDescription = "Back", contentDescription = "Back",
modifier = Modifier modifier = Modifier
.noRippleClickable { .noRippleClickable {

View File

@@ -7,5 +7,6 @@
<color name="teal_700">#FF018786</color> <color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color> <color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color> <color name="white">#FFFFFFFF</color>
<color name="activity_background">#FFFFFFFF</color>
<color name="splash_background">#ED1C24</color> <color name="splash_background">#ED1C24</color>
</resources> </resources>

View File

@@ -2,11 +2,15 @@
<resources> <resources>
<style name="Theme.RiderPro" parent="android:Theme.Material.Light.NoActionBar" > <style name="Theme.RiderPro" parent="android:Theme.Material.Light.NoActionBar" >
<item name="android:windowNoTitle">true</item> <item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/activity_background</item>
</style> </style>
<style name="Theme.App.Starting" parent="Theme.SplashScreen"> <style name="Theme.App.Starting" parent="Theme.SplashScreen">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item> <item name="android:windowNoTitle">true</item>
<item name="windowSplashScreenBackground">@color/splash_background</item> <item name="windowSplashScreenBackground">@color/splash_background</item>
<item name="windowSplashScreenAnimatedIcon">@mipmap/rider_pro_logo_red_round</item> <item name="windowSplashScreenAnimatedIcon">@mipmap/rider_pro_logo_red_round</item>
<item name="postSplashScreenTheme">@style/Theme.RiderPro</item> <item name="postSplashScreenTheme">@style/Theme.RiderPro</item>
<item name="android:windowBackground">@color/activity_background</item>
</style> </style>
</resources> </resources>

View File

@@ -22,6 +22,7 @@ places = "3.3.0"
googleid = "1.1.1" googleid = "1.1.1"
identityCredential = "20231002" identityCredential = "20231002"
lifecycleProcess = "2.8.4" lifecycleProcess = "2.8.4"
rendering = "1.17.1"
[libraries] [libraries]
accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanistSystemuicontroller" } accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanistSystemuicontroller" }
@@ -55,6 +56,7 @@ places = { module = "com.google.android.libraries.places:places", version.ref =
googleid = { group = "com.google.android.libraries.identity.googleid", name = "googleid", version.ref = "googleid" } googleid = { group = "com.google.android.libraries.identity.googleid", name = "googleid", version.ref = "googleid" }
identity-credential = { group = "com.android.identity", name = "identity-credential", version.ref = "identityCredential" } identity-credential = { group = "com.android.identity", name = "identity-credential", version.ref = "identityCredential" }
androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "lifecycleProcess" } androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "lifecycleProcess" }
rendering = { group = "com.google.ar.sceneform", name = "rendering", version.ref = "rendering" }
[plugins] [plugins]
android-application = { id = "com.android.application", version.ref = "agp" } android-application = { id = "com.android.application", version.ref = "agp" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }