Simplify fetch and auth instance logic

This commit is contained in:
Bnyro 2023-07-06 13:52:05 +02:00
parent eb1382e154
commit 1e13586448
5 changed files with 16 additions and 41 deletions

View File

@ -33,7 +33,6 @@ class LibreTubeApp : Application() {
/**
* Set the api and the auth api url
*/
RetrofitInstance.initialize()
ImageHelper.initializeImageLoader(this)
/**

View File

@ -9,8 +9,19 @@ import retrofit2.Retrofit
import retrofit2.create
object RetrofitInstance {
lateinit var url: String
lateinit var authUrl: String
private val url get() = PreferenceHelper.getString(PreferenceKeys.FETCH_INSTANCE, PIPED_API_URL)
private val authUrl
get() = when (PreferenceHelper.getBoolean(
PreferenceKeys.AUTH_INSTANCE_TOGGLE,
false
)) {
true -> PreferenceHelper.getString(
PreferenceKeys.AUTH_INSTANCE,
PIPED_API_URL
)
false -> url
}
val lazyMgr = resettableManager()
private val kotlinxConverterFactory = JsonHelper.json
.asConverterFactory("application/json".toMediaType())
@ -41,27 +52,4 @@ object RetrofitInstance {
.build()
.create<ExternalApi>()
}
/**
* Set the api urls needed for the [RetrofitInstance]
*/
fun initialize() {
url =
PreferenceHelper.getString(PreferenceKeys.FETCH_INSTANCE, PIPED_API_URL)
// set auth instance
authUrl =
if (
PreferenceHelper.getBoolean(
PreferenceKeys.AUTH_INSTANCE_TOGGLE,
false
)
) {
PreferenceHelper.getString(
PreferenceKeys.AUTH_INSTANCE,
PIPED_API_URL
)
} else {
url
}
}
}

View File

@ -75,7 +75,6 @@ class WelcomeActivity : BaseActivity() {
private fun startMainActivity() {
// refresh the api urls since they have changed likely
RetrofitInstance.initialize()
RetrofitInstance.lazyMgr.reset()
val mainActivityIntent = Intent(this@WelcomeActivity, MainActivity::class.java)
startActivity(mainActivityIntent)

View File

@ -65,7 +65,6 @@ class LoginDialog(
private fun signIn(username: String, password: String, createNewAccount: Boolean = false) {
val login = Login(username, password)
Log.e("url", RetrofitInstance.authUrl)
lifecycleScope.launch(Dispatchers.IO) {
val response = try {
if (createNewAccount) {

View File

@ -55,10 +55,8 @@ class InstanceSettings : BasePreferenceFragment() {
}
}
instancePref.setOnPreferenceChangeListener { _, newValue ->
RetrofitInstance.url = newValue.toString()
instancePref.setOnPreferenceChangeListener { _, _ ->
if (!authInstanceToggle.isChecked) {
RetrofitInstance.authUrl = newValue.toString()
logoutAndUpdateUI()
}
RetrofitInstance.lazyMgr.reset()
@ -66,21 +64,13 @@ class InstanceSettings : BasePreferenceFragment() {
true
}
authInstance.setOnPreferenceChangeListener { _, newValue ->
// save new auth url
RetrofitInstance.authUrl = newValue.toString()
authInstance.setOnPreferenceChangeListener { _, _ ->
RetrofitInstance.lazyMgr.reset()
logoutAndUpdateUI()
true
}
authInstanceToggle.setOnPreferenceChangeListener { _, newValue ->
// either use new auth url or the normal api url if auth instance disabled
RetrofitInstance.authUrl = if (newValue == false) {
RetrofitInstance.url
} else {
authInstance.value
}
authInstanceToggle.setOnPreferenceChangeListener { _, _ ->
RetrofitInstance.lazyMgr.reset()
logoutAndUpdateUI()
true