Use server info repo in ViewModel
This commit is contained in:
@@ -7,5 +7,7 @@ interface ServerInfoRepo {
|
||||
suspend fun requireUrl(): String
|
||||
|
||||
suspend fun getVersion(): ServerVersion
|
||||
|
||||
suspend fun storeBaseURL(baseURL: String, version: String)
|
||||
}
|
||||
|
||||
|
||||
@@ -44,4 +44,9 @@ class ServerInfoRepoImpl @Inject constructor(
|
||||
version.startsWith("v1") -> ServerVersion.V1
|
||||
else -> throw NetworkError.NotMealie(IllegalStateException("Server version is unknown: $version"))
|
||||
}
|
||||
|
||||
override suspend fun storeBaseURL(baseURL: String, version: String) {
|
||||
logger.v { "storeBaseURL() called with: baseURL = $baseURL, version = $version" }
|
||||
serverInfoStorage.storeBaseURL(baseURL, version)
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import gq.kirmanak.mealient.data.baseurl.ServerInfoStorage
|
||||
import gq.kirmanak.mealient.data.baseurl.ServerInfoRepo
|
||||
import gq.kirmanak.mealient.data.baseurl.VersionDataSource
|
||||
import gq.kirmanak.mealient.extensions.runCatchingExceptCancel
|
||||
import gq.kirmanak.mealient.logging.Logger
|
||||
@@ -15,7 +15,7 @@ import javax.inject.Inject
|
||||
|
||||
@HiltViewModel
|
||||
class BaseURLViewModel @Inject constructor(
|
||||
private val serverInfoStorage: ServerInfoStorage,
|
||||
private val serverInfoRepo: ServerInfoRepo,
|
||||
private val versionDataSource: VersionDataSource,
|
||||
private val logger: Logger,
|
||||
) : ViewModel() {
|
||||
@@ -36,7 +36,7 @@ class BaseURLViewModel @Inject constructor(
|
||||
val result = runCatchingExceptCancel {
|
||||
// If it returns proper version info then it must be a Mealie
|
||||
val version = versionDataSource.getVersionInfo(baseURL).version
|
||||
serverInfoStorage.storeBaseURL(baseURL, version)
|
||||
serverInfoRepo.storeBaseURL(baseURL, version)
|
||||
}
|
||||
logger.i { "checkBaseURL: result is $result" }
|
||||
_uiState.value = OperationUiState.fromResult(result)
|
||||
|
||||
Reference in New Issue
Block a user