Improve: Cleanup RepositoriesAdapter

This commit is contained in:
LooKeR 2021-12-12 01:29:12 +05:30
parent 96b4ef2bcb
commit 80f8d2d36e

View File

@ -1,5 +1,6 @@
package com.looker.droidify.screen package com.looker.droidify.screen
import android.content.res.ColorStateList
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
@ -29,6 +30,11 @@ class RepositoriesAdapter(
val repoDesc = itemView.findViewById<MaterialTextView>(R.id.repository_description)!! val repoDesc = itemView.findViewById<MaterialTextView>(R.id.repository_description)!!
var isEnabled = true var isEnabled = true
val textColor: ColorStateList
get() = if (isEnabled) itemView.context.getColorFromAttr(R.attr.colorOnPrimaryContainer)
else itemView.context.getColorFromAttr(R.attr.colorOnBackground)
} }
override val viewTypeClass: Class<ViewType> override val viewTypeClass: Class<ViewType>
@ -61,26 +67,25 @@ class RepositoriesAdapter(
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
holder as ViewHolder holder as ViewHolder
val repository = getRepository(position) val repository = getRepository(position)
holder.isEnabled = repository.enabled
holder.repoName.text = repository.name holder.repoName.text = repository.name
holder.repoDesc.text = repository.description.trim() holder.repoDesc.text = repository.description.trim()
if (repository.enabled) {
holder.isEnabled = true
holder.item.setCardBackgroundColor( holder.item.setCardBackgroundColor(
holder.item.context.getColorFromAttr(R.attr.colorPrimaryContainer) if (repository.enabled) holder.item.context.getColorFromAttr(R.attr.colorPrimaryContainer)
else holder.item.context.getColorFromAttr(android.R.attr.colorBackground)
) )
holder.repoName.setTextColor(holder.repoName.context.getColorFromAttr(R.attr.colorOnPrimaryContainer))
holder.repoDesc.setTextColor(holder.repoDesc.context.getColorFromAttr(R.attr.colorOnPrimaryContainer)) holder.checkMark.apply {
holder.checkMark.load(R.drawable.ic_check) if (repository.enabled) load(R.drawable.ic_check)
holder.checkMark.imageTintList = else clear()
holder.checkMark.context.getColorFromAttr(R.attr.colorOnPrimaryContainer) }
} else {
holder.isEnabled = false holder.textColor.let {
holder.item.setCardBackgroundColor(holder.item.context.getColorFromAttr(android.R.attr.colorBackground)) holder.repoName.setTextColor(it)
holder.repoName.setTextColor(holder.repoName.context.getColorFromAttr(R.attr.colorOnBackground)) holder.repoDesc.setTextColor(it)
holder.repoDesc.setTextColor(holder.repoDesc.context.getColorFromAttr(R.attr.colorOnBackground)) holder.checkMark.imageTintList = it
holder.checkMark.clear()
holder.checkMark.imageTintList =
holder.checkMark.context.getColorFromAttr(R.attr.colorOnBackground)
} }
} }
} }