summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2025-05-13 19:32:15 +0200
committerJosJuice <josjuice@gmail.com>2025-06-07 10:20:19 +0200
commit4b4a775d5a1f03bd441422541bc0fa1beda92319 (patch)
treeec313a80aff2c01393cc80c8518eea0e89df66db /Source/Android/app/src/main/java
parent5d7cba8cd95333cddb113956bc352cc00f474fe9 (diff)
Android: Make AdvancedMappingControlViewHolder a LifecycleOwner
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlAdapter.kt25
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlViewHolder.kt7
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingDialog.kt5
3 files changed, 30 insertions, 7 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlAdapter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlAdapter.kt
index 1c82616726..963be36d48 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlAdapter.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlAdapter.kt
@@ -4,12 +4,16 @@ package org.dolphinemu.dolphinemu.features.input.ui
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.lifecycle.Lifecycle
import androidx.recyclerview.widget.RecyclerView
import org.dolphinemu.dolphinemu.databinding.ListItemAdvancedMappingControlBinding
import java.util.function.Consumer
-class AdvancedMappingControlAdapter(private val onClickCallback: Consumer<String>) :
- RecyclerView.Adapter<AdvancedMappingControlViewHolder>() {
+class AdvancedMappingControlAdapter(
+ private val parentLifecycle: Lifecycle,
+ private val onClickCallback: Consumer<String>
+) : RecyclerView.Adapter<AdvancedMappingControlViewHolder>() {
+
private var controls = emptyArray<String>()
override fun onCreateViewHolder(
@@ -18,7 +22,7 @@ class AdvancedMappingControlAdapter(private val onClickCallback: Consumer<String
): AdvancedMappingControlViewHolder {
val inflater = LayoutInflater.from(parent.context)
val binding = ListItemAdvancedMappingControlBinding.inflate(inflater)
- return AdvancedMappingControlViewHolder(binding, onClickCallback)
+ return AdvancedMappingControlViewHolder(binding, parentLifecycle, onClickCallback)
}
override fun onBindViewHolder(holder: AdvancedMappingControlViewHolder, position: Int) =
@@ -30,4 +34,19 @@ class AdvancedMappingControlAdapter(private val onClickCallback: Consumer<String
this.controls = controls
notifyDataSetChanged()
}
+
+ override fun onViewRecycled(holder: AdvancedMappingControlViewHolder) {
+ super.onViewRecycled(holder)
+ holder.onViewRecycled()
+ }
+
+ override fun onViewAttachedToWindow(holder: AdvancedMappingControlViewHolder) {
+ super.onViewAttachedToWindow(holder)
+ holder.onViewAttachedToWindow()
+ }
+
+ override fun onViewDetachedFromWindow(holder: AdvancedMappingControlViewHolder) {
+ super.onViewDetachedFromWindow(holder)
+ holder.onViewDetachedFromWindow()
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlViewHolder.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlViewHolder.kt
index dbfecfc94d..f0bf4efe61 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlViewHolder.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingControlViewHolder.kt
@@ -2,14 +2,17 @@
package org.dolphinemu.dolphinemu.features.input.ui
-import androidx.recyclerview.widget.RecyclerView
+import androidx.lifecycle.Lifecycle
import org.dolphinemu.dolphinemu.databinding.ListItemAdvancedMappingControlBinding
+import org.dolphinemu.dolphinemu.utils.LifecycleViewHolder
import java.util.function.Consumer
class AdvancedMappingControlViewHolder(
private val binding: ListItemAdvancedMappingControlBinding,
+ parentLifecycle: Lifecycle,
onClickCallback: Consumer<String>
-) : RecyclerView.ViewHolder(binding.root) {
+) : LifecycleViewHolder(binding.root, parentLifecycle) {
+
private lateinit var name: String
init {
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingDialog.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingDialog.kt
index 7d1c83a217..e05de10105 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingDialog.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingDialog.kt
@@ -38,8 +38,9 @@ class AdvancedMappingDialog(
ArrayAdapter(context, android.R.layout.simple_spinner_dropdown_item, devices)
binding.dropdownDevice.setAdapter(deviceAdapter)
- controlAdapter =
- AdvancedMappingControlAdapter { control: String -> onControlClicked(control) }
+ controlAdapter = AdvancedMappingControlAdapter(lifecycle) {
+ control: String -> onControlClicked(control)
+ }
binding.listControl.adapter = controlAdapter
binding.listControl.layoutManager = LinearLayoutManager(context)