aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2020-09-14 19:46:49 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2020-09-15 12:30:15 +0200
commitbab70ab51ecc02c2e8afd1843cdd4d90ae9cc257 (patch)
treebd7117473f42dc6211d9aad4c78cbdddeb851b3e /ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt
parentcoroutines: convert low-hanging fruits (diff)
downloadwireguard-android-bab70ab51ecc02c2e8afd1843cdd4d90ae9cc257.tar.xz
wireguard-android-bab70ab51ecc02c2e8afd1843cdd4d90ae9cc257.zip
coroutines: convert the rest
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt')
-rw-r--r--ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt28
1 files changed, 16 insertions, 12 deletions
diff --git a/ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt b/ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt
index 44d81c01..004b10be 100644
--- a/ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt
+++ b/ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt
@@ -17,27 +17,31 @@ import com.wireguard.android.QuickTileService
import com.wireguard.android.R
import com.wireguard.android.backend.Tunnel
import com.wireguard.android.util.ErrorMessages
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
@RequiresApi(Build.VERSION_CODES.N)
class TunnelToggleActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val tunnel = Application.getTunnelManager().lastUsedTunnel ?: return
- tunnel.setStateAsync(Tunnel.State.TOGGLE).whenComplete { _, t ->
- TileService.requestListeningState(this, ComponentName(this, QuickTileService::class.java))
- onToggleFinished(t)
+ GlobalScope.launch(Dispatchers.Main.immediate) {
+ try {
+ tunnel.setStateAsync(Tunnel.State.TOGGLE)
+ } catch (e: Throwable) {
+ TileService.requestListeningState(this@TunnelToggleActivity, ComponentName(this@TunnelToggleActivity, QuickTileService::class.java))
+ val error = ErrorMessages[e]
+ val message = getString(R.string.toggle_error, error)
+ Log.e(TAG, message, e)
+ Toast.makeText(this@TunnelToggleActivity, message, Toast.LENGTH_LONG).show()
+ finishAffinity()
+ return@launch
+ }
+ TileService.requestListeningState(this@TunnelToggleActivity, ComponentName(this@TunnelToggleActivity, QuickTileService::class.java))
finishAffinity()
}
}
-
- private fun onToggleFinished(throwable: Throwable?) {
- if (throwable == null) return
- val error = ErrorMessages[throwable]
- val message = getString(R.string.toggle_error, error)
- Log.e(TAG, message, throwable)
- Toast.makeText(this, message, Toast.LENGTH_LONG).show()
- }
-
companion object {
private const val TAG = "WireGuard/TunnelToggleActivity"
}