Convert tracker add/update/login methods to coroutines
This commit is contained in:
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user