diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-14 17:09:52 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-15 19:18:53 +0000 |
| commit | 3671bf59dca9fe5a0797f1e906e3a428a683db00 (patch) | |
| tree | 817b697706fde073498e5e6cbcc61a0366102947 /android/src | |
| parent | 2869e94c9eed08387df585a230c49c8ae19017ab (diff) | |
| download | mullvadvpn-3671bf59dca9fe5a0797f1e906e3a428a683db00.tar.xz mullvadvpn-3671bf59dca9fe5a0797f1e906e3a428a683db00.zip | |
Refactor to create `ConnectionStatus` helper
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt | 23 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt | 46 |
2 files changed, 51 insertions, 18 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt index d74e5278fa..766c3137fb 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt @@ -6,14 +6,12 @@ import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.TextView class ConnectFragment : Fragment() { private lateinit var actionButton: ConnectActionButton - private lateinit var connectingSpinner: View private lateinit var headerBar: HeaderBar private lateinit var notificationBanner: View - private lateinit var status: TextView + private lateinit var status: ConnectionStatus private lateinit var connectHandler: Handler @@ -21,6 +19,7 @@ class ConnectFragment : Fragment() { set(value) { actionButton.state = value headerBar.state = value + status.state = value field = value } @@ -37,10 +36,10 @@ class ConnectFragment : Fragment() { ): View { val view = inflater.inflate(R.layout.connect, container, false) - headerBar = HeaderBar(view, context!!) - connectingSpinner = view.findViewById(R.id.connecting_spinner) notificationBanner = view.findViewById(R.id.notification_banner) - status = view.findViewById(R.id.connection_status) + + headerBar = HeaderBar(view, context!!) + status = ConnectionStatus(view, context!!) actionButton = ConnectActionButton(view) actionButton.apply { @@ -55,34 +54,22 @@ class ConnectFragment : Fragment() { private fun connect() { state = ConnectionState.Connecting - connectingSpinner.visibility = View.VISIBLE notificationBanner.visibility = View.VISIBLE - status.setTextColor(context!!.getColor(R.color.white)) - status.setText(R.string.creating_secure_connection) - connectHandler.postDelayed(Runnable { connected() }, 1000) } private fun disconnect() { state = ConnectionState.Disconnected - connectingSpinner.visibility = View.INVISIBLE notificationBanner.visibility = View.GONE - status.setTextColor(context!!.getColor(R.color.red)) - status.setText(R.string.unsecured_connection) - connectHandler.removeCallbacksAndMessages(null) } private fun connected() { state = ConnectionState.Connected - connectingSpinner.visibility = View.INVISIBLE notificationBanner.visibility = View.GONE - - status.setTextColor(context!!.getColor(R.color.green)) - status.setText(R.string.secure_connection) } } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt new file mode 100644 index 0000000000..8090a8dd08 --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt @@ -0,0 +1,46 @@ +package net.mullvad.mullvadvpn + +import android.content.Context +import android.view.View +import android.widget.TextView + +class ConnectionStatus(val parentView: View, val context: Context) { + private val spinner: View = parentView.findViewById(R.id.connecting_spinner) + private val text: TextView = parentView.findViewById(R.id.connection_status) + + private val disconnectedTextColor = context.getColor(R.color.red) + private val connectingTextColor = context.getColor(R.color.white) + private val connectedTextColor = context.getColor(R.color.green) + + var state = ConnectionState.Disconnected + set(value) { + when (value) { + ConnectionState.Disconnected -> disconnected() + ConnectionState.Connecting -> connecting() + ConnectionState.Connected -> connected() + } + + field = value + } + + private fun disconnected() { + spinner.visibility = View.GONE + + text.setTextColor(disconnectedTextColor) + text.setText(R.string.creating_secure_connection) + } + + private fun connecting() { + spinner.visibility = View.VISIBLE + + text.setTextColor(connectingTextColor) + text.setText(R.string.unsecured_connection) + } + + private fun connected() { + spinner.visibility = View.GONE + + text.setTextColor(connectedTextColor) + text.setText(R.string.secure_connection) + } +} |
