diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-23 23:38:34 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-07-01 19:12:29 +0000 |
| commit | c9dadc32a698c6058db887470e2a0cd2d050018f (patch) | |
| tree | fddaa7acb837ffbb381450f5dc21bac25e2f1671 /android | |
| parent | d7501dfd43e687dcaa7cb4f2c2984527191438d7 (diff) | |
| download | mullvadvpn-c9dadc32a698c6058db887470e2a0cd2d050018f.tar.xz mullvadvpn-c9dadc32a698c6058db887470e2a0cd2d050018f.zip | |
Add callback for when header is available
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt index 0cddaaa123..379d58f758 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt @@ -4,7 +4,9 @@ import android.support.v7.widget.RecyclerView.Adapter import android.support.v7.widget.RecyclerView.AdapterDataObserver import android.support.v7.widget.RecyclerView.ViewHolder import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup +import kotlin.properties.Delegates.observable class AdapterWithHeader<H : ViewHolder>( val adapter: Adapter<H>, @@ -56,6 +58,14 @@ class AdapterWithHeader<H : ViewHolder>( } } + private var headerView: View? by observable<View?>(null) { _, _, newView -> + newView?.let { view -> onHeaderAvailable?.invoke(view) } + } + + var onHeaderAvailable by observable<((View) -> Unit)?>(null) { _, _, listener -> + headerView?.let { header -> listener?.invoke(header) } + } + init { adapter.registerAdapterDataObserver(observer) } @@ -100,6 +110,8 @@ class AdapterWithHeader<H : ViewHolder>( val inflater = LayoutInflater.from(parentView.context) val view = inflater.inflate(headerLayoutId, parentView, false) + headerView = view + return HeaderOrHolder.Header(view) } else { val holder = adapter.onCreateViewHolder(parentView, viewType - 1) |
