Check version if it is unknown
This commit is contained in:
@@ -8,5 +8,7 @@ interface BaseURLStorage {
|
||||
|
||||
suspend fun storeBaseURL(baseURL: String, version: String)
|
||||
|
||||
suspend fun storeServerVersion(version: String)
|
||||
|
||||
suspend fun getServerVersion(): String?
|
||||
}
|
||||
@@ -32,5 +32,9 @@ class BaseURLStorageImpl @Inject constructor(
|
||||
|
||||
override suspend fun getServerVersion(): String? = getValue(serverVersionKey)
|
||||
|
||||
override suspend fun storeServerVersion(version: String) {
|
||||
preferencesStorage.storeValues(Pair(serverVersionKey, version))
|
||||
}
|
||||
|
||||
private suspend fun <T> getValue(key: Preferences.Key<T>): T? = preferencesStorage.getValue(key)
|
||||
}
|
||||
@@ -66,7 +66,14 @@ class MealieDataSourceWrapper @Inject constructor(
|
||||
|
||||
private suspend fun getUrl() = baseURLStorage.requireBaseURL()
|
||||
|
||||
private suspend fun isV1() = baseURLStorage.getServerVersion().orEmpty().startsWith("v1")
|
||||
private suspend fun isV1(): Boolean {
|
||||
var version = baseURLStorage.getServerVersion()
|
||||
if (version == null) {
|
||||
version = getVersionInfo(getUrl()).version
|
||||
baseURLStorage.storeServerVersion(version)
|
||||
}
|
||||
return version.startsWith("v1")
|
||||
}
|
||||
|
||||
private suspend inline fun <T> withAuthHeader(block: (String?) -> T): T =
|
||||
runCatching { block(authRepo.getAuthHeader()) }.getOrElse {
|
||||
|
||||
Reference in New Issue
Block a user