From cab0283f7c89f0c02e9204b1dbb3dc903d536976 Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Fri, 6 Jan 2023 11:31:53 +0800 Subject: [PATCH] =?UTF-8?q?pref:=20=E5=8A=A0=E8=BD=BD=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=94=B9=E4=B8=BA=20false?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../editprofile/view/EditProfileActivity.kt | 5 +- .../ui/page/hottopic/list/HotTopicListPage.kt | 2 +- .../page/main/explore/concern/ConcernPage.kt | 2 +- .../post/ui/page/main/explore/hot/HotPage.kt | 2 +- .../explore/personalized/PersonalizedPage.kt | 2 +- .../tieba/post/ui/page/main/home/HomePage.kt | 16 ++---- .../list/NotificationsListPage.kt | 50 +++++++++++++++---- .../page/settings/block/BlockSettingsPage.kt | 3 +- 8 files changed, 52 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/editprofile/view/EditProfileActivity.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/editprofile/view/EditProfileActivity.kt index 2804aca0..c02e2f2c 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/editprofile/view/EditProfileActivity.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/editprofile/view/EditProfileActivity.kt @@ -399,7 +399,10 @@ fun PageEditProfile( viewModel: EditProfileViewModel, onBackPressed: () -> Unit ) { - val isLoading by viewModel.uiState.collectPartialAsState(EditProfileState::isLoading, initial = true) + val isLoading by viewModel.uiState.collectPartialAsState( + EditProfileState::isLoading, + initial = false + ) if (!isLoading) { val uiState by viewModel.uiState.collectAsState() var sex by remember { mutableStateOf(uiState.sex) } diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/hottopic/list/HotTopicListPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/hottopic/list/HotTopicListPage.kt index af096ad9..0232750c 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/hottopic/list/HotTopicListPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/hottopic/list/HotTopicListPage.kt @@ -164,7 +164,7 @@ fun HotTopicListPage( ) { val isRefreshing by viewModel.uiState.collectPartialAsState( prop1 = HotTopicListUiState::isRefreshing, - initial = true + initial = false ) val topicList by viewModel.uiState.collectPartialAsState( prop1 = HotTopicListUiState::topicList, diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/concern/ConcernPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/concern/ConcernPage.kt index ed24fa43..005ccdad 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/concern/ConcernPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/concern/ConcernPage.kt @@ -38,7 +38,7 @@ fun ConcernPage( val context = LocalContext.current val isRefreshing by viewModel.uiState.collectPartialAsState( prop1 = ConcernUiState::isRefreshing, - initial = true + initial = false ) val isLoadingMore by viewModel.uiState.collectPartialAsState( prop1 = ConcernUiState::isLoadingMore, diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/hot/HotPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/hot/HotPage.kt index 70b54924..169531d6 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/hot/HotPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/hot/HotPage.kt @@ -78,7 +78,7 @@ fun HotPage( val navigator = LocalNavigator.current val isLoading by viewModel.uiState.collectPartialAsState( prop1 = HotUiState::isRefreshing, - initial = true + initial = false ) val topicList by viewModel.uiState.collectPartialAsState( prop1 = HotUiState::topicList, diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedPage.kt index 7dd148ae..5db9298a 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedPage.kt @@ -70,7 +70,7 @@ fun PersonalizedPage( val context = LocalContext.current val isRefreshing by viewModel.uiState.collectPartialAsState( prop1 = PersonalizedUiState::isRefreshing, - initial = true + initial = false ) val isLoadingMore by viewModel.uiState.collectPartialAsState( prop1 = PersonalizedUiState::isLoadingMore, diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/home/HomePage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/home/HomePage.kt index 7be9f260..eb0e0faf 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/home/HomePage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/home/HomePage.kt @@ -214,6 +214,7 @@ private fun ForumItem( showAvatar: Boolean, isTopForum: Boolean = false ) { + val navigator = LocalNavigator.current val context = LocalContext.current val menuState = rememberMenuState() var willUnfollow by remember { @@ -276,18 +277,7 @@ private fun ForumItem( } }, onClick = { - PreloadUtil.startActivityWithPreload( - context, - Intent( - context, - ForumActivity::class.java - ).putExtra(ForumActivity.EXTRA_FORUM_NAME, item.forumName), - ForumLoader( - item.forumName, - 1, - getSortType(context, item.forumName) - ) - ) + navigator.navigate(ForumPageDestination(item.forumName)) } ) { Row( @@ -364,7 +354,7 @@ fun HomePage( val context = LocalContext.current val isLoading by viewModel.uiState.collectPartialAsState( prop1 = HomeUiState::isLoading, - initial = true + initial = false ) val forums by viewModel.uiState.collectPartialAsState( prop1 = HomeUiState::forums, diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/notifications/list/NotificationsListPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/notifications/list/NotificationsListPage.kt index 3ea87d17..ac1db019 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/notifications/list/NotificationsListPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/notifications/list/NotificationsListPage.kt @@ -2,21 +2,31 @@ package com.huanchengfly.tieba.post.ui.page.main.notifications.list import androidx.compose.foundation.background import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.Text +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.getValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.google.accompanist.swiperefresh.SwipeRefresh -import com.google.accompanist.swiperefresh.rememberSwipeRefreshState import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.activities.FloorActivity import com.huanchengfly.tieba.post.activities.ThreadActivity @@ -24,10 +34,16 @@ import com.huanchengfly.tieba.post.activities.UserActivity import com.huanchengfly.tieba.post.arch.collectPartialAsState import com.huanchengfly.tieba.post.arch.pageViewModel import com.huanchengfly.tieba.post.ui.common.theme.compose.ExtendedTheme -import com.huanchengfly.tieba.post.ui.widgets.compose.* +import com.huanchengfly.tieba.post.ui.widgets.compose.Avatar +import com.huanchengfly.tieba.post.ui.widgets.compose.EmoticonText +import com.huanchengfly.tieba.post.ui.widgets.compose.LazyLoad +import com.huanchengfly.tieba.post.ui.widgets.compose.LoadMoreLayout +import com.huanchengfly.tieba.post.ui.widgets.compose.Sizes +import com.huanchengfly.tieba.post.ui.widgets.compose.UserHeader import com.huanchengfly.tieba.post.utils.DateTimeUtils import com.huanchengfly.tieba.post.utils.StringUtil +@OptIn(ExperimentalMaterialApi::class) @Composable fun NotificationsListPage( type: NotificationsType, @@ -43,7 +59,7 @@ fun NotificationsListPage( val context = LocalContext.current val isRefreshing by viewModel.uiState.collectPartialAsState( prop1 = NotificationsListUiState::isRefreshing, - initial = true + initial = false ) val isLoadingMore by viewModel.uiState.collectPartialAsState( prop1 = NotificationsListUiState::isLoadingMore, @@ -61,10 +77,11 @@ fun NotificationsListPage( prop1 = NotificationsListUiState::currentPage, initial = 1 ) - val swipeRefreshState = rememberSwipeRefreshState(isRefreshing = isRefreshing) - SwipeRefresh( - state = swipeRefreshState, - onRefresh = { viewModel.send(NotificationsListUiIntent.Refresh) }, + val pullRefreshState = rememberPullRefreshState( + refreshing = isRefreshing, + onRefresh = { viewModel.send(NotificationsListUiIntent.Refresh) }) + Box( + modifier = Modifier.pullRefresh(pullRefreshState) ) { LoadMoreLayout( isLoading = isLoadingMore, @@ -125,11 +142,16 @@ fun NotificationsListPage( Spacer(modifier = Modifier.height(16.dp)) EmoticonText( text = quoteText, - modifier = Modifier.fillMaxWidth() + modifier = Modifier + .fillMaxWidth() .clip(RoundedCornerShape(6.dp)) .clickable { if ("1" == it.isFloor && it.quotePid != null) { - FloorActivity.launch(context, it.threadId!!, postId = it.quotePid) + FloorActivity.launch( + context, + it.threadId!!, + postId = it.quotePid + ) } else { ThreadActivity.launch(context, it.threadId!!) } @@ -144,5 +166,11 @@ fun NotificationsListPage( } } } + + PullRefreshIndicator( + refreshing = isRefreshing, + state = pullRefreshState, + modifier = Modifier.align(Alignment.TopCenter) + ) } } \ No newline at end of file diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/block/BlockSettingsPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/block/BlockSettingsPage.kt index a1c681b1..aaec6d6c 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/block/BlockSettingsPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/block/BlockSettingsPage.kt @@ -24,6 +24,7 @@ import androidx.compose.material.icons.outlined.AccountCircle import androidx.compose.material.icons.outlined.Block import androidx.compose.material.icons.outlined.CheckCircle import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -104,7 +105,7 @@ fun BlockSettingsPage( ) val isLoading by viewModel.uiState.collectPartialAsState( prop1 = BlockSettingsUiState::isLoading, - initial = true + initial = false ) MyScaffold( backgroundColor = Color.Transparent,