37 lines
1.5 KiB
Kotlin
37 lines
1.5 KiB
Kotlin
/*
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
* Copyright © 2020 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
|
*/
|
|
|
|
package emu.skyline.adapter.controller
|
|
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import androidx.core.view.isGone
|
|
import emu.skyline.R
|
|
import emu.skyline.adapter.GenericLayoutFactory
|
|
import emu.skyline.adapter.GenericViewHolder
|
|
import emu.skyline.adapter.GenericListItem
|
|
import kotlinx.android.synthetic.main.controller_checkbox_item.*
|
|
|
|
private object ControllerCheckBoxLayoutFactory : GenericLayoutFactory {
|
|
override fun createLayout(parent : ViewGroup) : View = LayoutInflater.from(parent.context).inflate(R.layout.controller_checkbox_item, parent, false)
|
|
}
|
|
|
|
class ControllerCheckBoxViewItem(var title : String, var summary : String, var checked : Boolean, private val onCheckedChange : (item : ControllerCheckBoxViewItem, position : Int) -> Unit) : GenericListItem() {
|
|
override fun getLayoutFactory() : GenericLayoutFactory = ControllerCheckBoxLayoutFactory
|
|
|
|
override fun bind(holder : GenericViewHolder, position : Int) {
|
|
holder.text_title.isGone = title.isEmpty()
|
|
holder.text_title.text = title
|
|
holder.text_subtitle.isGone = summary.isEmpty()
|
|
holder.text_subtitle.text = summary
|
|
holder.checkbox.isChecked = checked
|
|
holder.itemView.setOnClickListener {
|
|
checked = !checked
|
|
onCheckedChange.invoke(this, position)
|
|
}
|
|
}
|
|
}
|