Ver Fonte

Migrate to standard M3 TabIndicator

arkon há 1 ano atrás
pai
commit
0af4703b78

+ 0 - 2
app/src/main/java/eu/kanade/presentation/components/TabbedDialog.kt

@@ -30,7 +30,6 @@ import androidx.compose.ui.util.fastForEachIndexed
 import eu.kanade.tachiyomi.R
 import kotlinx.coroutines.launch
 import tachiyomi.presentation.core.components.HorizontalPager
-import tachiyomi.presentation.core.components.material.TabIndicator
 import tachiyomi.presentation.core.components.material.TabText
 
 object TabbedDialogPaddings {
@@ -58,7 +57,6 @@ fun TabbedDialog(
                 PrimaryTabRow(
                     modifier = Modifier.weight(1f),
                     selectedTabIndex = pagerState.currentPage,
-                    indicator = { TabIndicator(it[pagerState.currentPage], pagerState.currentPageOffsetFraction) },
                     divider = {},
                 ) {
                     tabTitles.fastForEachIndexed { index, tab ->

+ 0 - 2
app/src/main/java/eu/kanade/presentation/components/TabbedScreen.kt

@@ -24,7 +24,6 @@ import androidx.compose.ui.res.stringResource
 import kotlinx.coroutines.launch
 import tachiyomi.presentation.core.components.HorizontalPager
 import tachiyomi.presentation.core.components.material.Scaffold
-import tachiyomi.presentation.core.components.material.TabIndicator
 import tachiyomi.presentation.core.components.material.TabText
 
 @Composable
@@ -69,7 +68,6 @@ fun TabbedScreen(
         ) {
             PrimaryTabRow(
                 selectedTabIndex = state.currentPage,
-                indicator = { TabIndicator(it[state.currentPage], state.currentPageOffsetFraction) },
             ) {
                 tabs.forEachIndexed { index, tab ->
                     Tab(

+ 0 - 2
app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt

@@ -10,7 +10,6 @@ import androidx.compose.runtime.Composable
 import androidx.compose.ui.unit.dp
 import eu.kanade.presentation.category.visualName
 import tachiyomi.domain.category.model.Category
-import tachiyomi.presentation.core.components.material.TabIndicator
 import tachiyomi.presentation.core.components.material.TabText
 
 @Composable
@@ -24,7 +23,6 @@ internal fun LibraryTabs(
         PrimaryScrollableTabRow(
             selectedTabIndex = pagerState.currentPage,
             edgePadding = 0.dp,
-            indicator = { TabIndicator(it[pagerState.currentPage], pagerState.currentPageOffsetFraction) },
             // TODO: use default when width is fixed upstream
             // https://issuetracker.google.com/issues/242879624
             divider = {},

+ 0 - 48
presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Tabs.kt

@@ -1,63 +1,15 @@
 package tachiyomi.presentation.core.components.material
 
-import androidx.compose.animation.core.Spring
-import androidx.compose.animation.core.animateDpAsState
-import androidx.compose.animation.core.spring
 import androidx.compose.foundation.isSystemInDarkTheme
 import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.offset
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.width
-import androidx.compose.foundation.layout.wrapContentSize
-import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.TabPosition
-import androidx.compose.material3.TabRowDefaults.SecondaryIndicator
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
 import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.composed
-import androidx.compose.ui.draw.clip
 import androidx.compose.ui.text.style.TextOverflow
-import androidx.compose.ui.unit.IntOffset
-import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
 import tachiyomi.presentation.core.components.Pill
 
-private fun Modifier.tabIndicatorOffset(
-    currentTabPosition: TabPosition,
-    currentPageOffsetFraction: Float,
-) = fillMaxWidth()
-    .wrapContentSize(Alignment.BottomStart)
-    .composed {
-        val currentTabWidth by animateDpAsState(
-            targetValue = currentTabPosition.width,
-            animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
-            label = "currentTabWidth",
-        )
-        val offset by animateDpAsState(
-            targetValue = currentTabPosition.left + (currentTabWidth * currentPageOffsetFraction),
-            animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
-            label = "offset",
-        )
-        Modifier
-            .offset { IntOffset(x = offset.roundToPx(), y = 0) }
-            .width(currentTabWidth)
-    }
-
-@Composable
-fun TabIndicator(currentTabPosition: TabPosition, currentPageOffsetFraction: Float) {
-    SecondaryIndicator(
-        modifier = Modifier
-            .tabIndicatorOffset(currentTabPosition, currentPageOffsetFraction)
-            .padding(horizontal = 8.dp)
-            .clip(RoundedCornerShape(topStart = 3.dp, topEnd = 3.dp)),
-    )
-}
-
 @Composable
 fun TabText(text: String, badgeCount: Int? = null) {
     val pillAlpha = if (isSystemInDarkTheme()) 0.12f else 0.08f