diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackAdapter.kt index 122e081a5..deb95aa95 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackAdapter.kt @@ -1,12 +1,15 @@ package eu.kanade.tachiyomi.ui.manga.track +import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.databinding.TrackItemBinding import eu.kanade.tachiyomi.util.view.inflate class TrackAdapter(controller: TrackController) : RecyclerView.Adapter<TrackHolder>() { + private lateinit var binding: TrackItemBinding + var items = emptyList<TrackItem>() set(value) { if (field !== value) { @@ -26,8 +29,8 @@ class TrackAdapter(controller: TrackController) : RecyclerView.Adapter<TrackHold } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TrackHolder { - val view = parent.inflate(R.layout.track_item) - return TrackHolder(view, this) + binding = TrackItemBinding.inflate(LayoutInflater.from(parent.context), parent, false) + return TrackHolder(binding, this) } override fun onBindViewHolder(holder: TrackHolder, position: Int) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackHolder.kt index 83693fbf2..ab0b03006 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackHolder.kt @@ -1,27 +1,15 @@ package eu.kanade.tachiyomi.ui.manga.track import android.annotation.SuppressLint -import android.view.View import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.databinding.TrackItemBinding import eu.kanade.tachiyomi.ui.base.holder.BaseViewHolder import eu.kanade.tachiyomi.util.view.gone import eu.kanade.tachiyomi.util.view.visibleIf import java.text.DateFormat -import kotlinx.android.synthetic.main.track_item.bottom_divider -import kotlinx.android.synthetic.main.track_item.logo_container -import kotlinx.android.synthetic.main.track_item.track_chapters -import kotlinx.android.synthetic.main.track_item.track_details -import kotlinx.android.synthetic.main.track_item.track_finish_date -import kotlinx.android.synthetic.main.track_item.track_logo -import kotlinx.android.synthetic.main.track_item.track_score -import kotlinx.android.synthetic.main.track_item.track_set -import kotlinx.android.synthetic.main.track_item.track_start_date -import kotlinx.android.synthetic.main.track_item.track_status -import kotlinx.android.synthetic.main.track_item.track_title -import kotlinx.android.synthetic.main.track_item.vert_divider_3 import uy.kohesive.injekt.injectLazy -class TrackHolder(view: View, adapter: TrackAdapter) : BaseViewHolder(view) { +class TrackHolder(private val binding: TrackItemBinding, adapter: TrackAdapter) : BaseViewHolder(binding.root) { private val preferences: PreferencesHelper by injectLazy() @@ -32,47 +20,47 @@ class TrackHolder(view: View, adapter: TrackAdapter) : BaseViewHolder(view) { init { val listener = adapter.rowClickListener - logo_container.setOnClickListener { listener.onLogoClick(bindingAdapterPosition) } - track_set.setOnClickListener { listener.onSetClick(bindingAdapterPosition) } - track_title.setOnClickListener { listener.onSetClick(bindingAdapterPosition) } - track_title.setOnLongClickListener { + binding.logoContainer.setOnClickListener { listener.onLogoClick(bindingAdapterPosition) } + binding.trackSet.setOnClickListener { listener.onSetClick(bindingAdapterPosition) } + binding.trackTitle.setOnClickListener { listener.onSetClick(bindingAdapterPosition) } + binding.trackTitle.setOnLongClickListener { listener.onTitleLongClick(bindingAdapterPosition) true } - track_status.setOnClickListener { listener.onStatusClick(bindingAdapterPosition) } - track_chapters.setOnClickListener { listener.onChaptersClick(bindingAdapterPosition) } - track_score.setOnClickListener { listener.onScoreClick(bindingAdapterPosition) } - track_start_date.setOnClickListener { listener.onStartDateClick(bindingAdapterPosition) } - track_finish_date.setOnClickListener { listener.onFinishDateClick(bindingAdapterPosition) } + binding.trackStatus.setOnClickListener { listener.onStatusClick(bindingAdapterPosition) } + binding.trackChapters.setOnClickListener { listener.onChaptersClick(bindingAdapterPosition) } + binding.trackScore.setOnClickListener { listener.onScoreClick(bindingAdapterPosition) } + binding.trackStartDate.setOnClickListener { listener.onStartDateClick(bindingAdapterPosition) } + binding.trackFinishDate.setOnClickListener { listener.onFinishDateClick(bindingAdapterPosition) } } @SuppressLint("SetTextI18n") fun bind(item: TrackItem) { val track = item.track - track_logo.setImageResource(item.service.getLogo()) - logo_container.setBackgroundColor(item.service.getLogoColor()) + binding.trackLogo.setImageResource(item.service.getLogo()) + binding.logoContainer.setBackgroundColor(item.service.getLogoColor()) - track_set.visibleIf { track == null } - track_title.visibleIf { track != null } + binding.trackSet.visibleIf { track == null } + binding.trackTitle.visibleIf { track != null } - track_details.visibleIf { track != null } + binding.trackDetails.visibleIf { track != null } if (track != null) { - track_title.text = track.title - track_chapters.text = "${track.last_chapter_read}/" + + binding.trackTitle.text = track.title + binding.trackChapters.text = "${track.last_chapter_read}/" + if (track.total_chapters > 0) track.total_chapters else "-" - track_status.text = item.service.getStatus(track.status) - track_score.text = if (track.score == 0f) "-" else item.service.displayScore(track) + binding.trackStatus.text = item.service.getStatus(track.status) + binding.trackScore.text = if (track.score == 0f) "-" else item.service.displayScore(track) if (item.service.supportsReadingDates) { - track_start_date.text = + binding.trackStartDate.text = if (track.started_reading_date != 0L) dateFormat.format(track.started_reading_date) else "-" - track_finish_date.text = + binding.trackFinishDate.text = if (track.finished_reading_date != 0L) dateFormat.format(track.finished_reading_date) else "-" } else { - bottom_divider.gone() - vert_divider_3.gone() - track_start_date.gone() - track_finish_date.gone() + binding.bottomDivider.gone() + binding.vertDivider3.gone() + binding.trackStartDate.gone() + binding.trackFinishDate.gone() } } }