summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-06-05 17:52:40 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-06-08 13:46:41 +0000
commit333848da7bc3255947cd26f00e668fca6d61c041 (patch)
tree0359f339e8a839b7ba2d30bc1e9e1ab1b9596f57 /android/src
parent9ec018f46d6ca36bd387455d1f4a5b23be758cb7 (diff)
downloadmullvadvpn-333848da7bc3255947cd26f00e668fca6d61c041.tar.xz
mullvadvpn-333848da7bc3255947cd26f00e668fca6d61c041.zip
Refactor to centralize click handling
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt33
1 files changed, 13 insertions, 20 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt
index c4669047f1..109a08c377 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt
@@ -59,7 +59,7 @@ class NotificationBanner(
private var externalLink: ExternalLink? = null
private var visible = false
- private val keyManagementController = BlockingController(
+ private val clickController = BlockingController(
object : BlockableView {
override fun setEnabled(enabled: Boolean) {
if (enabled) {
@@ -71,13 +71,19 @@ class NotificationBanner(
}
}
- override fun onClick(): Job {
- return GlobalScope.launch(Dispatchers.Default) {
- val token = daemon.getWwwAuthToken()
- val url = Uri.parse(keyManagementUrl + "?token=" + token)
+ override fun onClick() = GlobalScope.launch(Dispatchers.Default) {
+ buildUrl()?.let { url ->
context.startActivity(Intent(Intent.ACTION_VIEW, url))
}
}
+
+ private fun buildUrl() = when (externalLink) {
+ ExternalLink.Download -> downloadUrl
+ ExternalLink.KeyManagement -> Uri.parse(keyManagementUrl + buildUrlTokenParameter())
+ null -> null
+ }
+
+ private fun buildUrlTokenParameter() = "?token=${daemon.getWwwAuthToken()}"
}
)
@@ -90,7 +96,7 @@ class NotificationBanner(
var tunnelState by observable<TunnelState>(TunnelState.Disconnected()) { _, _, _ -> update() }
init {
- banner.setOnClickListener { onClick() }
+ banner.setOnClickListener { clickController.action() }
}
fun onResume() {
@@ -102,7 +108,7 @@ class NotificationBanner(
fun onPause() {
versionInfoCache.onUpdate = null
updateJob?.cancel()
- keyManagementController.onPause()
+ clickController.onPause()
}
private fun update() {
@@ -291,17 +297,4 @@ class NotificationBanner(
return measuredHeight
}
}
-
- private fun onClick() {
- val externalLink = this.externalLink
-
- when (externalLink) {
- ExternalLink.Download -> {
- context.startActivity(Intent(Intent.ACTION_VIEW, this.downloadUrl))
- }
- ExternalLink.KeyManagement -> {
- this.keyManagementController.action()
- }
- }
- }
}