diff options
Diffstat (limited to 'ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt')
-rw-r--r-- | ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt b/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt index 3460e96e..213338f1 100644 --- a/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt +++ b/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt @@ -6,6 +6,8 @@ package com.wireguard.android.databinding import android.text.InputFilter import android.view.LayoutInflater +import android.view.View +import android.widget.EditText import android.widget.LinearLayout import android.widget.TextView import androidx.databinding.BindingAdapter @@ -13,6 +15,7 @@ import androidx.databinding.DataBindingUtil import androidx.databinding.ObservableList import androidx.databinding.ViewDataBinding import androidx.databinding.adapters.ListenerUtil +import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.wireguard.android.BR @@ -41,10 +44,10 @@ object BindingAdapters { } @JvmStatic - @BindingAdapter("items", "layout") + @BindingAdapter("items", "layout", "fragment") fun <E> setItems(view: LinearLayout, - oldList: ObservableList<E>?, oldLayoutId: Int, - newList: ObservableList<E>?, newLayoutId: Int) { + oldList: ObservableList<E>?, oldLayoutId: Int, @Suppress("UNUSED_PARAMETER") oldFragment: Fragment?, + newList: ObservableList<E>?, newLayoutId: Int, newFragment: Fragment?) { if (oldList === newList && oldLayoutId == newLayoutId) return var listener: ItemChangeListener<E>? = ListenerUtil.getListener(view, R.id.item_change_listener) @@ -59,7 +62,7 @@ object BindingAdapters { if (newList == null || newLayoutId == 0) return if (listener == null) { - listener = ItemChangeListener(view, newLayoutId) + listener = ItemChangeListener(view, newLayoutId, newFragment) ListenerUtil.trackListener(view, listener, R.id.item_change_listener) } // Either the list changed, or this is an entirely new listener because the layout changed. @@ -124,6 +127,13 @@ object BindingAdapters { } @JvmStatic + @BindingAdapter("onFocusChange") + fun setOnFocusChange(view: EditText, + listener: View.OnFocusChangeListener?) { + view.setOnFocusChangeListener(listener) + } + + @JvmStatic @BindingAdapter("android:text") fun setText(view: TextView, text: Optional<*>) { view.text = text.map { obj: Any -> obj.toString() }.orElse("") |