Use server info repo in ViewModel

This commit is contained in:
Kirill Kamakin
2022-10-29 19:19:20 +02:00
parent cda22215ec
commit b2ff374cef
3 changed files with 10 additions and 3 deletions

View File

@@ -7,5 +7,7 @@ interface ServerInfoRepo {
suspend fun requireUrl(): String suspend fun requireUrl(): String
suspend fun getVersion(): ServerVersion suspend fun getVersion(): ServerVersion
suspend fun storeBaseURL(baseURL: String, version: String)
} }

View File

@@ -44,4 +44,9 @@ class ServerInfoRepoImpl @Inject constructor(
version.startsWith("v1") -> ServerVersion.V1 version.startsWith("v1") -> ServerVersion.V1
else -> throw NetworkError.NotMealie(IllegalStateException("Server version is unknown: $version")) 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)
}
} }

View File

@@ -5,7 +5,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel 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.data.baseurl.VersionDataSource
import gq.kirmanak.mealient.extensions.runCatchingExceptCancel import gq.kirmanak.mealient.extensions.runCatchingExceptCancel
import gq.kirmanak.mealient.logging.Logger import gq.kirmanak.mealient.logging.Logger
@@ -15,7 +15,7 @@ import javax.inject.Inject
@HiltViewModel @HiltViewModel
class BaseURLViewModel @Inject constructor( class BaseURLViewModel @Inject constructor(
private val serverInfoStorage: ServerInfoStorage, private val serverInfoRepo: ServerInfoRepo,
private val versionDataSource: VersionDataSource, private val versionDataSource: VersionDataSource,
private val logger: Logger, private val logger: Logger,
) : ViewModel() { ) : ViewModel() {
@@ -36,7 +36,7 @@ class BaseURLViewModel @Inject constructor(
val result = runCatchingExceptCancel { val result = runCatchingExceptCancel {
// If it returns proper version info then it must be a Mealie // If it returns proper version info then it must be a Mealie
val version = versionDataSource.getVersionInfo(baseURL).version val version = versionDataSource.getVersionInfo(baseURL).version
serverInfoStorage.storeBaseURL(baseURL, version) serverInfoRepo.storeBaseURL(baseURL, version)
} }
logger.i { "checkBaseURL: result is $result" } logger.i { "checkBaseURL: result is $result" }
_uiState.value = OperationUiState.fromResult(result) _uiState.value = OperationUiState.fromResult(result)