Use server info repo in ViewModel
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user