diff options
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt | 24 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt | 4 |
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) { |
