mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-06-15 01:28:44 +02:00
44 lines
2.4 KiB
Kotlin
44 lines
2.4 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 emu.skyline.R
|
||
|
import emu.skyline.adapter.GenericViewHolder
|
||
|
import emu.skyline.input.AxisGuestEvent
|
||
|
import emu.skyline.input.ButtonGuestEvent
|
||
|
import emu.skyline.input.InputManager
|
||
|
import emu.skyline.input.StickId
|
||
|
|
||
|
/**
|
||
|
* This item is used to display all information regarding a [stick] and it's mappings for the controller
|
||
|
*/
|
||
|
class ControllerStickViewItem(private val controllerId : Int, val stick : StickId, private val onClick : (item : ControllerStickViewItem, position : Int) -> Unit) : ControllerViewItem(stick.toString()) {
|
||
|
override fun bind(holder : GenericViewHolder, position : Int) {
|
||
|
val context = holder.itemView.context
|
||
|
|
||
|
val buttonGuestEvent = ButtonGuestEvent(controllerId, stick.button)
|
||
|
val button = InputManager.eventMap.filter { it.value is ButtonGuestEvent && it.value == buttonGuestEvent }.keys.firstOrNull()?.toString() ?: context.getString(R.string.none)
|
||
|
|
||
|
var axisGuestEvent = AxisGuestEvent(controllerId, stick.yAxis, true)
|
||
|
val yAxisPlus = InputManager.eventMap.filter { it.value is AxisGuestEvent && it.value == axisGuestEvent }.keys.firstOrNull()?.toString() ?: context.getString(R.string.none)
|
||
|
|
||
|
axisGuestEvent = AxisGuestEvent(controllerId, stick.yAxis, false)
|
||
|
val yAxisMinus = InputManager.eventMap.filter { it.value is AxisGuestEvent && it.value == axisGuestEvent }.keys.firstOrNull()?.toString() ?: context.getString(R.string.none)
|
||
|
|
||
|
axisGuestEvent = AxisGuestEvent(controllerId, stick.xAxis, true)
|
||
|
val xAxisPlus = InputManager.eventMap.filter { it.value is AxisGuestEvent && it.value == axisGuestEvent }.keys.firstOrNull()?.toString() ?: context.getString(R.string.none)
|
||
|
|
||
|
axisGuestEvent = AxisGuestEvent(controllerId, stick.xAxis, false)
|
||
|
val xAxisMinus = InputManager.eventMap.filter { it.value is AxisGuestEvent && it.value == axisGuestEvent }.keys.firstOrNull()?.toString() ?: context.getString(R.string.none)
|
||
|
|
||
|
subContent = "${context.getString(R.string.button)}: $button\n${context.getString(R.string.up)}: $yAxisPlus\n${context.getString(R.string.down)}: $yAxisMinus\n${context.getString(R.string.left)}: $xAxisMinus\n${context.getString(R.string.right)}: $xAxisPlus"
|
||
|
|
||
|
super.bind(holder, position)
|
||
|
|
||
|
holder.itemView.setOnClickListener { onClick.invoke(this, position) }
|
||
|
}
|
||
|
}
|