aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2020-09-14 14:27:55 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2020-09-14 14:40:10 +0200
commit2fc0bb1a03f624e297d2afdeb95231cf906afc21 (patch)
treeb1f9ed3d59683b5bbe4975821988c0e9ce7f2e84 /ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt
parentui: remove hacky manual check for keyguard (diff)
downloadwireguard-android-2fc0bb1a03f624e297d2afdeb95231cf906afc21.tar.xz
wireguard-android-2fc0bb1a03f624e297d2afdeb95231cf906afc21.zip
coroutines: convert low-hanging fruits
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r--ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt13
1 files changed, 9 insertions, 4 deletions
diff --git a/ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt b/ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt
index 0734df45..f944233b 100644
--- a/ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt
+++ b/ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt
@@ -16,6 +16,10 @@ import com.wireguard.android.R
import com.wireguard.android.backend.Backend
import com.wireguard.android.backend.GoBackend
import com.wireguard.android.backend.WgQuickBackend
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
import java.util.Locale
class VersionPreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) {
@@ -45,11 +49,12 @@ class VersionPreference(context: Context, attrs: AttributeSet?) : Preference(con
init {
Application.getBackendAsync().thenAccept { backend ->
versionSummary = getContext().getString(R.string.version_summary_checking, getBackendPrettyName(context, backend).toLowerCase(Locale.ENGLISH))
- Application.getAsyncWorker().supplyAsync(backend::getVersion).whenComplete { version, exception ->
- versionSummary = if (exception == null)
- getContext().getString(R.string.version_summary, getBackendPrettyName(context, backend), version)
- else
+ CoroutineScope(Dispatchers.Main).launch {
+ versionSummary = try {
+ getContext().getString(R.string.version_summary, getBackendPrettyName(context, backend), withContext(Dispatchers.IO) { backend.version })
+ } catch (_: Exception) {
getContext().getString(R.string.version_summary_unknown, getBackendPrettyName(context, backend).toLowerCase(Locale.ENGLISH))
+ }
notifyChanged()
}
}