Replace more Kotlin synthetics

This commit is contained in:
arkon
2020-11-28 15:54:53 -05:00
parent 749c2071af
commit 019a0f31c7
16 changed files with 116 additions and 120 deletions
@@ -183,7 +183,7 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
val position = adapter.indexOf(manga)
if (position != -1 && !adapter.isSelected(position)) {
adapter.toggleSelection(position)
(recycler.findViewHolderForItemId(manga.id!!) as? LibraryHolder)?.toggleActivation()
(recycler.findViewHolderForItemId(manga.id!!) as? LibraryHolder<*>)?.toggleActivation()
}
}
}
@@ -227,7 +227,7 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
val position = adapter.indexOf(manga)
if (position != -1) {
adapter.toggleSelection(position)
(recycler.findViewHolderForItemId(manga.id!!) as? LibraryHolder)?.toggleActivation()
(recycler.findViewHolderForItemId(manga.id!!) as? LibraryHolder<*>)?.toggleActivation()
}
}
@@ -23,9 +23,9 @@ import eu.kanade.tachiyomi.util.isLocal
class LibraryComfortableGridHolder(
private val view: View,
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>
) : LibraryCompactGridHolder(view, adapter) {
) : LibraryHolder<SourceComfortableGridItemBinding>(view, adapter) {
private val binding = SourceComfortableGridItemBinding.bind(view)
override val binding = SourceComfortableGridItemBinding.bind(view)
/**
* Method called from [LibraryCategoryAdapter.onBindViewHolder]. It updates the data for this
@@ -21,9 +21,9 @@ import eu.kanade.tachiyomi.util.isLocal
open class LibraryCompactGridHolder(
private val view: View,
private val adapter: FlexibleAdapter<*>
) : LibraryHolder(view, adapter) {
) : LibraryHolder<SourceCompactGridItemBinding>(view, adapter) {
private val binding = SourceCompactGridItemBinding.bind(view)
override val binding = SourceCompactGridItemBinding.bind(view)
/**
* Method called from [LibraryCategoryAdapter.onBindViewHolder]. It updates the data for this
@@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.ui.library
import android.view.View
import androidx.viewbinding.ViewBinding
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.viewholders.FlexibleViewHolder
@@ -11,11 +12,13 @@ import eu.davidea.viewholders.FlexibleViewHolder
* @param listener a listener to react to the single tap and long tap events.
*/
abstract class LibraryHolder(
abstract class LibraryHolder<VB : ViewBinding>(
view: View,
adapter: FlexibleAdapter<*>
) : FlexibleViewHolder(view, adapter) {
abstract val binding: VB
/**
* Method called from [LibraryCategoryAdapter.onBindViewHolder]. It updates the data for this
* holder with the given manga.
@@ -14,15 +14,15 @@ import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.LibraryManga
import eu.kanade.tachiyomi.data.preference.PreferenceValues.DisplayMode
import eu.kanade.tachiyomi.databinding.SourceComfortableGridItemBinding
import eu.kanade.tachiyomi.databinding.SourceCompactGridItemBinding
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
import kotlinx.android.synthetic.main.source_compact_grid_item.view.card
import kotlinx.android.synthetic.main.source_compact_grid_item.view.gradient
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class LibraryItem(val manga: LibraryManga, private val libraryDisplayMode: Preference<DisplayMode>) :
AbstractFlexibleItem<LibraryHolder>(), IFilterable<String> {
AbstractFlexibleItem<LibraryHolder<*>>(), IFilterable<String> {
private val sourceManager: SourceManager = Injekt.get()
@@ -37,14 +37,15 @@ class LibraryItem(val manga: LibraryManga, private val libraryDisplayMode: Prefe
}
}
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): LibraryHolder {
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): LibraryHolder<*> {
return when (libraryDisplayMode.get()) {
DisplayMode.COMPACT_GRID -> {
val binding = SourceCompactGridItemBinding.bind(view)
val parent = adapter.recyclerView as AutofitRecyclerView
val coverHeight = parent.itemWidth / 3 * 4
view.apply {
card.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, coverHeight)
gradient.layoutParams = FrameLayout.LayoutParams(
binding.card.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, coverHeight)
binding.gradient.layoutParams = FrameLayout.LayoutParams(
MATCH_PARENT,
coverHeight / 2,
Gravity.BOTTOM
@@ -53,10 +54,11 @@ class LibraryItem(val manga: LibraryManga, private val libraryDisplayMode: Prefe
LibraryCompactGridHolder(view, adapter)
}
DisplayMode.COMFORTABLE_GRID -> {
val binding = SourceComfortableGridItemBinding.bind(view)
val parent = adapter.recyclerView as AutofitRecyclerView
val coverHeight = parent.itemWidth / 3 * 4
view.apply {
card.layoutParams = ConstraintLayout.LayoutParams(
binding.card.layoutParams = ConstraintLayout.LayoutParams(
MATCH_PARENT,
coverHeight
)
@@ -71,7 +73,7 @@ class LibraryItem(val manga: LibraryManga, private val libraryDisplayMode: Prefe
override fun bindViewHolder(
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,
holder: LibraryHolder,
holder: LibraryHolder<*>,
position: Int,
payloads: List<Any?>?
) {
@@ -22,13 +22,12 @@ import eu.kanade.tachiyomi.util.isLocal
* @param listener a listener to react to single tap and long tap events.
* @constructor creates a new library holder.
*/
class LibraryListHolder(
private val view: View,
private val adapter: FlexibleAdapter<*>
) : LibraryHolder(view, adapter) {
) : LibraryHolder<SourceListItemBinding>(view, adapter) {
private val binding = SourceListItemBinding.bind(view)
override val binding = SourceListItemBinding.bind(view)
/**
* Method called from [LibraryCategoryAdapter.onBindViewHolder]. It updates the data for this