diff options
Diffstat (limited to 'android/src')
3 files changed, 16 insertions, 12 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt index f59387baa4..8c18ed3a5e 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt @@ -35,24 +35,24 @@ class SelectLocationFragment : Fragment() { private lateinit var relayListContainer: ViewSwitcher - private val relayListAdapter = RelayListAdapter() + private lateinit var relayListAdapter: RelayListAdapter private var updateRelayListJob: Job? = null - init { - relayListAdapter.onSelect = { relayItem -> - updateLocationConstraint(relayItem) - maybeConnect() - close() - } - } - override fun onAttach(context: Context) { super.onAttach(context) parentActivity = context as MainActivity connectionProxy = parentActivity.connectionProxy relayListListener = parentActivity.relayListListener + + relayListAdapter = RelayListAdapter(context.resources).apply { + onSelect = { relayItem -> + updateLocationConstraint(relayItem) + maybeConnect() + close() + } + } } override fun onCreateView( diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt index 275e6f5dfa..584a4bca54 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt @@ -64,9 +64,9 @@ class RelayItemHolder( selectedIcon.visibility = View.INVISIBLE if (item.active) { - relayActive.setImageResource(R.drawable.icon_relay_active) + relayActive.setImageDrawable(adapter.activeRelayIcon) } else { - relayActive.setImageResource(R.drawable.icon_relay_inactive) + relayActive.setImageDrawable(adapter.inactiveRelayIcon) } } 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 60ad96171c..f70e0a8ca3 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt @@ -3,18 +3,22 @@ package net.mullvad.mullvadvpn.relaylist import java.lang.ref.WeakReference import java.util.LinkedList +import android.content.res.Resources import android.support.v7.widget.RecyclerView.Adapter import android.view.LayoutInflater import android.view.ViewGroup import net.mullvad.mullvadvpn.R -class RelayListAdapter : Adapter<RelayItemHolder>() { +class RelayListAdapter(private val resources: Resources) : Adapter<RelayItemHolder>() { private var relayList: RelayList? = null private var selectedItem: RelayItem? = null private val activeIndices = LinkedList<WeakReference<RelayListAdapterPosition>>() private var selectedItemHolder: RelayItemHolder? = null + val activeRelayIcon = resources.getDrawable(R.drawable.icon_relay_active, null) + val inactiveRelayIcon = resources.getDrawable(R.drawable.icon_relay_inactive, null) + var onSelect: ((RelayItem?) -> Unit)? = null override fun onCreateViewHolder(parentView: ViewGroup, type: Int): RelayItemHolder { |
