summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt23
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt46
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)
+ }
+}