From fc6331c3a15c15fc8bcec1048d0b47316d42b9b6 Mon Sep 17 00:00:00 2001 From: machiav3lli Date: Tue, 18 Jan 2022 01:49:26 +0100 Subject: [PATCH] Add: Repository item --- .../com/looker/droidify/ui/items/RepoItem.kt | 50 +++++++++++++++++++ src/main/res/layout/item_repository_x.xml | 42 ++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 src/main/kotlin/com/looker/droidify/ui/items/RepoItem.kt create mode 100644 src/main/res/layout/item_repository_x.xml diff --git a/src/main/kotlin/com/looker/droidify/ui/items/RepoItem.kt b/src/main/kotlin/com/looker/droidify/ui/items/RepoItem.kt new file mode 100644 index 00000000..1c847848 --- /dev/null +++ b/src/main/kotlin/com/looker/droidify/ui/items/RepoItem.kt @@ -0,0 +1,50 @@ +package com.looker.droidify.ui.items + +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.ViewGroup +import coil.load +import com.looker.droidify.R +import com.looker.droidify.databinding.ItemRepositoryXBinding +import com.looker.droidify.entity.Repository +import com.looker.droidify.utility.extension.resources.clear +import com.looker.droidify.utility.extension.resources.getColorFromAttr +import com.mikepenz.fastadapter.binding.AbstractBindingItem + +class RepoItem(val item: Repository) : + AbstractBindingItem() { + override val type: Int + get() = R.id.fastadapter_item + + override fun createBinding(inflater: LayoutInflater, parent: ViewGroup?) + : ItemRepositoryXBinding = ItemRepositoryXBinding.inflate(inflater, parent, false) + + override fun bindView(binding: ItemRepositoryXBinding, payloads: List) { + val isEnabled = item.enabled + val context = binding.repoItem.context + + val textColor: ColorStateList = if (isEnabled) + context.getColorFromAttr(R.attr.colorOnPrimaryContainer) + else + context.getColorFromAttr(R.attr.colorOnBackground) + + binding.repoName.text = item.name + binding.repoDescription.text = item.description.trim() + + binding.repoItem.setCardBackgroundColor( + if (item.enabled) context.getColorFromAttr(R.attr.colorPrimaryContainer) + else context.getColorFromAttr(android.R.attr.colorBackground) + ) + + binding.checkMark.apply { + if (item.enabled) load(R.drawable.ic_check) + else clear() + } + + textColor.let { + binding.repoName.setTextColor(it) + binding.repoDescription.setTextColor(it) + binding.checkMark.imageTintList = it + } + } +} \ No newline at end of file diff --git a/src/main/res/layout/item_repository_x.xml b/src/main/res/layout/item_repository_x.xml new file mode 100644 index 00000000..3ee79a48 --- /dev/null +++ b/src/main/res/layout/item_repository_x.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file