From 695feef4a6e4a061c5490191cc6c44d254ef2822 Mon Sep 17 00:00:00 2001 From: Xtimms Date: Thu, 21 Apr 2022 20:15:59 +0300 Subject: [PATCH] Improve simple manga list --- .../ui/FavouritesContainerFragment.kt | 3 +- .../kotatsu/list/ui/MangaListFragment.kt | 8 +- .../list/ui/MangaSelectionDecoration.kt | 2 +- app/src/main/res/layout/fragment_list.xml | 5 +- app/src/main/res/layout/item_feed.xml | 28 +++--- app/src/main/res/layout/item_manga_list.xml | 89 +++++++++---------- 6 files changed, 68 insertions(+), 67 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt index 27ae2696d..72b0566b8 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt @@ -25,6 +25,7 @@ import org.koitharu.kotatsu.main.ui.AppBarOwner import org.koitharu.kotatsu.parsers.model.SortOrder import org.koitharu.kotatsu.utils.ext.getDisplayMessage import org.koitharu.kotatsu.utils.ext.measureHeight +import org.koitharu.kotatsu.utils.ext.resolveDp import java.util.* class FavouritesContainerFragment : @@ -85,7 +86,7 @@ class FavouritesContainerFragment : top = headerHeight - insets.top ) binding.pager.updatePadding( - top = -headerHeight + top = -headerHeight + resources.resolveDp(8) // 8 dp is needed so that the top of the list is not attached to tabs (visible when ActionMode is active) ) binding.tabs.apply { updatePadding( diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt index d0f5f9d78..4b8c2b570 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt @@ -20,6 +20,7 @@ import org.koitharu.kotatsu.base.ui.list.FitHeightGridLayoutManager import org.koitharu.kotatsu.base.ui.list.FitHeightLinearLayoutManager import org.koitharu.kotatsu.base.ui.list.PaginationScrollListener import org.koitharu.kotatsu.base.ui.list.decor.SpacingItemDecoration +import org.koitharu.kotatsu.base.ui.list.decor.TypedSpacingItemDecoration import org.koitharu.kotatsu.browser.cloudflare.CloudFlareDialog import org.koitharu.kotatsu.core.exceptions.CloudFlareProtectedException import org.koitharu.kotatsu.core.exceptions.resolve.ExceptionResolver @@ -243,8 +244,11 @@ abstract class MangaListFragment : ListMode.LIST -> { layoutManager = FitHeightLinearLayoutManager(context) val spacing = resources.getDimensionPixelOffset(R.dimen.list_spacing) - addItemDecoration(SpacingItemDecoration(spacing)) - updatePadding(left = spacing, right = spacing) + val decoration = TypedSpacingItemDecoration( + MangaListAdapter.ITEM_TYPE_MANGA_LIST to 0, + fallbackSpacing = spacing + ) + addItemDecoration(decoration) } ListMode.DETAILED_LIST -> { layoutManager = FitHeightLinearLayoutManager(context) diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaSelectionDecoration.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaSelectionDecoration.kt index 106d141f4..5c0623e55 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaSelectionDecoration.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaSelectionDecoration.kt @@ -51,7 +51,7 @@ class MangaSelectionDecoration(context: Context) : AbstractSelectionItemDecorati bounds: RectF, state: RecyclerView.State, ) { - val radius = (child as? CardView)?.radius ?: 0f + val radius = (child as? CardView)?.radius ?: 32f paint.color = fillColor paint.style = Paint.Style.FILL canvas.drawRoundRect(bounds, radius, radius, paint) diff --git a/app/src/main/res/layout/fragment_list.xml b/app/src/main/res/layout/fragment_list.xml index 75194b71d..6fd2271c0 100644 --- a/app/src/main/res/layout/fragment_list.xml +++ b/app/src/main/res/layout/fragment_list.xml @@ -13,7 +13,10 @@ android:layout_height="match_parent" android:clipToPadding="false" android:orientation="vertical" - android:padding="@dimen/grid_spacing_outer" + android:paddingLeft="@dimen/list_spacing" + android:paddingRight="@dimen/list_spacing" + android:paddingTop="@dimen/grid_spacing_outer" + android:paddingBottom="@dimen/grid_spacing_outer" app:fastScrollEnabled="true" tools:layoutManager="org.koitharu.kotatsu.base.ui.list.FitHeightLinearLayoutManager" tools:listitem="@layout/item_manga_list" /> diff --git a/app/src/main/res/layout/item_feed.xml b/app/src/main/res/layout/item_feed.xml index 7b29d3eee..1dcb660b8 100644 --- a/app/src/main/res/layout/item_feed.xml +++ b/app/src/main/res/layout/item_feed.xml @@ -9,17 +9,15 @@ android:clipChildren="false" android:padding="@dimen/list_spacing"> - @@ -28,13 +26,13 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" - android:layout_marginEnd="2dp" android:ellipsize="end" - android:singleLine="true" - android:textAppearance="?attr/textAppearanceBodyLarge" + android:maxLines="1" + android:textAppearance="?attr/textAppearanceBodyMedium" + app:layout_constraintBottom_toTopOf="@+id/textView_summary" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@id/imageView_cover" - app:layout_constraintTop_toTopOf="@id/imageView_cover" + app:layout_constraintStart_toEndOf="@+id/imageView_cover" + app:layout_constraintTop_toTopOf="@+id/imageView_cover" tools:text="@tools:sample/lorem" /> - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_manga_list.xml b/app/src/main/res/layout/item_manga_list.xml index fef7a5c33..5694c2289 100644 --- a/app/src/main/res/layout/item_manga_list.xml +++ b/app/src/main/res/layout/item_manga_list.xml @@ -1,55 +1,52 @@ - + android:layout_height="wrap_content" + android:background="@drawable/list_selector" + android:clipChildren="false" + android:padding="@dimen/list_spacing"> - + - + - + - - - - - - - - - + \ No newline at end of file