Skip to content

Commit 2a36125

Browse files
Merge pull request #15 from Omega-R/feature/optional_click
Optional set on click listener methods added
2 parents 11f494f + 95d79a2 commit 2a36125

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

lib/src/main/java/com/omega_r/base/clickers/OmegaClickable.kt

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.omega_r.base.clickers
22

3-
import android.os.Build
43
import android.view.View
54
import androidx.core.view.ViewCompat
65
import com.omega_r.base.OmegaViewFindable
@@ -23,10 +22,18 @@ interface OmegaClickable: OmegaViewFindable {
2322
findViewById<View>(id)!!.setOnClickListener(clickManager.wrap(id, listener))
2423
}
2524

25+
fun setOnClickListenerOptional(id: Int, listener: View.OnClickListener) {
26+
findViewById<View>(id)?.setOnClickListener(clickManager.wrap(id, listener))
27+
}
28+
2629
fun setOnClickListener(id: Int, block: () -> Unit) {
2730
findViewById<View>(id)!!.setOnClickListener(clickManager.wrap(id, block))
2831
}
2932

33+
fun setOnClickListenerOptional(id: Int, block: () -> Unit) {
34+
findViewById<View>(id)?.setOnClickListener(clickManager.wrap(id, block))
35+
}
36+
3037
fun setOnClickListenerWithView(id: Int, block: (View) -> Unit) {
3138
findViewById<View>(id)!!.setOnClickListener(clickManager.wrap(id, block))
3239
}
@@ -35,10 +42,18 @@ interface OmegaClickable: OmegaViewFindable {
3542
pairs.forEach { setOnClickListener(it.first, it.second) }
3643
}
3744

45+
fun setOnClickListenersOptional(vararg pairs: Pair<Int, () -> Unit>) {
46+
pairs.forEach { setOnClickListenerOptional(it.first, it.second) }
47+
}
48+
3849
fun setOnClickListeners(vararg ids: Int, block: (View) -> Unit) {
3950
ids.forEach { findViewById<View>(it)!!.setOnClickListener(clickManager.wrap(it, block)) }
4051
}
4152

53+
fun setOnClickListenersOptional(vararg ids: Int, block: (View) -> Unit) {
54+
ids.forEach { findViewById<View>(it)?.setOnClickListener(clickManager.wrap(it, block)) }
55+
}
56+
4257
fun <E> setOnClickListeners(vararg pairs: Pair<Int, E>, block: (E) -> Unit) {
4358
val list = pairs.map { it.first }
4459
val map = pairs.toMap()
@@ -47,6 +62,14 @@ interface OmegaClickable: OmegaViewFindable {
4762
}
4863
}
4964

65+
fun <E> setOnClickListenersOptional(vararg pairs: Pair<Int, E>, block: (E) -> Unit) {
66+
val list = pairs.map { it.first }
67+
val map = pairs.toMap()
68+
setOnClickListenersOptional(ids = *list.toIntArray()) {
69+
block(map[it.id]!!)
70+
}
71+
}
72+
5073
fun setMenuListener(vararg pairs: Pair<Int, () -> Unit>) {
5174
pairs.forEach { setMenuListener(it.first, it.second) }
5275
}

0 commit comments

Comments
 (0)