diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt | 2 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt | 21 |
2 files changed, 19 insertions, 4 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt index 6e88a2d9a1..737e4a3859 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt @@ -20,6 +20,7 @@ class AccountHistoryAdapter : Adapter<AccountHistoryHolder>() { var onSelectEntry: ((String) -> Unit)? = null var onRemoveEntry: ((String) -> Unit)? = null + var onChildFocusChanged: ((String, Boolean) -> Unit)? = null override fun onCreateViewHolder(parentView: ViewGroup, type: Int): AccountHistoryHolder { val inflater = LayoutInflater.from(parentView.context) @@ -28,6 +29,7 @@ class AccountHistoryAdapter : Adapter<AccountHistoryHolder>() { return AccountHistoryHolder(view, formatter).apply { onSelect = { account -> onSelectEntry?.invoke(account) } onRemove = { account -> onRemoveEntry?.invoke(account) } + onFocusChanged = { account, hasFocus -> onChildFocusChanged?.invoke(account, hasFocus) } } } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt index 99e25bfc78..e0e911467b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt @@ -19,14 +19,27 @@ class AccountHistoryHolder( var onSelect: ((String) -> Unit)? = null var onRemove: ((String) -> Unit)? = null + var onFocusChanged: ((String, Boolean) -> Unit)? = null init { - label.setOnClickListener { - onSelect?.invoke(accountToken) + view.findViewById<View>(R.id.remove).apply { + setOnClickListener { + onRemove?.invoke(accountToken) + } + + setOnFocusChangeListener { _, hasFocus -> + onFocusChanged?.invoke(accountToken, hasFocus) + } } - view.findViewById<View>(R.id.remove).setOnClickListener { - onRemove?.invoke(accountToken) + label.apply { + setOnClickListener { + onSelect?.invoke(accountToken) + } + + setOnFocusChangeListener { _, hasFocus -> + onFocusChanged?.invoke(accountToken, hasFocus) + } } } } |
