mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Use view binding in TrackAdapter
This commit is contained in:
		| @@ -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) { | ||||
|   | ||||
| @@ -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() | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user