From 61b6596c1a3ad22be06ee35fb3679fd588395830 Mon Sep 17 00:00:00 2001 From: helenjb Date: Mon, 14 Apr 2025 17:23:18 -0400 Subject: [PATCH 1/6] Limit sport filters for MVP --- .../java/com/cornellappdev/score/viewmodel/HomeViewModel.kt | 5 ++++- .../com/cornellappdev/score/viewmodel/PastGamesViewModel.kt | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt index f4f6778..4df20c4 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt @@ -24,6 +24,7 @@ data class HomeUiState( is ApiResponse.Success -> loadedState.data.filter { game -> (selectedGender == GenderDivision.ALL || game.gender == selectedGender.displayName) && (sportSelect is SportSelection.All || (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) + && (game.sport == "Baseball" || game.sport == "Basketball" || game.sport == "Field Hockey" || game.sport == "Football" || game.sport == "Ice Hockey" || game.sport == "Lacrosse" || game.sport == "Soccer") } ApiResponse.Loading -> emptyList() @@ -39,7 +40,9 @@ class HomeViewModel @Inject constructor( HomeUiState( selectedGender = GenderDivision.ALL, sportSelect = SportSelection.All, - selectionList = Sport.getSportSelectionList(), + selectionList = Sport.getSportSelectionList().filter { + it is SportSelection.All || (it is SportSelection.SportSelect && (it.sport.displayName == "Baseball" || it.sport.displayName == "Basketball" || it.sport.displayName == "Field Hockey" || it.sport.displayName == "Football" || it.sport.displayName == "Ice Hockey" || it.sport.displayName == "Lacrosse" || it.sport.displayName == "Soccer")) + }, loadedState = ApiResponse.Loading ) ) { diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt index 43a2888..9c9fe6d 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt @@ -24,6 +24,7 @@ data class PastGamesUiState( is ApiResponse.Success -> loadedState.data.filter { game -> (selectedGender == GenderDivision.ALL || game.gender == selectedGender.displayName) && (sportSelect is SportSelection.All || (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) + && (game.sport == "Baseball" || game.sport == "Basketball" || game.sport == "Field Hockey" || game.sport == "Football" || game.sport == "Ice Hockey" || game.sport == "Lacrosse" || game.sport == "Soccer") } ApiResponse.Loading -> emptyList() @@ -39,7 +40,9 @@ class PastGamesViewModel @Inject constructor( PastGamesUiState( selectedGender = GenderDivision.ALL, sportSelect = SportSelection.All, - selectionList = Sport.getSportSelectionList(), + selectionList = Sport.getSportSelectionList().filter { + it is SportSelection.All || (it is SportSelection.SportSelect && (it.sport.displayName == "Baseball" || it.sport.displayName == "Basketball" || it.sport.displayName == "Field Hockey" || it.sport.displayName == "Football" || it.sport.displayName == "Ice Hockey" || it.sport.displayName == "Lacrosse" || it.sport.displayName == "Soccer")) + }, loadedState = ApiResponse.Loading ) ) { From 1d2b74ae0089b7e3d59c0982cd3a4100d4f663ba Mon Sep 17 00:00:00 2001 From: helenjb Date: Mon, 14 Apr 2025 17:35:40 -0400 Subject: [PATCH 2/6] Fix game filtering for carousel --- .../com/cornellappdev/score/viewmodel/HomeViewModel.kt | 10 +++++++++- .../score/viewmodel/PastGamesViewModel.kt | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt index 4df20c4..35846d9 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt @@ -30,7 +30,15 @@ data class HomeUiState( ApiResponse.Loading -> emptyList() ApiResponse.Error -> emptyList() } - val upcomingGames: List = filteredGames.take(3) + val upcomingGames: List + get() = when (loadedState) { + is ApiResponse.Success -> loadedState.data.filter { game -> + (game.sport == "Baseball" || game.sport == "Basketball" || game.sport == "Field Hockey" || game.sport == "Football" || game.sport == "Ice Hockey" || game.sport == "Lacrosse" || game.sport == "Soccer") + } + + ApiResponse.Loading -> emptyList() + ApiResponse.Error -> emptyList() + }.take(3) } @HiltViewModel diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt index 9c9fe6d..8f59a81 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt @@ -30,7 +30,15 @@ data class PastGamesUiState( ApiResponse.Loading -> emptyList() ApiResponse.Error -> emptyList() } - val pastGames: List = filteredGames.take(3) + val pastGames: List + get() = when (loadedState) { + is ApiResponse.Success -> loadedState.data.filter { game -> + (game.sport == "Baseball" || game.sport == "Basketball" || game.sport == "Field Hockey" || game.sport == "Football" || game.sport == "Ice Hockey" || game.sport == "Lacrosse" || game.sport == "Soccer") + } + + ApiResponse.Loading -> emptyList() + ApiResponse.Error -> emptyList() + }.take(3) } @HiltViewModel From fc95915ec19d34a4c634d46e26d436d41ef2197f Mon Sep 17 00:00:00 2001 From: helenjb Date: Mon, 14 Apr 2025 23:15:40 -0400 Subject: [PATCH 3/6] Refactored --- .../main/java/com/cornellappdev/score/model/Game.kt | 11 ++++++++++- .../cornellappdev/score/viewmodel/HomeViewModel.kt | 11 +++++++---- .../score/viewmodel/PastGamesViewModel.kt | 11 +++++++---- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/score/model/Game.kt b/app/src/main/java/com/cornellappdev/score/model/Game.kt index b2e6c79..862dcd2 100644 --- a/app/src/main/java/com/cornellappdev/score/model/Game.kt +++ b/app/src/main/java/com/cornellappdev/score/model/Game.kt @@ -144,4 +144,13 @@ fun Game.toGameCardData(): GameCardData { sportIcon = Sport.fromDisplayName(sport)?.emptyIcon ?: R.drawable.ic_empty_placeholder ) -} \ No newline at end of file +} + +val validSports = setOf( + "Baseball", "Basketball", "Field Hockey", + "Football", "Ice Hockey", "Lacrosse", "Soccer" +) + +fun isValidSport(sportName: String): Boolean { + return sportName in validSports +} diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt index 35846d9..8fa5220 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt @@ -6,6 +6,7 @@ import com.cornellappdev.score.model.GenderDivision import com.cornellappdev.score.model.ScoreRepository import com.cornellappdev.score.model.Sport import com.cornellappdev.score.model.SportSelection +import com.cornellappdev.score.model.isValidSport import com.cornellappdev.score.model.map import com.cornellappdev.score.model.toGameCardData import dagger.hilt.android.lifecycle.HiltViewModel @@ -23,8 +24,9 @@ data class HomeUiState( get() = when (loadedState) { is ApiResponse.Success -> loadedState.data.filter { game -> (selectedGender == GenderDivision.ALL || game.gender == selectedGender.displayName) && - (sportSelect is SportSelection.All || (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) - && (game.sport == "Baseball" || game.sport == "Basketball" || game.sport == "Field Hockey" || game.sport == "Football" || game.sport == "Ice Hockey" || game.sport == "Lacrosse" || game.sport == "Soccer") + (sportSelect is SportSelection.All || + (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) && + isValidSport(game.sport) } ApiResponse.Loading -> emptyList() @@ -33,7 +35,7 @@ data class HomeUiState( val upcomingGames: List get() = when (loadedState) { is ApiResponse.Success -> loadedState.data.filter { game -> - (game.sport == "Baseball" || game.sport == "Basketball" || game.sport == "Field Hockey" || game.sport == "Football" || game.sport == "Ice Hockey" || game.sport == "Lacrosse" || game.sport == "Soccer") + isValidSport(game.sport) } ApiResponse.Loading -> emptyList() @@ -49,7 +51,8 @@ class HomeViewModel @Inject constructor( selectedGender = GenderDivision.ALL, sportSelect = SportSelection.All, selectionList = Sport.getSportSelectionList().filter { - it is SportSelection.All || (it is SportSelection.SportSelect && (it.sport.displayName == "Baseball" || it.sport.displayName == "Basketball" || it.sport.displayName == "Field Hockey" || it.sport.displayName == "Football" || it.sport.displayName == "Ice Hockey" || it.sport.displayName == "Lacrosse" || it.sport.displayName == "Soccer")) + it is SportSelection.All || + (it is SportSelection.SportSelect && isValidSport(it.sport.displayName)) }, loadedState = ApiResponse.Loading ) diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt index 8f59a81..1c9daa6 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt @@ -6,6 +6,7 @@ import com.cornellappdev.score.model.GenderDivision import com.cornellappdev.score.model.ScoreRepository import com.cornellappdev.score.model.Sport import com.cornellappdev.score.model.SportSelection +import com.cornellappdev.score.model.isValidSport import com.cornellappdev.score.model.map import com.cornellappdev.score.model.toGameCardData import dagger.hilt.android.lifecycle.HiltViewModel @@ -23,8 +24,9 @@ data class PastGamesUiState( get() = when (loadedState) { is ApiResponse.Success -> loadedState.data.filter { game -> (selectedGender == GenderDivision.ALL || game.gender == selectedGender.displayName) && - (sportSelect is SportSelection.All || (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) - && (game.sport == "Baseball" || game.sport == "Basketball" || game.sport == "Field Hockey" || game.sport == "Football" || game.sport == "Ice Hockey" || game.sport == "Lacrosse" || game.sport == "Soccer") + (sportSelect is SportSelection.All || + (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) && + isValidSport(game.sport) } ApiResponse.Loading -> emptyList() @@ -33,7 +35,7 @@ data class PastGamesUiState( val pastGames: List get() = when (loadedState) { is ApiResponse.Success -> loadedState.data.filter { game -> - (game.sport == "Baseball" || game.sport == "Basketball" || game.sport == "Field Hockey" || game.sport == "Football" || game.sport == "Ice Hockey" || game.sport == "Lacrosse" || game.sport == "Soccer") + isValidSport(game.sport) } ApiResponse.Loading -> emptyList() @@ -49,7 +51,8 @@ class PastGamesViewModel @Inject constructor( selectedGender = GenderDivision.ALL, sportSelect = SportSelection.All, selectionList = Sport.getSportSelectionList().filter { - it is SportSelection.All || (it is SportSelection.SportSelect && (it.sport.displayName == "Baseball" || it.sport.displayName == "Basketball" || it.sport.displayName == "Field Hockey" || it.sport.displayName == "Football" || it.sport.displayName == "Ice Hockey" || it.sport.displayName == "Lacrosse" || it.sport.displayName == "Soccer")) + it is SportSelection.All || + (it is SportSelection.SportSelect && isValidSport(it.sport.displayName)) }, loadedState = ApiResponse.Loading ) From 1e14647e00745a1a59cb6fd4c8a4deb55b60e69d Mon Sep 17 00:00:00 2001 From: helenjb Date: Mon, 14 Apr 2025 23:38:23 -0400 Subject: [PATCH 4/6] Fix game carousel text overflow --- .../com/cornellappdev/score/components/FeaturedGameCard.kt | 3 ++- .../java/com/cornellappdev/score/components/GameCard.kt | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/score/components/FeaturedGameCard.kt b/app/src/main/java/com/cornellappdev/score/components/FeaturedGameCard.kt index ed55c55..45226f0 100644 --- a/app/src/main/java/com/cornellappdev/score/components/FeaturedGameCard.kt +++ b/app/src/main/java/com/cornellappdev/score/components/FeaturedGameCard.kt @@ -172,7 +172,8 @@ fun FeaturedGameCard( bottomStart = 16.dp, bottomEnd = 16.dp ) - ) + ), + isFeatured = true ) } } diff --git a/app/src/main/java/com/cornellappdev/score/components/GameCard.kt b/app/src/main/java/com/cornellappdev/score/components/GameCard.kt index 7d28d31..a442613 100644 --- a/app/src/main/java/com/cornellappdev/score/components/GameCard.kt +++ b/app/src/main/java/com/cornellappdev/score/components/GameCard.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import coil3.compose.AsyncImage @@ -57,6 +58,7 @@ fun GameCard( sportIcon: Painter, topCornerRound: Boolean, modifier: Modifier = Modifier, + isFeatured: Boolean = false, onClick: (Boolean) -> Unit = {} ) { val cardShape = if (topCornerRound) { @@ -116,8 +118,11 @@ fun GameCard( Text( text = team, style = heading2, - color = GrayPrimary + color = GrayPrimary, + maxLines = if (isFeatured) 1 else Int.MAX_VALUE, + overflow = if (isFeatured) TextOverflow.Ellipsis else TextOverflow.Clip ) + } Row( horizontalArrangement = Arrangement.spacedBy(4.dp, Alignment.Start), From f0d19c95c09c71f6a8fe13c27e7036114315f19d Mon Sep 17 00:00:00 2001 From: helenjb Date: Tue, 15 Apr 2025 13:44:28 -0400 Subject: [PATCH 5/6] Solve merge conflicts --- .../com/cornellappdev/score/viewmodel/HomeViewModel.kt | 7 +++++-- .../cornellappdev/score/viewmodel/PastGamesViewModel.kt | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt index 9626dd0..6bae350 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt @@ -50,7 +50,7 @@ class HomeViewModel @Inject constructor( HomeUiState( selectedGender = GenderDivision.ALL, sportSelect = SportSelection.All, - selectionList = Sport.getSportSelectionList(GenderDivison.ALL).filter { + selectionList = Sport.getSportSelectionList(GenderDivision.ALL).filter { it is SportSelection.All || (it is SportSelection.SportSelect && isValidSport(it.sport.displayName)) }, @@ -86,7 +86,10 @@ class HomeViewModel @Inject constructor( applyMutation { copy( selectedGender = gender, - selectionList = Sport.getSportSelectionList(gender) + selectionList = Sport.getSportSelectionList(gender).filter { + it is SportSelection.All || + (it is SportSelection.SportSelect && isValidSport(it.sport.displayName)) + }, ) } } diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt index cac1915..2e72771 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt @@ -85,7 +85,10 @@ class PastGamesViewModel @Inject constructor( applyMutation { copy( selectedGender = gender, - selectionList = Sport.getSportSelectionList(gender) + selectionList = Sport.getSportSelectionList(gender).filter { + it is SportSelection.All || + (it is SportSelection.SportSelect && isValidSport(it.sport.displayName)) + }, ) } } From dd4fa99e3bce06124ac76c5d0f1a54bad6f27adb Mon Sep 17 00:00:00 2001 From: helenjb Date: Tue, 15 Apr 2025 16:05:41 -0400 Subject: [PATCH 6/6] Refactor filtering to repository --- .../com/cornellappdev/score/model/Game.kt | 11 +--- .../score/model/ScoreRepository.kt | 58 ++++++++++--------- .../com/cornellappdev/score/model/Sport.kt | 3 +- .../cornellappdev/score/util/GameDataUtil.kt | 9 +++ .../score/viewmodel/HomeViewModel.kt | 18 ++---- .../score/viewmodel/PastGamesViewModel.kt | 18 ++---- 6 files changed, 50 insertions(+), 67 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/score/model/Game.kt b/app/src/main/java/com/cornellappdev/score/model/Game.kt index 3240485..d6dfd42 100644 --- a/app/src/main/java/com/cornellappdev/score/model/Game.kt +++ b/app/src/main/java/com/cornellappdev/score/model/Game.kt @@ -277,13 +277,4 @@ fun List.toScoreEvents(teamLogo: String): List description = boxScore.description ) } -} - -val validSports = setOf( - "Baseball", "Basketball", "Field Hockey", - "Football", "Ice Hockey", "Lacrosse", "Soccer" -) - -fun isValidSport(sportName: String): Boolean { - return sportName in validSports -} +} \ No newline at end of file diff --git a/app/src/main/java/com/cornellappdev/score/model/ScoreRepository.kt b/app/src/main/java/com/cornellappdev/score/model/ScoreRepository.kt index 43cce31..6e8dd19 100644 --- a/app/src/main/java/com/cornellappdev/score/model/ScoreRepository.kt +++ b/app/src/main/java/com/cornellappdev/score/model/ScoreRepository.kt @@ -12,6 +12,7 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import javax.inject.Inject import javax.inject.Singleton +import com.cornellappdev.score.util.isValidSport /** * This is a singleton responsible for fetching and caching all data for Score. @@ -45,34 +46,35 @@ class ScoreRepository @Inject constructor( val games = result.getOrNull() val gamesList: List = - games?.games?.mapNotNull { game -> - /** - * The final scores in the past game cards are obtained by parsing a String - * result from the GameQuery, which is oftentimes in the format - * Result, CornellScore-OpponentScore (e.g. "W, 2-1"). Not all of the strings - * are in this format (e.g. 4th of 6, 1498 points for women's Swimming and - * Diving), but in this case, the cornellScore and otherScore parameters of - * the game and associated card should be null, and as of right now, - * null-scored games are filtered out. - */ - val scores = game?.result?.split(",")?.getOrNull(1)?.split("-") - val cornellScore = scores?.getOrNull(0)?.toNumberOrNull() - val otherScore = scores?.getOrNull(1)?.toNumberOrNull() - game?.team?.image?.let { - Game( - id = game.id ?: "", // Should never be null - teamLogo = it, - teamName = game.team.name, - teamColor = parseColor(game.team.color).copy(alpha = 0.4f * 255), - gender = if (game.gender == "Mens") "Men's" else "Women's", - sport = game.sport, - date = game.date, - city = game.city, - cornellScore = cornellScore, - otherScore = otherScore - ) - } - } ?: emptyList() + games?.games?.filter { game -> isValidSport(game?.sport ?: "") } + ?.mapNotNull { game -> + /** + * The final scores in the past game cards are obtained by parsing a String + * result from the GameQuery, which is oftentimes in the format + * Result, CornellScore-OpponentScore (e.g. "W, 2-1"). Not all of the strings + * are in this format (e.g. 4th of 6, 1498 points for women's Swimming and + * Diving), but in this case, the cornellScore and otherScore parameters of + * the game and associated card should be null, and as of right now, + * null-scored games are filtered out. + */ + val scores = game?.result?.split(",")?.getOrNull(1)?.split("-") + val cornellScore = scores?.getOrNull(0)?.toNumberOrNull() + val otherScore = scores?.getOrNull(1)?.toNumberOrNull() + game?.team?.image?.let { + Game( + id = game.id ?: "", // Should never be null + teamLogo = it, + teamName = game.team.name, + teamColor = parseColor(game.team.color).copy(alpha = 0.4f * 255), + gender = if (game.gender == "Mens") "Men's" else "Women's", + sport = game.sport, + date = game.date, + city = game.city, + cornellScore = cornellScore, + otherScore = otherScore + ) + } + } ?: emptyList() _upcomingGamesFlow.value = ApiResponse.Success(gamesList) } else { _upcomingGamesFlow.value = ApiResponse.Error diff --git a/app/src/main/java/com/cornellappdev/score/model/Sport.kt b/app/src/main/java/com/cornellappdev/score/model/Sport.kt index 54d682c..5e8fd07 100644 --- a/app/src/main/java/com/cornellappdev/score/model/Sport.kt +++ b/app/src/main/java/com/cornellappdev/score/model/Sport.kt @@ -1,6 +1,7 @@ package com.cornellappdev.score.model import androidx.annotation.DrawableRes +import com.cornellappdev.score.util.isValidSport import com.cornellappdev.score.R enum class Sport( @@ -173,7 +174,7 @@ enum class Sport( GenderDivision.FEMALE -> Sport.entries.filter { it.gender == GenderDivision.FEMALE || it.gender == GenderDivision.ALL } GenderDivision.ALL, null -> Sport.entries - } + }.filter { isValidSport(it.displayName) } return listOf(SportSelection.All) + filteredSports.map { SportSelection.SportSelect(it) } } diff --git a/app/src/main/java/com/cornellappdev/score/util/GameDataUtil.kt b/app/src/main/java/com/cornellappdev/score/util/GameDataUtil.kt index 985b9b5..a25e9ee 100644 --- a/app/src/main/java/com/cornellappdev/score/util/GameDataUtil.kt +++ b/app/src/main/java/com/cornellappdev/score/util/GameDataUtil.kt @@ -102,3 +102,12 @@ fun parseResultScore(result: String?): Pair? { } } +val validSports = setOf( + "Baseball", "Basketball", "Field Hockey", + "Football", "Ice Hockey", "Lacrosse", "Soccer" +) + +fun isValidSport(sportName: String): Boolean { + return sportName in validSports +} + diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt index 6bae350..ee6159b 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/HomeViewModel.kt @@ -6,7 +6,6 @@ import com.cornellappdev.score.model.GenderDivision import com.cornellappdev.score.model.ScoreRepository import com.cornellappdev.score.model.Sport import com.cornellappdev.score.model.SportSelection -import com.cornellappdev.score.model.isValidSport import com.cornellappdev.score.model.map import com.cornellappdev.score.model.toGameCardData import dagger.hilt.android.lifecycle.HiltViewModel @@ -25,8 +24,7 @@ data class HomeUiState( is ApiResponse.Success -> loadedState.data.filter { game -> (selectedGender == GenderDivision.ALL || game.gender == selectedGender.displayName) && (sportSelect is SportSelection.All || - (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) && - isValidSport(game.sport) + (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) } ApiResponse.Loading -> emptyList() @@ -34,9 +32,7 @@ data class HomeUiState( } val upcomingGames: List get() = when (loadedState) { - is ApiResponse.Success -> loadedState.data.filter { game -> - isValidSport(game.sport) - } + is ApiResponse.Success -> loadedState.data ApiResponse.Loading -> emptyList() ApiResponse.Error -> emptyList() @@ -50,10 +46,7 @@ class HomeViewModel @Inject constructor( HomeUiState( selectedGender = GenderDivision.ALL, sportSelect = SportSelection.All, - selectionList = Sport.getSportSelectionList(GenderDivision.ALL).filter { - it is SportSelection.All || - (it is SportSelection.SportSelect && isValidSport(it.sport.displayName)) - }, + selectionList = Sport.getSportSelectionList(GenderDivision.ALL), loadedState = ApiResponse.Loading ) ) { @@ -86,10 +79,7 @@ class HomeViewModel @Inject constructor( applyMutation { copy( selectedGender = gender, - selectionList = Sport.getSportSelectionList(gender).filter { - it is SportSelection.All || - (it is SportSelection.SportSelect && isValidSport(it.sport.displayName)) - }, + selectionList = Sport.getSportSelectionList(gender), ) } } diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt index 2e72771..c10c400 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/PastGamesViewModel.kt @@ -6,7 +6,6 @@ import com.cornellappdev.score.model.GenderDivision import com.cornellappdev.score.model.ScoreRepository import com.cornellappdev.score.model.Sport import com.cornellappdev.score.model.SportSelection -import com.cornellappdev.score.model.isValidSport import com.cornellappdev.score.model.map import com.cornellappdev.score.model.toGameCardData import dagger.hilt.android.lifecycle.HiltViewModel @@ -25,8 +24,7 @@ data class PastGamesUiState( is ApiResponse.Success -> loadedState.data.filter { game -> (selectedGender == GenderDivision.ALL || game.gender == selectedGender.displayName) && (sportSelect is SportSelection.All || - (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) && - isValidSport(game.sport) + (sportSelect is SportSelection.SportSelect && game.sport == sportSelect.sport.displayName)) } ApiResponse.Loading -> emptyList() @@ -34,9 +32,7 @@ data class PastGamesUiState( } val pastGames: List get() = when (loadedState) { - is ApiResponse.Success -> loadedState.data.filter { game -> - isValidSport(game.sport) - } + is ApiResponse.Success -> loadedState.data ApiResponse.Loading -> emptyList() ApiResponse.Error -> emptyList() @@ -50,10 +46,7 @@ class PastGamesViewModel @Inject constructor( PastGamesUiState( selectedGender = GenderDivision.ALL, sportSelect = SportSelection.All, - selectionList = Sport.getSportSelectionList(GenderDivision.ALL).filter { - it is SportSelection.All || - (it is SportSelection.SportSelect && isValidSport(it.sport.displayName)) - }, + selectionList = Sport.getSportSelectionList(GenderDivision.ALL), loadedState = ApiResponse.Loading ) ) { @@ -85,10 +78,7 @@ class PastGamesViewModel @Inject constructor( applyMutation { copy( selectedGender = gender, - selectionList = Sport.getSportSelectionList(gender).filter { - it is SportSelection.All || - (it is SportSelection.SportSelect && isValidSport(it.sport.displayName)) - }, + selectionList = Sport.getSportSelectionList(gender), ) } }