Android: Pass CoreDevice.Control to AdvancedMappingControlViewHolder

This commit is contained in:
JosJuice
2025-05-13 19:21:32 +02:00
parent 4b4a775d5a
commit 22fd0472ed
3 changed files with 10 additions and 8 deletions

View File

@ -7,6 +7,7 @@ import android.view.ViewGroup
import androidx.lifecycle.Lifecycle
import androidx.recyclerview.widget.RecyclerView
import org.dolphinemu.dolphinemu.databinding.ListItemAdvancedMappingControlBinding
import org.dolphinemu.dolphinemu.features.input.model.CoreDevice
import java.util.function.Consumer
class AdvancedMappingControlAdapter(
@ -14,7 +15,7 @@ class AdvancedMappingControlAdapter(
private val onClickCallback: Consumer<String>
) : RecyclerView.Adapter<AdvancedMappingControlViewHolder>() {
private var controls = emptyArray<String>()
private var controls = emptyArray<CoreDevice.Control>()
override fun onCreateViewHolder(
parent: ViewGroup,
@ -30,7 +31,7 @@ class AdvancedMappingControlAdapter(
override fun getItemCount(): Int = controls.size
fun setControls(controls: Array<String>) {
fun setControls(controls: Array<CoreDevice.Control>) {
this.controls = controls
notifyDataSetChanged()
}

View File

@ -4,6 +4,7 @@ package org.dolphinemu.dolphinemu.features.input.ui
import androidx.lifecycle.Lifecycle
import org.dolphinemu.dolphinemu.databinding.ListItemAdvancedMappingControlBinding
import org.dolphinemu.dolphinemu.features.input.model.CoreDevice
import org.dolphinemu.dolphinemu.utils.LifecycleViewHolder
import java.util.function.Consumer
@ -13,14 +14,14 @@ class AdvancedMappingControlViewHolder(
onClickCallback: Consumer<String>
) : LifecycleViewHolder(binding.root, parentLifecycle) {
private lateinit var name: String
private lateinit var control: CoreDevice.Control
init {
binding.root.setOnClickListener { onClickCallback.accept(name) }
binding.root.setOnClickListener { onClickCallback.accept(control.getName()) }
}
fun bind(name: String) {
this.name = name
binding.textName.text = name
fun bind(control: CoreDevice.Control) {
this.control = control
binding.textName.text = control.getName()
}
}

View File

@ -73,7 +73,7 @@ class AdvancedMappingDialog(
}
private fun setControls(controls: Array<CoreDevice.Control>) =
controlAdapter.setControls(controls.map { it.getName() }.toTypedArray())
controlAdapter.setControls(controls)
private fun onControlClicked(control: String) {
val expression =