diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/adapter/chapterGridItemAD.kt b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/adapter/chapterGridItemAD.kt new file mode 100644 index 000000000..28cc446f2 --- /dev/null +++ b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/adapter/chapterGridItemAD.kt @@ -0,0 +1,58 @@ +package org.koitharu.kotatsu.details.ui.adapter + +import android.graphics.Typeface +import androidx.core.content.ContextCompat +import androidx.core.view.isVisible +import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding +import org.koitharu.kotatsu.R +import org.koitharu.kotatsu.core.ui.list.AdapterDelegateClickListenerAdapter +import org.koitharu.kotatsu.core.ui.list.OnListItemClickListener +import org.koitharu.kotatsu.core.util.ext.drawableStart +import org.koitharu.kotatsu.core.util.ext.getThemeColorStateList +import org.koitharu.kotatsu.databinding.ItemChapterGridBinding +import org.koitharu.kotatsu.details.ui.model.ChapterListItem +import org.koitharu.kotatsu.list.ui.model.ListModel +import kotlin.math.roundToInt + +fun chapterGridItemAD( + clickListener: OnListItemClickListener, +) = adapterDelegateViewBinding( + { inflater, parent -> ItemChapterGridBinding.inflate(inflater, parent, false) }, +) { + + val eventListener = AdapterDelegateClickListenerAdapter(this, clickListener) + itemView.setOnClickListener(eventListener) + itemView.setOnLongClickListener(eventListener) + + bind { payloads -> + if (payloads.isEmpty()) { + binding.textViewTitle.text = item.chapter.number.roundToInt().toString() + } + when { + item.isCurrent -> { + binding.textViewTitle.drawableStart = ContextCompat.getDrawable(context, R.drawable.ic_current_chapter) + binding.textViewTitle.setTextColor(context.getThemeColorStateList(android.R.attr.textColorPrimary)) + binding.textViewTitle.typeface = Typeface.DEFAULT_BOLD + } + + item.isUnread -> { + binding.textViewTitle.drawableStart = if (item.isNew) { + ContextCompat.getDrawable(context, R.drawable.ic_new) + } else { + null + } + binding.textViewTitle.setTextColor(context.getThemeColorStateList(android.R.attr.textColorPrimary)) + binding.textViewTitle.typeface = Typeface.DEFAULT + } + + else -> { + binding.textViewTitle.drawableStart = null + binding.textViewTitle.setTextColor(context.getThemeColorStateList(android.R.attr.textColorHint)) + binding.textViewTitle.typeface = Typeface.DEFAULT + } + } + binding.imageViewBookmarked.isVisible = item.isBookmarked + binding.imageViewDownloaded.isVisible = item.isDownloaded + } +} + diff --git a/app/src/main/res/layout/item_chapter_grid.xml b/app/src/main/res/layout/item_chapter_grid.xml new file mode 100644 index 000000000..be845c63d --- /dev/null +++ b/app/src/main/res/layout/item_chapter_grid.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + +