diff --git a/app/build.gradle b/app/build.gradle index 968c573a..70d5b905 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -148,9 +148,6 @@ dependencies { implementation "com.google.accompanist:accompanist-insets-ui:$accompanist_version" implementation "com.google.accompanist:accompanist-systemuicontroller:$accompanist_version" implementation "com.google.accompanist:accompanist-placeholder-material:$accompanist_version" - implementation "com.google.accompanist:accompanist-pager:$accompanist_version" - implementation "com.google.accompanist:accompanist-pager-indicators:$accompanist_version" - implementation "com.google.accompanist:accompanist-swiperefresh:$accompanist_version" implementation "com.google.accompanist:accompanist-webview:$accompanist_version" def sketch_version = "3.2.0" diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/ForumPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/ForumPage.kt index 285507d6..6ddb678f 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/ForumPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/ForumPage.kt @@ -6,6 +6,7 @@ import android.graphics.Typeface import android.net.Uri import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.PressInteraction @@ -25,6 +26,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.rememberLazyListState +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.material.ButtonDefaults @@ -75,9 +78,6 @@ import androidx.datastore.preferences.core.intPreferencesKey import com.germainkevin.collapsingtopbar.CollapsingTopBar import com.germainkevin.collapsingtopbar.CollapsingTopBarDefaults import com.germainkevin.collapsingtopbar.rememberCollapsingTopBarScrollBehavior -import com.google.accompanist.pager.ExperimentalPagerApi -import com.google.accompanist.pager.HorizontalPager -import com.google.accompanist.pager.rememberPagerState import com.google.accompanist.placeholder.PlaceholderHighlight import com.google.accompanist.placeholder.material.fade import com.google.accompanist.placeholder.material.placeholder @@ -347,7 +347,7 @@ private suspend fun sendToDesktop( ) } -@OptIn(ExperimentalPagerApi::class, ExperimentalTextApi::class) +@OptIn(ExperimentalTextApi::class, ExperimentalFoundationApi::class) @Destination( deepLinks = [ DeepLink(uriPattern = "tblite://forum/{forumName}") @@ -815,7 +815,7 @@ fun ForumPage( Column(modifier = Modifier.padding(contentPadding)) { if (forum != null) { HorizontalPager( - count = 2, + pageCount = 2, state = pagerState, modifier = Modifier.fillMaxSize(), verticalAlignment = Alignment.Top, diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/history/HistoryPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/history/HistoryPage.kt index 91cc2d95..12443157 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/history/HistoryPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/history/HistoryPage.kt @@ -1,7 +1,10 @@ package com.huanchengfly.tieba.post.ui.page.history +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.width +import androidx.compose.foundation.pager.HorizontalPager +import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material.Icon import androidx.compose.material.IconButton import androidx.compose.material.Tab @@ -20,9 +23,6 @@ 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.pager.ExperimentalPagerApi -import com.google.accompanist.pager.HorizontalPager -import com.google.accompanist.pager.rememberPagerState import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.ui.common.theme.compose.ExtendedTheme import com.huanchengfly.tieba.post.ui.page.ProvideNavigator @@ -39,7 +39,7 @@ import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.launch -@OptIn(ExperimentalPagerApi::class) +@OptIn(ExperimentalFoundationApi::class) @Destination( deepLinks = [ DeepLink(uriPattern = "tblite://history") @@ -141,7 +141,7 @@ fun HistoryPage( ) { ProvideNavigator(navigator = navigator) { HorizontalPager( - count = 2, + pageCount = 2, state = pagerState, modifier = Modifier.fillMaxSize(), verticalAlignment = Alignment.Top, diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/MainPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/MainPage.kt index 8549f873..929b19b2 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/MainPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/MainPage.kt @@ -2,10 +2,13 @@ package com.huanchengfly.tieba.post.ui.page.main import androidx.activity.compose.BackHandler import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.pager.HorizontalPager +import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material.Scaffold import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.AccountCircle @@ -27,9 +30,6 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource -import com.google.accompanist.pager.ExperimentalPagerApi -import com.google.accompanist.pager.HorizontalPager -import com.google.accompanist.pager.rememberPagerState import com.huanchengfly.tieba.post.LocalNotificationCountFlow import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.arch.BaseComposeActivity.Companion.LocalWindowSizeClass @@ -91,7 +91,7 @@ private fun NavigationWrapper( } } -@OptIn(ExperimentalPagerApi::class) +@OptIn(ExperimentalFoundationApi::class) @RootNavGraph(start = true) @Destination @Composable @@ -243,7 +243,7 @@ fun MainPage( ) { paddingValues -> HorizontalPager( contentPadding = paddingValues, - count = navigationItems.size, + pageCount = navigationItems.size, state = pagerState, key = { navigationItems[it].title }, modifier = Modifier.fillMaxSize(), diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/ExplorePage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/ExplorePage.kt index 55a068f5..caa78535 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/ExplorePage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/ExplorePage.kt @@ -1,7 +1,10 @@ package com.huanchengfly.tieba.post.ui.page.main.explore +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.width +import androidx.compose.foundation.pager.HorizontalPager +import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material.Scaffold import androidx.compose.material.Tab import androidx.compose.material.TabRow @@ -17,9 +20,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.google.accompanist.pager.ExperimentalPagerApi -import com.google.accompanist.pager.HorizontalPager -import com.google.accompanist.pager.rememberPagerState import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.activities.NewSearchActivity import com.huanchengfly.tieba.post.arch.onEvent @@ -39,7 +39,7 @@ import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.launch -@OptIn(ExperimentalPagerApi::class) +@OptIn(ExperimentalFoundationApi::class) @Composable fun ExplorePage( eventFlow: Flow, @@ -127,7 +127,7 @@ fun ExplorePage( ) { paddingValues -> HorizontalPager( contentPadding = paddingValues, - count = pages.size, + pageCount = pages.size, state = pagerState, key = { pages[it].first }, modifier = Modifier.fillMaxSize(), diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/notifications/NotificationsPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/notifications/NotificationsPage.kt index 55d2eeb1..9b041405 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/notifications/NotificationsPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/notifications/NotificationsPage.kt @@ -1,6 +1,9 @@ package com.huanchengfly.tieba.post.ui.page.main.notifications +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.pager.HorizontalPager +import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material.Scaffold import androidx.compose.material.Tab import androidx.compose.material.TabRow @@ -14,9 +17,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource -import com.google.accompanist.pager.ExperimentalPagerApi -import com.google.accompanist.pager.HorizontalPager -import com.google.accompanist.pager.rememberPagerState import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.activities.NewSearchActivity import com.huanchengfly.tieba.post.goToActivity @@ -29,7 +29,7 @@ import com.huanchengfly.tieba.post.ui.widgets.compose.Toolbar import com.huanchengfly.tieba.post.ui.widgets.compose.accountNavIconIfCompact import kotlinx.coroutines.launch -@OptIn(ExperimentalPagerApi::class) +@OptIn(ExperimentalFoundationApi::class) @Composable fun NotificationsPage() { val context = LocalContext.current @@ -88,7 +88,7 @@ fun NotificationsPage() { ) { paddingValues -> HorizontalPager( contentPadding = paddingValues, - count = pages.size, + pageCount = pages.size, state = pagerState, key = { pages[it].first }, modifier = Modifier.fillMaxSize(), 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 809aa917..890f4106 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 @@ -1,5 +1,6 @@ package com.huanchengfly.tieba.post.ui.page.settings.block +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -13,6 +14,8 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.pager.HorizontalPager +import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material.DropdownMenuItem import androidx.compose.material.Icon import androidx.compose.material.MaterialTheme @@ -39,9 +42,6 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.google.accompanist.pager.ExperimentalPagerApi -import com.google.accompanist.pager.HorizontalPager -import com.google.accompanist.pager.rememberPagerState import com.google.accompanist.placeholder.material.placeholder import com.google.gson.reflect.TypeToken import com.huanchengfly.tieba.post.R @@ -65,7 +65,7 @@ import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlinx.coroutines.launch -@OptIn(ExperimentalPagerApi::class) +@OptIn(ExperimentalFoundationApi::class) @Destination @Composable fun BlockSettingsPage( @@ -193,7 +193,7 @@ fun BlockSettingsPage( ) } HorizontalPager( - count = 2, + pageCount = 2, state = pagerState, modifier = Modifier.fillMaxSize(), contentPadding = paddingValues, diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Tabs.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Tabs.kt index 603dafb0..f327a129 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Tabs.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Tabs.kt @@ -1,6 +1,7 @@ package com.huanchengfly.tieba.post.ui.widgets.compose import androidx.compose.animation.core.animateDpAsState +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth @@ -8,6 +9,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.foundation.pager.PagerState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.LocalContentColor import androidx.compose.material.TabPosition @@ -18,10 +20,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.lerp -import com.google.accompanist.pager.ExperimentalPagerApi -import com.google.accompanist.pager.PagerState -@OptIn(ExperimentalPagerApi::class) +@OptIn(ExperimentalFoundationApi::class) @Composable fun PagerTabIndicator( pagerState: PagerState, @@ -33,7 +33,7 @@ fun PagerTabIndicator( val currentTab = tabPositions[currentPage] val prevTab = tabPositions.getOrNull(currentPage - 1) val nextTab = tabPositions.getOrNull(currentPage + 1) - val fraction = pagerState.currentPageOffset + val fraction = pagerState.currentPageOffsetFraction val currentTabLeft = currentTab.left + (currentTab.width / 2 - tabWidth / 2) val indicatorOffset = if (fraction > 0 && nextTab != null) { val nextTabLeft = nextTab.left + (nextTab.width / 2 - tabWidth / 2)