diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-05 17:52:40 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-08 13:46:41 +0000 |
| commit | 333848da7bc3255947cd26f00e668fca6d61c041 (patch) | |
| tree | 0359f339e8a839b7ba2d30bc1e9e1ab1b9596f57 /android | |
| parent | 9ec018f46d6ca36bd387455d1f4a5b23be758cb7 (diff) | |
| download | mullvadvpn-333848da7bc3255947cd26f00e668fca6d61c041.tar.xz mullvadvpn-333848da7bc3255947cd26f00e668fca6d61c041.zip | |
Refactor to centralize click handling
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt | 33 |
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() - } - } - } } |
