@@ -28,6 +28,7 @@ import androidx.core.content.ContextCompat
2828import androidx.lifecycle.LifecycleOwner
2929import androidx.lifecycle.MutableLiveData
3030import androidx.lifecycle.ViewModel
31+ import androidx.lifecycle.lifecycleScope
3132import androidx.lifecycle.observe
3233import at.bitfire.ical4android.TaskProvider.Companion.TASK_PROVIDERS
3334import at.bitfire.vcard4android.ContactsStorageException
@@ -57,8 +58,10 @@ import com.etesync.syncadapter.utils.packageInstalled
5758import com.google.android.material.snackbar.Snackbar
5859import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
5960import org.acra.ACRA
60- import org.jetbrains.anko.doAsync
61- import org.jetbrains.anko.uiThread
61+ import androidx.lifecycle.viewModelScope
62+ import kotlinx.coroutines.Dispatchers
63+ import kotlinx.coroutines.launch
64+ import kotlinx.coroutines.withContext
6265import tourguide.tourguide.ToolTip
6366import java.util.logging.Level
6467
@@ -366,11 +369,11 @@ class AccountActivity : BaseActivity(), Toolbar.OnMenuItemClickListener, PopupMe
366369 }
367370
368371 fun loadAccount () {
369- doAsync {
370- val info = doLoad()
371- uiThread {
372- holder.value = info
372+ viewModelScope.launch {
373+ val info = withContext(Dispatchers .IO ) {
374+ doLoad()
373375 }
376+ holder.value = info
374377 }
375378 }
376379
@@ -577,29 +580,31 @@ class AccountActivity : BaseActivity(), Toolbar.OnMenuItemClickListener, PopupMe
577580 val accountManager = AccountManager .get(this )
578581 val settings = AccountSettings (this @AccountActivity, account)
579582
580- doAsync {
581- if (settings.isLegacy) {
582- val authToken = settings.authToken
583- val principal = settings.uri?.toHttpUrlOrNull()
584-
585- try {
586- val httpClient = HttpClient .Builder (this @AccountActivity, null , authToken).build().okHttpClient
587- val journalAuthenticator = JournalAuthenticator (httpClient, principal!! )
588- journalAuthenticator.invalidateAuthToken(authToken)
589- } catch (e: Exceptions .HttpException ) {
590- // Ignore failures for now
591- Logger .log.warning(e.toString())
592- }
593- } else {
594- EtebaseLocalCache .clearUserCache(this @AccountActivity, account.name)
595-
596- try {
597- val httpClient = HttpClient .Builder (this @AccountActivity).build()
598- val etebase = EtebaseLocalCache .getEtebase(this @AccountActivity, httpClient.okHttpClient, settings)
599- etebase.logout()
600- } catch (e: EtebaseException ) {
601- // Ignore failures for now
602- Logger .log.warning(e.toString())
583+ lifecycleScope.launch {
584+ withContext(Dispatchers .IO ) {
585+ if (settings.isLegacy) {
586+ val authToken = settings.authToken
587+ val principal = settings.uri?.toHttpUrlOrNull()
588+
589+ try {
590+ val httpClient = HttpClient .Builder (this @AccountActivity, null , authToken).build().okHttpClient
591+ val journalAuthenticator = JournalAuthenticator (httpClient, principal!! )
592+ journalAuthenticator.invalidateAuthToken(authToken)
593+ } catch (e: Exceptions .HttpException ) {
594+ // Ignore failures for now
595+ Logger .log.warning(e.toString())
596+ }
597+ } else {
598+ EtebaseLocalCache .clearUserCache(this @AccountActivity, account.name)
599+
600+ try {
601+ val httpClient = HttpClient .Builder (this @AccountActivity).build()
602+ val etebase = EtebaseLocalCache .getEtebase(this @AccountActivity, httpClient.okHttpClient, settings)
603+ etebase.logout()
604+ } catch (e: EtebaseException ) {
605+ // Ignore failures for now
606+ Logger .log.warning(e.toString())
607+ }
603608 }
604609 }
605610 }
0 commit comments