diff --git a/app/src/main/kotlin/androidx/compose/material3/SearchBar2.kt b/app/src/main/kotlin/androidx/compose/material3/SearchBar2.kt index 8b91c0f18..334fa1c6a 100644 --- a/app/src/main/kotlin/androidx/compose/material3/SearchBar2.kt +++ b/app/src/main/kotlin/androidx/compose/material3/SearchBar2.kt @@ -419,7 +419,7 @@ private fun SearchBarInputField( keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search), keyboardActions = KeyboardActions(onSearch = { onSearch() }), interactionSource = interactionSource, - decorationBox = @Composable { innerTextField -> + decorator = @Composable { innerTextField -> TextFieldDefaults.DecorationBox( value = state.text.toString(), innerTextField = innerTextField, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/SearchLayout.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/SearchLayout.kt index c0aa75c95..fbd55daf5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/SearchLayout.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/SearchLayout.kt @@ -17,8 +17,8 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ElevatedCard import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.SecondaryTabRow import androidx.compose.material3.Tab -import androidx.compose.material3.TabRow import androidx.compose.material3.Text import androidx.compose.material3.windowsizeclass.WindowWidthSizeClass import androidx.compose.material3.windowsizeclass.calculateWindowSizeClass @@ -137,7 +137,7 @@ class SearchLayout @JvmOverloads constructor( } } } - TabRow( + SecondaryTabRow( selectedTabIndex = if (vm.isNormalMode) 0 else 1, divider = {}, ) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsFragment.kt index 914dd4d2d..5adb0d3e6 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsFragment.kt @@ -59,6 +59,8 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults +import androidx.compose.material3.pulltorefresh.PullToRefreshContainer +import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect @@ -123,6 +125,7 @@ import com.hippo.ehviewer.util.findActivity import com.hippo.ehviewer.util.getParcelableCompat import com.ramcosta.composedestinations.annotation.Destination import eu.kanade.tachiyomi.util.lang.launchIO +import eu.kanade.tachiyomi.util.lang.withIOContext import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.system.logcat import kotlin.math.roundToInt @@ -300,7 +303,16 @@ fun GalleryCommentsScreen(galleryDetail: GalleryDetail, navigator: NavController ) { paddingValues -> val keylineMargin = dimensionResource(id = R.dimen.keyline_margin) var editTextMeasured by remember { mutableStateOf(MinimumContentPaddingEditText) } - Box(modifier = Modifier.fillMaxSize().imePadding()) { + val refreshState = rememberPullToRefreshState() + if (refreshState.isRefreshing) { + LaunchedEffect(Unit) { + runSuspendCatching { + withIOContext { refreshComment(true) } + } + refreshState.endRefresh() + } + } + Box(modifier = Modifier.fillMaxSize().imePadding().nestedScroll(refreshState.nestedScrollConnection)) { val additionalPadding = if (commenting) { editTextMeasured } else { @@ -419,6 +431,10 @@ fun GalleryCommentsScreen(galleryDetail: GalleryDetail, navigator: NavController } } } + PullToRefreshContainer( + state = refreshState, + modifier = Modifier.align(Alignment.TopCenter).padding(top = paddingValues.calculateTopPadding()), + ) Surface( modifier = Modifier.align(Alignment.BottomCenter).layout { measurable, constraints -> val origin = measurable.measure(constraints) diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/CircularProgressIndicator.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/CircularProgressIndicator.kt index 19f6714f3..d236d6f6e 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/CircularProgressIndicator.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/CircularProgressIndicator.kt @@ -46,7 +46,7 @@ fun CombinedCircularProgressIndicator(progress: Float) { label = "rotation", ) CircularProgressIndicator( - progress = animatedProgress, + progress = { animatedProgress }, modifier = Modifier.rotate(rotation), ) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f51bc0182..1418f66f1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -84,7 +84,7 @@ compose-bom = { module = "dev.chrisbanes.compose:compose-bom", version.ref = "co # For renovate compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "compose-compiler" } compose-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" } -compose-material3 = { module = "androidx.compose.material3:material3" } +compose-material3 = { module = "androidx.compose.material3:material3", version = "1.2.0-SNAPSHOT" } compose-material3-windowsizeclass = { module = "androidx.compose.material3:material3-window-size-class" } compose-ui-util = { module = "androidx.compose.ui:ui-util" } compose-ui-viewbinding = { module = "androidx.compose.ui:ui-viewbinding" } diff --git a/settings.gradle.kts b/settings.gradle.kts index 8c28e8012..675b71ce3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,6 +15,7 @@ dependencyResolutionManagement { maven("https://jcenter.bintray.com") maven("https://jitpack.io") maven("https://androidx.dev/storage/compose-compiler/repository/") + maven("https://androidx.dev/snapshots/builds/11101851/artifacts/repository") } }