Convert tracker add/update/login methods to coroutines

This commit is contained in:
arkon
2020-12-24 17:50:28 -05:00
parent 6fcf6ae1f5
commit ea33179a95
15 changed files with 152 additions and 190 deletions
@@ -1,8 +1,8 @@
package eu.kanade.tachiyomi.ui.setting.track
import android.net.Uri
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.launchUI
class AnilistLoginActivity : BaseOAuthLoginActivity() {
@@ -10,17 +10,12 @@ class AnilistLoginActivity : BaseOAuthLoginActivity() {
val regex = "(?:access_token=)(.*?)(?:&)".toRegex()
val matchResult = regex.find(data?.fragment.toString())
if (matchResult?.groups?.get(1) != null) {
trackManager.aniList.login(matchResult.groups[1]!!.value)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
returnToSettings()
},
{
returnToSettings()
}
)
launchIO {
trackManager.aniList.login(matchResult.groups[1]!!.value)
launchUI {
returnToSettings()
}
}
} else {
trackManager.aniList.logout()
returnToSettings()
@@ -1,25 +1,20 @@
package eu.kanade.tachiyomi.ui.setting.track
import android.net.Uri
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.launchUI
class BangumiLoginActivity : BaseOAuthLoginActivity() {
override fun handleResult(data: Uri?) {
val code = data?.getQueryParameter("code")
if (code != null) {
trackManager.bangumi.login(code)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
returnToSettings()
},
{
returnToSettings()
}
)
launchIO {
trackManager.bangumi.login(code)
launchUI {
returnToSettings()
}
}
} else {
trackManager.bangumi.logout()
returnToSettings()
@@ -1,25 +1,20 @@
package eu.kanade.tachiyomi.ui.setting.track
import android.net.Uri
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.launchUI
class MyAnimeListLoginActivity : BaseOAuthLoginActivity() {
override fun handleResult(data: Uri?) {
val code = data?.getQueryParameter("code")
if (code != null) {
trackManager.myAnimeList.login(code)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
returnToSettings()
},
{
returnToSettings()
}
)
launchIO {
trackManager.myAnimeList.login(code)
launchUI {
returnToSettings()
}
}
} else {
trackManager.myAnimeList.logout()
returnToSettings()
@@ -1,25 +1,20 @@
package eu.kanade.tachiyomi.ui.setting.track
import android.net.Uri
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.launchUI
class ShikimoriLoginActivity : BaseOAuthLoginActivity() {
override fun handleResult(data: Uri?) {
val code = data?.getQueryParameter("code")
if (code != null) {
trackManager.shikimori.login(code)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
returnToSettings()
},
{
returnToSettings()
}
)
launchIO {
trackManager.shikimori.login(code)
launchUI {
returnToSettings()
}
}
} else {
trackManager.shikimori.logout()
returnToSettings()
@@ -7,10 +7,10 @@ import androidx.core.os.bundleOf
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.data.track.TrackService
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.launchUI
import eu.kanade.tachiyomi.util.system.toast
import eu.kanade.tachiyomi.widget.preference.LoginDialogPreference
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
@@ -34,8 +34,6 @@ class TrackLoginDialog(
}
override fun checkLogin() {
requestSubscription?.unsubscribe()
if (binding!!.username.text.isNullOrEmpty() || binding!!.password.text.isNullOrEmpty()) {
return
}
@@ -44,20 +42,21 @@ class TrackLoginDialog(
val user = binding!!.username.text.toString()
val pass = binding!!.password.text.toString()
requestSubscription = service.login(user, pass)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
launchIO {
try {
service.login(user, pass)
launchUI {
dialog?.dismiss()
view?.context?.toast(R.string.login_success)
},
{ error ->
}
} catch (e: Throwable) {
launchUI {
binding!!.login.progress = -1
binding!!.login.setText(R.string.unknown_error)
error.message?.let { view?.context?.toast(it) }
e.message?.let { view?.context?.toast(it) }
}
)
}
}
}
override fun onDialogClosed() {