mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 08:20:32 +05:30
58 lines
1.8 KiB
Kotlin
58 lines
1.8 KiB
Kotlin
package com.github.libretube.api
|
|
|
|
import com.github.libretube.constants.PIPED_API_URL
|
|
import com.github.libretube.constants.PreferenceKeys
|
|
import com.github.libretube.helpers.PreferenceHelper
|
|
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
|
import okhttp3.MediaType.Companion.toMediaType
|
|
import retrofit2.Retrofit
|
|
import retrofit2.create
|
|
|
|
object RetrofitInstance {
|
|
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())
|
|
|
|
val api by resettableLazy(lazyMgr) {
|
|
Retrofit.Builder()
|
|
.baseUrl(url)
|
|
.callFactory(CronetHelper.callFactory)
|
|
.addConverterFactory(kotlinxConverterFactory)
|
|
.build()
|
|
.create<PipedApi>()
|
|
}
|
|
|
|
val authApi by resettableLazy(lazyMgr) {
|
|
Retrofit.Builder()
|
|
.baseUrl(authUrl)
|
|
.callFactory(CronetHelper.callFactory)
|
|
.addConverterFactory(kotlinxConverterFactory)
|
|
.build()
|
|
.create<PipedApi>()
|
|
}
|
|
|
|
val externalApi by resettableLazy(lazyMgr) {
|
|
Retrofit.Builder()
|
|
.baseUrl(url)
|
|
.callFactory(CronetHelper.callFactory)
|
|
.addConverterFactory(kotlinxConverterFactory)
|
|
.build()
|
|
.create<ExternalApi>()
|
|
}
|
|
}
|