Super basic error handling for the feyenoord api.

This commit is contained in:
KaasKop
2024-12-30 20:06:56 +01:00
parent dce61f7477
commit bc08cac918
3 changed files with 14 additions and 15 deletions

View File

@@ -11,6 +11,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
@@ -31,18 +32,13 @@ fun FeyenoordScreen(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
if (feyenoordUiState.matches.isEmpty()) {
if (feyenoordUiState.loading) {
CircularProgressIndicator()
} else if (feyenoordUiState.error != null) {
Text(stringResource(feyenoordUiState.error!!))
} else {
MatchList(matches = feyenoordUiState.matches, Modifier)
}
// if (feyenoordUiState.loading) {
// CircularProgressIndicator()
// } else if (feyenoordUiState.error) {
// Text(feyenoordUiState.errorMessage)
// } else {
// MatchList(matches = feyenoordUiState.matches, Modifier)
// }
}
}

View File

@@ -1,23 +1,21 @@
package com.mitchelbv.thuis_c.ui.feyenoord
import androidx.lifecycle.MutableLiveData
import android.content.res.Resources
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.mitchelbv.thuis_c.network.feyenoord.FeyenoordRetrofitHelper
import com.mitchelbv.thuis_c.network.feyenoord.FeyenoordService
import com.mitchelbv.thuis_c.R
import com.mitchelbv.thuis_c.repository.FeyenoordRepository
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.TimeZone
data class FeyenoordUiState(
val matches: List<Match> = listOf(),
val loading: Boolean = true,
val error: Int? = null
)
class FeyenoordViewModel : ViewModel() {
@@ -31,7 +29,11 @@ class FeyenoordViewModel : ViewModel() {
private fun fillMatches() {
viewModelScope.launch(Dispatchers.IO) {
try {
_uiState.value = FeyenoordUiState(matches = feyenoordRepository.getMatches(), loading = false)
} catch (e: Exception) {
_uiState.value = FeyenoordUiState(loading = false, error = R.string.feyenoord_network_error)
}
}
}
}

View File

@@ -10,4 +10,5 @@
<string name="freezer_list_empty">Er zijn geen vriezers</string>
<string name="edit_freezer">Vriezer aanpassen</string>
<string name="feyenoord_network_error">Er is geen netwerk beschikbaar</string>
</resources>