diff --git a/app/src/main/kotlin/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt b/app/src/main/kotlin/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt index c1ab431c8..58d16d66c 100644 --- a/app/src/main/kotlin/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt +++ b/app/src/main/kotlin/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt @@ -6,6 +6,7 @@ import android.graphics.drawable.ShapeDrawable import android.os.Parcelable import android.util.AttributeSet import androidx.core.graphics.ColorUtils +import eu.kanade.tachiyomi.util.system.dpToPx import rikka.core.res.resolveColor @SuppressLint("PrivateResource") @@ -22,6 +23,7 @@ class ThemedSwipeRefreshLayout @JvmOverloads constructor( val backgroundColor = ColorUtils.compositeColors(overlayColor, surfaceColor) (mCircleView.background as ShapeDrawable).paint.color = backgroundColor setColorSchemeColors(context.theme.resolveColor(com.google.android.material.R.attr.colorAccent)) + setProgressViewOffset(true, 64.dpToPx, 128.dpToPx) } override fun onSaveInstanceState(): Parcelable? { 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 45f4be69d..c0aa75c95 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 @@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ElevatedCard @@ -32,6 +33,7 @@ import androidx.compose.ui.platform.AbstractComposeView import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner @@ -81,7 +83,10 @@ class SearchLayout @JvmOverloads constructor( } } Mdc3Theme { - Column(modifier = Modifier.imePadding().verticalScroll(rememberScrollState()).navigationBarsPadding().padding(horizontal = dimensionResource(id = R.dimen.search_layout_margin_h))) { + Column( + modifier = Modifier.imePadding().statusBarsPadding().padding(top = 72.dp) + .verticalScroll(rememberScrollState()).navigationBarsPadding().padding(horizontal = dimensionResource(id = R.dimen.search_layout_margin_h)), + ) { AnimatedVisibility(visible = vm.isNormalMode) { ElevatedCard(modifier = Modifier.fillMaxWidth().padding(vertical = dimensionResource(id = R.dimen.search_layout_margin_v))) { Column(modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.search_category_padding_h), vertical = dimensionResource(id = R.dimen.search_category_padding_v))) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt index e5cda39b9..b0c121dd8 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt @@ -296,8 +296,6 @@ class DownloadsScene : layoutManager.setStrategy(STRATEGY_MIN_SIZE) layoutManager.supportsPredictiveItemAnimations = false recyclerView.layoutManager = layoutManager - recyclerView.clipToPadding = false - recyclerView.clipChildren = false val interval = resources.getDimensionPixelOffset(R.dimen.gallery_list_interval) val decoration = object : RecyclerView.ItemDecoration() { override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt index d4d35e3b1..a54852047 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt @@ -89,7 +89,6 @@ import com.hippo.ehviewer.util.lazyMut import com.hippo.ehviewer.util.setValue import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withIOContext -import eu.kanade.tachiyomi.util.system.dpToPx import java.time.Instant import java.time.LocalDateTime import java.time.ZoneId @@ -329,7 +328,6 @@ class FavoritesScene : SearchBarScene() { drawable.setBounds(0, 0, drawable.intrinsicWidth, drawable.intrinsicHeight) binding.tip.setCompoundDrawables(null, drawable, null, null) binding.tip.setOnClickListener { mAdapter?.retry() } - binding.refreshLayout.setProgressViewOffset(true, 0, 64.dpToPx) binding.refreshLayout.setOnRefreshListener { switchFav(urlBuilder.favCat) } val transition = ViewTransition(binding.refreshLayout, binding.progress, binding.tip) val empty = getString(R.string.gallery_list_empty_hit) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt index 34e90582f..7edac0937 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt @@ -102,7 +102,6 @@ import com.hippo.ehviewer.util.setValue 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.dpToPx import java.io.File import java.time.Instant import java.time.LocalDateTime @@ -321,7 +320,6 @@ class GalleryListScene : SearchBarScene() { drawable.setBounds(0, 0, drawable.intrinsicWidth, drawable.intrinsicHeight) binding.tip.setCompoundDrawables(null, drawable, null, null) binding.tip.setOnClickListener { mAdapter?.retry() } - binding.refreshLayout.setProgressViewOffset(true, 0, 64.dpToPx) binding.refreshLayout.setOnRefreshListener { mUrlBuilder.setIndex(null, true) mUrlBuilder.mJumpTo = null diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt index 51babebac..b477abb2f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt @@ -14,9 +14,9 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.asPaddingValues import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.imePadding +import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.navigationBars -import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.union import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.text2.input.clearText @@ -265,8 +265,7 @@ fun SearchBarScreen( }, ) { LazyColumn( - modifier = Modifier.imePadding(), - contentPadding = WindowInsets.navigationBars.asPaddingValues(), + contentPadding = WindowInsets.navigationBars.union(WindowInsets.ime).asPaddingValues(), ) { items(mSuggestionList) { ListItem( @@ -339,6 +338,7 @@ abstract class SearchBarScene : BaseScene() { return ComposeWithMD3 { val density = LocalDensity.current val fabPadding = with(density) { 16.dp.roundToPx() } + val margin = with(density) { 8.dp.roundToPx() } SearchBarScreen( initialQuery = initialQuery, hint = hint, @@ -352,19 +352,19 @@ abstract class SearchBarScene : BaseScene() { TrailingIcon() }, ) { contentPadding -> + val topPadding = with(density) { contentPadding.calculateTopPadding().roundToPx() } val bottomPadding = with(density) { contentPadding.calculateBottomPadding().roundToPx() } AndroidViewBinding( - modifier = Modifier.padding(top = contentPadding.calculateTopPadding()).fillMaxSize(), + modifier = Modifier.fillMaxSize(), factory = { inflater, parent, _ -> - parent.clipChildren = false onCreateViewWithToolbar(inflater, parent, savedInstanceState).apply { recyclerView.addOnScrollListener(onScrollListener) } }, ) { fabLayout.updatePadding(bottom = fabPadding + bottomPadding) - fastScroller.updatePadding(bottom = bottomPadding) - recyclerView.updatePadding(bottom = bottomPadding) + fastScroller.updatePadding(top = topPadding + margin, bottom = bottomPadding) + recyclerView.updatePadding(top = topPadding + margin, bottom = bottomPadding) } } } diff --git a/app/src/main/res/layout/scene_download.xml b/app/src/main/res/layout/scene_download.xml index 01484d63e..4177f0afa 100644 --- a/app/src/main/res/layout/scene_download.xml +++ b/app/src/main/res/layout/scene_download.xml @@ -21,13 +21,13 @@ android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" - android:clipChildren="false" app:layout_behavior="@string/searchbar_scrolling_view_behavior"> diff --git a/app/src/main/res/layout/widget_content_layout.xml b/app/src/main/res/layout/widget_content_layout.xml index afe053012..55d0128e7 100644 --- a/app/src/main/res/layout/widget_content_layout.xml +++ b/app/src/main/res/layout/widget_content_layout.xml @@ -19,7 +19,6 @@ android:id="@+id/content_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:clipChildren="false" app:layout_behavior="@string/searchbar_scrolling_view_behavior"> + android:layout_height="match_parent">