From bbf3fcab18683d2b0720349f7d3797edcd0c141c Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Mon, 12 Apr 2021 23:33:45 -0400 Subject: [PATCH] Using a smaller item view for only updates mode --- .../ui/recents/RecentMangaAdapter.kt | 4 ++ .../tachiyomi/ui/recents/RecentMangaHolder.kt | 34 +++++++++++++ .../tachiyomi/ui/recents/RecentsController.kt | 2 + app/src/main/res/layout/recent_manga_item.xml | 48 +++++++++++-------- 4 files changed, 69 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaAdapter.kt index 5700c708dd..de141e1f72 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaAdapter.kt @@ -21,6 +21,9 @@ class RecentMangaAdapter(val delegate: RecentsInterface) : var showRemoveHistory = true var showTitleFirst = false + val viewType: Int + get() = delegate.getViewType() + fun updateItems(items: List>?) { updateDataSet(items) } @@ -55,6 +58,7 @@ class RecentMangaAdapter(val delegate: RecentsInterface) : fun markAsRead(position: Int) fun isSearching(): Boolean fun scope(): CoroutineScope + fun getViewType(): Int } override fun onItemSwiped(position: Int, direction: Int) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaHolder.kt index 288a26a232..2e1fad3de5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaHolder.kt @@ -2,7 +2,9 @@ package eu.kanade.tachiyomi.ui.recents import android.app.Activity import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.isVisible +import androidx.core.view.updateLayoutParams import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.image.coil.loadLibraryManga @@ -10,6 +12,7 @@ import eu.kanade.tachiyomi.databinding.RecentMangaItemBinding import eu.kanade.tachiyomi.ui.manga.chapter.BaseChapterHolder import eu.kanade.tachiyomi.util.chapter.ChapterUtil import eu.kanade.tachiyomi.util.isLocal +import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.timeSpanFromNow class RecentMangaHolder( @@ -32,6 +35,35 @@ class RecentMangaHolder( RecentMangaAdapter.ShowRecentsDLs.All -> true } && !item.mch.manga.isLocal() + val isUpdates = adapter.viewType == RecentsPresenter.VIEW_TYPE_ONLY_UPDATES + binding.cardLayout.updateLayoutParams { + height = (if (isUpdates) 40 else 80).dpToPx + width = (if (isUpdates) 40 else 60).dpToPx + } + listOf(binding.title, binding.subtitle).forEach { + it.updateLayoutParams { + if (isUpdates) { + if (it == binding.title) topMargin = 5.dpToPx + endToStart = R.id.button_layout + endToEnd = -1 + } else { + if (it == binding.title) topMargin = 2.dpToPx + endToStart = -1 + endToEnd = R.id.front_view + } + } + } + binding.buttonLayout.updateLayoutParams { + if (isUpdates) { + topToBottom = -1 + topToTop = R.id.front_view + } else { + topToTop = -1 + topToBottom = R.id.subtitle + } + } + binding.subtitle.updateLayoutParams { + } binding.removeHistory.isVisible = item.mch.history.id != null && showRemoveHistory binding.title.apply { text = if (!showTitleFirst) { @@ -50,11 +82,13 @@ class RecentMangaHolder( setTextColor(ChapterUtil.readColor(context, item)) } val notValidNum = item.mch.chapter.chapter_number <= 0 + binding.body.isVisible = !isUpdates binding.body.text = when { item.mch.chapter.id == null -> binding.body.context.getString( R.string.added_, item.mch.manga.date_added.timeSpanFromNow ) + adapter.viewType == RecentsPresenter.VIEW_TYPE_ONLY_UPDATES -> "" item.mch.history.id == null -> binding.body.context.getString( R.string.updated_, item.chapter.date_upload.timeSpanFromNow diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt index 1e4da04d93..b35618067d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt @@ -464,6 +464,8 @@ class RecentsController(bundle: Bundle? = null) : } } + override fun getViewType(): Int = presenter.viewType + override fun scope() = adapterScope override fun onItemClick(view: View?, position: Int): Boolean { diff --git a/app/src/main/res/layout/recent_manga_item.xml b/app/src/main/res/layout/recent_manga_item.xml index ec68c3e7dc..941f59040b 100644 --- a/app/src/main/res/layout/recent_manga_item.xml +++ b/app/src/main/res/layout/recent_manga_item.xml @@ -59,8 +59,8 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:adjustViewBounds="true" - android:foreground="?android:attr/selectableItemBackground" android:background="?android:attr/colorBackground" + android:foreground="?android:attr/selectableItemBackground" android:maxHeight="60dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -85,10 +85,13 @@ android:textColor="?android:attr/textColorPrimary" android:textSize="16sp" app:layout_constrainedWidth="true" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintBottom_toTopOf="@id/subtitle" + app:layout_constraintVertical_chainStyle="packed" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" - app:layout_constraintStart_toEndOf="@+id/card_layout" + app:flow_verticalBias="0.0" + app:layout_constraintStart_toEndOf="@id/card_layout" app:layout_constraintTop_toTopOf="parent" tools:text="New Chapter" /> @@ -98,7 +101,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="16dp" - android:layout_marginBottom="14dp" android:ellipsize="end" android:maxLines="1" android:singleLine="true" @@ -109,7 +111,7 @@ app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="@+id/title" app:layout_constraintTop_toBottomOf="@+id/title" - app:layout_constraintVertical_bias="0.0" + app:layout_constraintBottom_toTopOf="@id/body" tools:text="Manga title" /> + + - + - + app:layout_constraintTop_toBottomOf="@id/subtitle"> + - + app:layout_constraintHorizontal_chainStyle="spread" + app:srcCompat="@drawable/ic_eye_remove_outline_24dp" + app:tint="@color/holo_red" /> + + + app:constraint_referenced_ids="space,card_layout" />