Make global search use full height manga cards with respect to the source display setting

This commit is contained in:
Jobobby04 2020-05-26 14:07:57 -04:00
parent b6a0a807c2
commit 75bddd5105
5 changed files with 83 additions and 6 deletions

View File

@ -7,9 +7,9 @@ import eu.kanade.tachiyomi.data.glide.GlideApp
import eu.kanade.tachiyomi.data.glide.toMangaThumbnail
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
import eu.kanade.tachiyomi.widget.StateImageViewTarget
import kotlinx.android.synthetic.main.global_search_controller_card_item.itemImage
import kotlinx.android.synthetic.main.global_search_controller_card_item.progress
import kotlinx.android.synthetic.main.global_search_controller_card_item.tvTitle
import kotlinx.android.synthetic.main.global_search_controller_comfortable_card_item.itemImage
import kotlinx.android.synthetic.main.global_search_controller_comfortable_card_item.progress
import kotlinx.android.synthetic.main.global_search_controller_comfortable_card_item.tvTitle
class GlobalSearchCardHolder(view: View, adapter: GlobalSearchCardAdapter) :
BaseFlexibleViewHolder(view, adapter) {

View File

@ -7,11 +7,18 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.preference.PreferenceValues
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class GlobalSearchCardItem(val manga: Manga) : AbstractFlexibleItem<GlobalSearchCardHolder>() {
override fun getLayoutRes(): Int {
return R.layout.global_search_controller_card_item
return when (Injekt.get<PreferencesHelper>().catalogueDisplayMode().get()) {
PreferenceValues.DisplayMode.COMPACT_GRID -> R.layout.global_search_controller_compact_card_item
else -> R.layout.global_search_controller_comfortable_card_item
}
}
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): GlobalSearchCardHolder {

View File

@ -54,7 +54,7 @@
android:orientation="horizontal"
android:paddingStart="4dp"
android:paddingEnd="4dp"
tools:listitem="@layout/global_search_controller_card_item" />
tools:listitem="@layout/global_search_controller_comfortable_card_item" />
</androidx.cardview.widget.CardView>

View File

@ -28,7 +28,7 @@
<ImageView
android:id="@+id/itemImage"
android:layout_width="112dp"
android:layout_height="112dp"
android:layout_height="168dp"
android:paddingBottom="8dp"
android:scaleType="fitCenter"
app:layout_constraintEnd_toEndOf="parent"

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/list_item_selector"
android:orientation="vertical"
android:paddingBottom="8dp"
android:paddingEnd="4dp"
android:paddingStart="4dp"
android:paddingTop="8dp">
<ProgressBar
android:id="@+id/progress"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constrainedHeight="true"
app:layout_constrainedWidth="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:layout_width="112dp"
android:layout_height="168dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<View
android:id="@+id/gradient"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:background="@drawable/gradient_shape" />
<ImageView
android:id="@+id/itemImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
android:scaleType="fitCenter"
tools:ignore="ContentDescription"
tools:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/tvTitle"
style="@style/TextAppearance.Regular.Caption"
android:layout_width="104dp"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginTop="0dp"
android:ellipsize="end"
android:maxLines="1"
android:padding="8dp"
android:shadowColor="@color/textColorPrimaryLight"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="4"
android:textColor="@color/md_white_1000"
tools:text="Sample title" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>