summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt24
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt4
2 files changed, 21 insertions, 7 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt
index 71f118410d..00e5f533c6 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt
@@ -20,17 +20,27 @@ class SelectLocationFragment : Fragment() {
): View {
val view = inflater.inflate(R.layout.select_location, container, false)
- view.findViewById<ImageButton>(R.id.close).setOnClickListener {
- activity?.onBackPressed()
- }
+ view.findViewById<ImageButton>(R.id.close).setOnClickListener { close() }
+
+ configureRelayList(view.findViewById<RecyclerView>(R.id.relay_list))
+
+ return view
+ }
- view.findViewById<RecyclerView>(R.id.relay_list).apply {
+ fun close() {
+ activity?.onBackPressed()
+ }
+
+ private fun configureRelayList(relayList: RecyclerView) {
+ val relayListAdapter = RelayListAdapter()
+
+ relayListAdapter.onSelect = { close() }
+
+ relayList.apply {
layoutManager = LinearLayoutManager(context!!)
- adapter = RelayListAdapter()
+ adapter = relayListAdapter
addItemDecoration(RelayItemDividerDecoration(context!!))
}
-
- return view
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt
index 2725013719..fa455a39f4 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt
@@ -15,6 +15,8 @@ class RelayListAdapter : Adapter<RelayItemHolder>() {
private var selectedItem: RelayItem? = null
private var selectedItemHolder: RelayItemHolder? = null
+ var onSelect: (() -> Unit)? = null
+
override fun onCreateViewHolder(parentView: ViewGroup, type: Int): RelayItemHolder {
val inflater = LayoutInflater.from(parentView.context)
val view = inflater.inflate(R.layout.relay_list_item, parentView, false)
@@ -49,6 +51,8 @@ class RelayListAdapter : Adapter<RelayItemHolder>() {
selectedItem = item
selectedItemHolder = holder
selectedItemHolder?.apply { selected = true }
+
+ onSelect?.invoke()
}
fun expandItem(itemIndex: RelayListAdapterPosition, childCount: Int) {