Przeglądaj źródła

Use view binding in TrackAdapter

arkon 4 lat temu
rodzic
commit
a768280d82

+ 6 - 3
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) {

+ 26 - 38
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()
             }
         }
     }