aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2020-09-26 13:34:20 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2020-09-26 13:49:14 +0200
commit938399d881aa6b365be131ffb3a517d64be427bb (patch)
tree818d6d25c5394d0f7af15cf7ed130b48992d0154 /ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt
parentui: print proper exception trace from log viewer (diff)
downloadwireguard-android-938399d881aa6b365be131ffb3a517d64be427bb.tar.xz
wireguard-android-938399d881aa6b365be131ffb3a517d64be427bb.zip
ui: queue up tunnel mutating on activity scope instead of fragment scope
Fragment scopes get cancelled when the fragment goes away, but we don't actually want to cancel an in-flight transition in that case. Also, before when the fragment would cancel, there'd be an exception, and the exception handler would call Fragment::getString, which in turn called requireContext, which caused an exception. Work around this by using the `activity ?: Application.get()` idiom to always have a context for strings and toasts. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt')
-rw-r--r--ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt18
1 files changed, 9 insertions, 9 deletions
diff --git a/ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt b/ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt
index cd2431c9..0919f5ea 100644
--- a/ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt
+++ b/ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt
@@ -29,15 +29,15 @@ class ConfigNamingDialogFragment : DialogFragment() {
private var imm: InputMethodManager? = null
private fun createTunnelAndDismiss() {
- binding?.let {
- val name = it.tunnelNameText.text.toString()
- lifecycleScope.launch {
- try {
- Application.getTunnelManager().create(name, config)
- dismiss()
- } catch (e: Throwable) {
- it.tunnelNameTextLayout.error = e.message
- }
+ val binding = binding ?: return
+ val activity = activity ?: return
+ val name = binding.tunnelNameText.text.toString()
+ activity.lifecycleScope.launch {
+ try {
+ Application.getTunnelManager().create(name, config)
+ dismiss()
+ } catch (e: Throwable) {
+ binding.tunnelNameTextLayout.error = e.message
}
}
}