Représenter les états de l’écran
Le repository peut maintenant retourner une liste de Country ou une erreur.
L’interface doit représenter trois situations :
- le chargement est en cours ;
- les pays ont été chargés ;
- le chargement a échoué.
Nous allons regrouper ces situations dans une interface scellée appelée CountryUiState.
Créer CountryUiState
Crée le fichier ui/screen/CountryUiState.kt.
Déclare ensuite les trois états :
...
import com.composechef.countryexplorer.model.Country
...
sealed interface CountryUiState {
data object Loading : CountryUiState
data class Success(val countries: List<Country>) : CountryUiState
data class Error(val message: String) : CountryUiState
}
Loading ne contient aucune donnée. Success transporte la liste de pays et Error contient le message à afficher.
Comme CountryUiState est scellée, Kotlin connaît tous ses états possibles. Nous pourrons donc les traiter de manière exhaustive avec un when.
Dans la prochaine partie, nous utiliserons ces états dans CountryViewModel.