Exverge
4106a59d8f
Some checks failed
suyu-ci / Check REUSE Specification (push) Failing after 13s
codespell / Check for spelling errors (push) Has been cancelled
suyu verify / Verify Format (push) Has been cancelled
suyu verify / test build (linux-fresh, clang) (push) Has been cancelled
suyu verify / test build (linux-fresh, linux) (push) Has been cancelled
suyu verify / test build (linux-mingw, windows) (push) Has been cancelled
suyu verify / android (push) Has been cancelled
Would've been nice to know [skip ci] was on Forgejo >1.21 only
38 lines
1.5 KiB
Kotlin
38 lines
1.5 KiB
Kotlin
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project 2023 yuzu Emulator Project 2024 suyu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
package org.suyu.suyu_emu.adapters
|
|
|
|
import android.view.LayoutInflater
|
|
import android.view.ViewGroup
|
|
import org.suyu.suyu_emu.databinding.ListItemAddonBinding
|
|
import org.suyu.suyu_emu.model.Patch
|
|
import org.suyu.suyu_emu.model.AddonViewModel
|
|
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
|
|
|
class AddonAdapter(val addonViewModel: AddonViewModel) :
|
|
AbstractDiffAdapter<Patch, AddonAdapter.AddonViewHolder>() {
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AddonViewHolder {
|
|
ListItemAddonBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
|
.also { return AddonViewHolder(it) }
|
|
}
|
|
|
|
inner class AddonViewHolder(val binding: ListItemAddonBinding) :
|
|
AbstractViewHolder<Patch>(binding) {
|
|
override fun bind(model: Patch) {
|
|
binding.root.setOnClickListener {
|
|
binding.addonCheckbox.isChecked = !binding.addonCheckbox.isChecked
|
|
}
|
|
binding.title.text = model.name
|
|
binding.version.text = model.version
|
|
binding.addonCheckbox.setOnCheckedChangeListener { _, checked ->
|
|
model.enabled = checked
|
|
}
|
|
binding.addonCheckbox.isChecked = model.enabled
|
|
binding.buttonDelete.setOnClickListener {
|
|
addonViewModel.setAddonToDelete(model)
|
|
}
|
|
}
|
|
}
|
|
}
|