summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-03-18 12:35:29 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-03-18 17:03:54 +0000
commitfeba8106d174dec1507e14f08fc6b0fa0aaf3366 (patch)
tree4834f577d2aabf57a0c5e68293b9e33fd1e7b0ea /android
parent1a3cc1be01414bd2ab65e0482cadc70017a3f657 (diff)
downloadmullvadvpn-feba8106d174dec1507e14f08fc6b0fa0aaf3366.tar.xz
mullvadvpn-feba8106d174dec1507e14f08fc6b0fa0aaf3366.zip
Close "Select location" screen on item selection
Diffstat (limited to 'android')
-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) {