11package com.omega_r.base.clickers
22
3- import android.os.Build
43import android.view.View
54import androidx.core.view.ViewCompat
65import 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