chore: 移动代码

This commit is contained in:
HuanCheng65 2023-01-06 11:27:34 +08:00
parent fd8f89153b
commit 657ef76505
No known key found for this signature in database
GPG Key ID: E9031EF91A805148
2 changed files with 46 additions and 21 deletions

View File

@ -21,11 +21,15 @@ import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material.Divider import androidx.compose.material.Divider
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.Icon import androidx.compose.material.Icon
import androidx.compose.material.Scaffold import androidx.compose.material.Scaffold
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.AccountCircle import androidx.compose.material.icons.rounded.AccountCircle
import androidx.compose.material.pullrefresh.PullRefreshIndicator
import androidx.compose.material.pullrefresh.pullRefresh
import androidx.compose.material.pullrefresh.rememberPullRefreshState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
@ -38,12 +42,9 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import com.google.accompanist.placeholder.placeholder import com.google.accompanist.placeholder.placeholder
import com.google.accompanist.swiperefresh.SwipeRefresh
import com.google.accompanist.swiperefresh.rememberSwipeRefreshState
import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.R
import com.huanchengfly.tieba.post.activities.AppThemeActivity import com.huanchengfly.tieba.post.activities.AppThemeActivity
import com.huanchengfly.tieba.post.activities.HistoryActivity import com.huanchengfly.tieba.post.activities.HistoryActivity
@ -59,25 +60,13 @@ import com.huanchengfly.tieba.post.ui.page.LocalNavigator
import com.huanchengfly.tieba.post.ui.page.destinations.AboutPageDestination import com.huanchengfly.tieba.post.ui.page.destinations.AboutPageDestination
import com.huanchengfly.tieba.post.ui.page.destinations.SettingsPageDestination import com.huanchengfly.tieba.post.ui.page.destinations.SettingsPageDestination
import com.huanchengfly.tieba.post.ui.widgets.compose.Avatar import com.huanchengfly.tieba.post.ui.widgets.compose.Avatar
import com.huanchengfly.tieba.post.ui.widgets.compose.HorizontalDivider
import com.huanchengfly.tieba.post.ui.widgets.compose.Sizes import com.huanchengfly.tieba.post.ui.widgets.compose.Sizes
import com.huanchengfly.tieba.post.ui.widgets.compose.Switch import com.huanchengfly.tieba.post.ui.widgets.compose.Switch
import com.huanchengfly.tieba.post.utils.CuidUtils import com.huanchengfly.tieba.post.utils.CuidUtils
import com.huanchengfly.tieba.post.utils.StringUtil import com.huanchengfly.tieba.post.utils.StringUtil
import com.huanchengfly.tieba.post.utils.ThemeUtil import com.huanchengfly.tieba.post.utils.ThemeUtil
@Composable
fun HorizontalDivider(
modifier: Modifier = Modifier,
color: Color = ExtendedTheme.colors.divider,
height: Dp = 16.dp,
width: Dp = 1.dp,
) {
Box(modifier = modifier
.height(height)
.width(width)
.background(color = color))
}
@Composable @Composable
private fun StatCardPlaceholder(modifier: Modifier = Modifier) { private fun StatCardPlaceholder(modifier: Modifier = Modifier) {
Row( Row(
@ -235,6 +224,7 @@ private fun LoginTipCard(modifier: Modifier = Modifier) {
} }
} }
@OptIn(ExperimentalMaterialApi::class)
@Composable @Composable
fun UserPage( fun UserPage(
viewModel: UserViewModel = pageViewModel<UserUiIntent, UserViewModel>( viewModel: UserViewModel = pageViewModel<UserUiIntent, UserViewModel>(
@ -246,7 +236,7 @@ fun UserPage(
val context = LocalContext.current val context = LocalContext.current
val isLoading by viewModel.uiState.collectPartialAsState( val isLoading by viewModel.uiState.collectPartialAsState(
prop1 = UserUiState::isLoading, prop1 = UserUiState::isLoading,
initial = true initial = false
) )
val account by viewModel.uiState.collectPartialAsState( val account by viewModel.uiState.collectPartialAsState(
prop1 = UserUiState::account, prop1 = UserUiState::account,
@ -258,12 +248,14 @@ fun UserPage(
.statusBarsPadding() .statusBarsPadding()
.fillMaxSize() .fillMaxSize()
) { contentPaddings -> ) { contentPaddings ->
SwipeRefresh( val pullRefreshState = rememberPullRefreshState(
state = rememberSwipeRefreshState(isRefreshing = isLoading), refreshing = isLoading,
onRefresh = { viewModel.send(UserUiIntent.Refresh) }, onRefresh = { viewModel.send(UserUiIntent.Refresh) })
Box(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.padding(contentPaddings), .padding(contentPaddings)
.pullRefresh(pullRefreshState),
) { ) {
Column( Column(
modifier = Modifier modifier = Modifier
@ -373,6 +365,12 @@ fun UserPage(
onClick = { navigator.navigate(AboutPageDestination) }, onClick = { navigator.navigate(AboutPageDestination) },
) )
} }
PullRefreshIndicator(
refreshing = isLoading,
state = pullRefreshState,
modifier = Modifier.align(Alignment.TopCenter)
)
} }
} }
} }

View File

@ -0,0 +1,27 @@
package com.huanchengfly.tieba.post.ui.widgets.compose
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.huanchengfly.tieba.post.ui.common.theme.compose.ExtendedTheme
@Composable
fun HorizontalDivider(
modifier: Modifier = Modifier,
color: Color = ExtendedTheme.colors.divider,
height: Dp = 16.dp,
width: Dp = 1.dp,
) {
Box(
modifier = modifier
.height(height)
.width(width)
.background(color = color)
)
}