summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-03-25 16:32:32 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-22 21:18:40 +0000
commit70ce3664e0e5b2b643181a4ce5e7685639cc9eed (patch)
tree051ff21120c1693e6a844469a62fe3b9405de9f0 /android
parent99977309a8bea1560516e2c67d24cff634f072cb (diff)
downloadmullvadvpn-70ce3664e0e5b2b643181a4ce5e7685639cc9eed.tar.xz
mullvadvpn-70ce3664e0e5b2b643181a4ce5e7685639cc9eed.zip
Store reference to relay item instead of its code
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt3
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCity.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCountry.kt14
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt33
6 files changed, 9 insertions, 51 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
index 355ed3ef7e..b68671afbd 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
@@ -12,6 +12,7 @@ import kotlinx.coroutines.Job
import android.os.Bundle
import android.support.v4.app.FragmentActivity
+import net.mullvad.mullvadvpn.relaylist.RelayItem
import net.mullvad.mullvadvpn.relaylist.RelayList
class MainActivity : FragmentActivity() {
@@ -26,7 +27,7 @@ class MainActivity : FragmentActivity() {
val relayList: RelayList
get() = runBlocking { asyncRelayList.await() }
- var selectedRelayItemCode: String? = null
+ var selectedRelayItem: RelayItem? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt
index 320a13eec8..7b1673c448 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt
@@ -35,10 +35,10 @@ class SelectLocationFragment : Fragment() {
private fun configureRelayList(relayList: RecyclerView) {
val parentActivity = activity as MainActivity
val relayListAdapter =
- RelayListAdapter(parentActivity.relayList, parentActivity.selectedRelayItemCode)
+ RelayListAdapter(parentActivity.relayList, parentActivity.selectedRelayItem)
- relayListAdapter.onSelect = { relayItemCode ->
- parentActivity.selectedRelayItemCode = relayItemCode
+ relayListAdapter.onSelect = { relayItem ->
+ parentActivity.selectedRelayItem = relayItem
close()
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCity.kt
index 182a0ae3e5..a5e1d5cce8 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCity.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCity.kt
@@ -47,6 +47,4 @@ class RelayCity(
}
fun getRelayCount(): Int = relays.size
-
- fun findRelayByCode(code: String): RelayItem? = relays.find { relay -> relay.code == code }
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCountry.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCountry.kt
index ab78172b51..80b63875d5 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCountry.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayCountry.kt
@@ -45,18 +45,4 @@ class RelayCountry(
}
fun getRelayCount(): Int = cities.map { city -> city.getRelayCount() }.sum()
-
- fun findRelayItemByCode(cityCode: String, relayCode: String?): RelayItem? {
- for (city in cities) {
- if (city.code == cityCode) {
- if (relayCode != null) {
- return city.findRelayByCode("$cityCode-$relayCode")
- } else {
- return city
- }
- }
- }
-
- return null
- }
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt
index 45374f6f84..a70ac13eaa 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayList.kt
@@ -8,7 +8,7 @@ class RelayList {
val cities = country.cities.map { city ->
val relays = city.relays.map { relay -> Relay(relay.hostname) }
- RelayCity(city.name, "${country.code}-${city.code}", false, relays)
+ RelayCity(city.name, city.code, false, relays)
}
RelayCountry(country.name, country.code, false, cities)
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 53eaf4e86e..de3336a4ea 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt
@@ -11,17 +11,12 @@ import net.mullvad.mullvadvpn.R
class RelayListAdapter(
private val relayList: RelayList,
- private val initialSelectedItemCode: String?
+ private var selectedItem: RelayItem?
) : Adapter<RelayItemHolder>() {
private val activeIndices = LinkedList<WeakReference<RelayListAdapterPosition>>()
- private var selectedItem: RelayItem? = null
private var selectedItemHolder: RelayItemHolder? = null
- var onSelect: ((String?) -> Unit)? = null
-
- init {
- initialSelectedItemCode?.let { code -> selectedItem = findRelayItemByCode(code) }
- }
+ var onSelect: ((RelayItem?) -> Unit)? = null
override fun onCreateViewHolder(parentView: ViewGroup, type: Int): RelayItemHolder {
val inflater = LayoutInflater.from(parentView.context)
@@ -59,7 +54,7 @@ class RelayListAdapter(
selectedItemHolder = holder
selectedItemHolder?.apply { selected = true }
- onSelect?.invoke(item?.code)
+ onSelect?.invoke(item)
}
fun expandItem(itemIndex: RelayListAdapterPosition, childCount: Int) {
@@ -105,26 +100,4 @@ class RelayListAdapter(
holder.selected = false
}
}
-
- private fun findRelayItemByCode(code: String): RelayItem? {
- val codeParts = code.split('-')
-
- for (country in relayList.countries) {
- if (country.code == codeParts[0]) {
- if (codeParts.size == 1) {
- return country
- } else {
- var relayCode: String? = null
-
- if (codeParts.size == 3) {
- relayCode = codeParts[2]
- }
-
- return country.findRelayItemByCode("${codeParts[0]}-${codeParts[1]}", relayCode)
- }
- }
- }
-
- return null
- }
}