Skip to content

Commit 63ae483

Browse files
Emil jiang gamedetails UI (#37)
* gamedetails networking * all PR comments addressed except for toResult * fixed data classes to match schema * merge * first draft * lint fix * nav * pr changes * new changes * ui changes * minor fix * todo * pr changes * test * nav fix * center button and fix padding * Add preview, fix small score box thing, navigation bar not shown when on game details * Ellipses * pr --------- Co-authored-by: zachseidner1 <zachary.seidner@gmail.com>
1 parent d475d5d commit 63ae483

22 files changed

Lines changed: 818 additions & 189 deletions
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
query GameById($id: String!) {
2+
game(id: $id){
3+
id
4+
city
5+
date
6+
gender
7+
location
8+
opponentId
9+
result
10+
sport
11+
state
12+
time
13+
scoreBreakdown
14+
team {
15+
id
16+
color
17+
image
18+
name
19+
}
20+
boxScore {
21+
team
22+
period
23+
time
24+
description
25+
scorer
26+
assist
27+
scoreBy
28+
corScore
29+
oppScore
30+
}
31+
}
32+
}

app/src/main/java/com/cornellappdev/score/components/FeaturedGameCard.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.cornellappdev.score.components
22

33
import androidx.compose.foundation.Image
44
import androidx.compose.foundation.background
5+
import androidx.compose.foundation.clickable
56
import androidx.compose.foundation.layout.Arrangement
67
import androidx.compose.foundation.layout.Box
78
import androidx.compose.foundation.layout.Column
@@ -137,11 +138,13 @@ fun FeaturedGameCard(
137138
modifier: Modifier = Modifier,
138139
headerModifier: Modifier = Modifier,
139140
leftScore: Int? = null,
140-
rightScore: Int? = null
141+
rightScore: Int? = null,
142+
onClick: () -> Unit = {}
141143
) {
142144
Column(
143145
modifier = modifier
144146
.fillMaxWidth()
147+
.clickable { onClick() }
145148
) {
146149

147150
FeaturedGameHeader(
@@ -172,7 +175,8 @@ fun FeaturedGameCard(
172175
bottomStart = 16.dp,
173176
bottomEnd = 16.dp
174177
)
175-
)
178+
),
179+
onClick = onClick
176180
)
177181
}
178182
}

app/src/main/java/com/cornellappdev/score/components/GameCard.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ fun GameCard(
5757
sportIcon: Painter,
5858
topCornerRound: Boolean,
5959
modifier: Modifier = Modifier,
60-
onClick: (Boolean) -> Unit = {}
60+
onClick: () -> Unit
6161
) {
6262
val cardShape = if (topCornerRound) {
6363
RoundedCornerShape(16.dp) // Rounded all
@@ -89,7 +89,7 @@ fun GameCard(
8989
)
9090
}
9191
)
92-
.clickable { onClick(false) }
92+
.clickable { onClick() }
9393
) {
9494
Column(
9595
modifier = Modifier
@@ -219,6 +219,7 @@ private fun GameCardPreview() = ScorePreview {
219219
sportIcon = painterResource(id = R.drawable.ic_baseball),
220220
topCornerRound = false,
221221
modifier = Modifier.padding(16.dp),
222+
onClick = {}
222223
)
223224
}
224225
}

app/src/main/java/com/cornellappdev/score/components/GameScoreHeader.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,19 @@ import androidx.compose.ui.res.painterResource
2828
import androidx.compose.ui.text.style.TextAlign
2929
import androidx.compose.ui.tooling.preview.Preview
3030
import androidx.compose.ui.unit.dp
31+
import coil3.compose.AsyncImage
3132
import com.cornellappdev.score.R
3233
import com.cornellappdev.score.theme.Style.scoreHeaderText
3334
import com.cornellappdev.score.theme.Style.vsText
3435

3536
@Composable
3637
fun GameScoreHeader(
3738
leftTeamLogo: Painter,
38-
rightTeamLogo: Painter,
39+
rightTeamLogo: String,
3940
gradientColor1: Color,
4041
gradientColor2: Color,
42+
leftScore: Int,
43+
rightScore: Int,
4144
modifier: Modifier = Modifier
4245
) {
4346
Box(
@@ -64,7 +67,7 @@ fun GameScoreHeader(
6467

6568
Row {
6669
Text(
67-
text = "0",
70+
text = leftScore.toString(),
6871
style = scoreHeaderText,
6972
modifier = Modifier.width(52.dp),
7073
textAlign = TextAlign.Center
@@ -76,15 +79,15 @@ fun GameScoreHeader(
7679
)
7780

7881
Text(
79-
text = "0",
82+
text = rightScore.toString(),
8083
style = scoreHeaderText,
8184
modifier = Modifier.width(52.dp),
8285
textAlign = TextAlign.Center
8386
)
8487
}
8588

86-
Image(
87-
painter = rightTeamLogo,
89+
AsyncImage(
90+
model = rightTeamLogo,
8891
contentDescription = "Right Team Logo",
8992
modifier = Modifier.height(70.dp)
9093
)
@@ -97,9 +100,11 @@ fun GameScoreHeader(
97100
private fun GameScoreHeaderPreview() = ScorePreview {
98101
GameScoreHeader(
99102
leftTeamLogo = painterResource(R.drawable.cornell_logo),
100-
rightTeamLogo = painterResource(R.drawable.penn_logo),
103+
rightTeamLogo = "https://images.sidearmdev.com/fit?url=https%3a%2f%2fdxbhsrqyrr690.cloudfront.net%2fsidearm.nextgen.sites%2fcornellbigred.com%2fimages%2flogos%2fpenn_200x200.png&height=80&width=80&type=webp",
101104
gradientColor1 = Color(0xFFE1A69F),
102105
gradientColor2 = Color(0xFF011F5B),
106+
leftScore = 0,
107+
rightScore = 0,
103108
modifier = Modifier.height(185.dp)
104109
)
105110
}

app/src/main/java/com/cornellappdev/score/components/GamesCarousel.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ fun DotIndicator(
5555
@Composable
5656
fun GamesCarousel(
5757
games: List<GameCardData>,
58-
modifier: Modifier = Modifier
58+
onClick: (String) -> Unit,
59+
modifier: Modifier = Modifier,
5960
) {
6061
val pagerState = rememberPagerState(pageCount = { games.size })
6162
Column(
@@ -83,7 +84,8 @@ fun GamesCarousel(
8384
modifier = Modifier,
8485
headerModifier = Modifier,
8586
gradientColor1 = CornellRed,
86-
gradientColor2 = game.teamColor
87+
gradientColor2 = game.teamColor,
88+
onClick = { onClick(game.id) }
8789
)
8890
}
8991

@@ -100,5 +102,5 @@ fun GamesCarousel(
100102
@Composable
101103
@Preview
102104
private fun GamesCarouselPreview() = ScorePreview {
103-
GamesCarousel(gameList)
105+
GamesCarousel(gameList, onClick = {})
104106
}

app/src/main/java/com/cornellappdev/score/components/NavigationHeader.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import androidx.compose.material3.Text
1212
import androidx.compose.runtime.Composable
1313
import androidx.compose.ui.Alignment
1414
import androidx.compose.ui.Modifier
15-
import androidx.compose.ui.draw.shadow
1615
import androidx.compose.ui.graphics.Color
1716
import androidx.compose.ui.res.painterResource
1817
import androidx.compose.ui.tooling.preview.Preview
@@ -24,12 +23,12 @@ import com.cornellappdev.score.theme.Style.heading2
2423
fun NavigationHeader(title: String, onBackPressed: () -> Unit) {
2524
Box(
2625
modifier = Modifier
27-
.shadow(elevation = 8.dp, clip = false, spotColor = Color.Black.copy(0.05f))
26+
//.shadow(elevation = 8.dp, clip = false, spotColor = Color.Black.copy(0.05f))
2827
.background(Color.White)
2928
) {
3029
Box(
3130
modifier = Modifier
32-
.padding(start = 24.dp, top = 56.dp, bottom = 12.dp, end = 24.dp)
31+
.padding(start = 24.dp, top = 24.dp, bottom = 12.dp, end = 24.dp)
3332
.background(Color.White)
3433
.fillMaxWidth()
3534
.height(27.dp)
@@ -55,6 +54,6 @@ fun NavigationHeader(title: String, onBackPressed: () -> Unit) {
5554

5655
@Preview
5756
@Composable
58-
private fun NavigationHeaderPreview() = ScorePreview {
59-
NavigationHeader("Game Details", {})
57+
private fun NavigationHeaderPreview() {
58+
NavigationHeader("Game Details", {})
6059
}

app/src/main/java/com/cornellappdev/score/components/PastGameCard.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import java.time.LocalDate
4747
fun PastGameCard(
4848
data: GameCardData,
4949
modifier: Modifier = Modifier,
50-
onClick: (Boolean) -> Unit = {}
50+
onClick: () -> Unit = {}
5151
) {
5252
Card(
5353
colors = CardDefaults.cardColors(containerColor = Color.White),
@@ -58,7 +58,7 @@ fun PastGameCard(
5858
Modifier
5959
.border(width = 1.dp, color = GrayStroke, RoundedCornerShape(16.dp))
6060
)
61-
.clickable { onClick(true) }
61+
.clickable { onClick() }
6262
) {
6363
Row(
6464
modifier = Modifier
@@ -201,6 +201,7 @@ private fun TeamScore(
201201
@Composable
202202
private fun PastGameCardPreview() = ScorePreview {
203203
val gameCard = GameCardData(
204+
id = "1",
204205
teamLogo = "https://cornellbigred.com/images/logos/penn_200x200.png?width=80&height=80&mode=max",
205206
team = "University of Pennsylvania",
206207
teamColor = Color.Red,

app/src/main/java/com/cornellappdev/score/components/ScoreBox.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.compose.ui.Modifier
1515
import androidx.compose.ui.graphics.Color
1616
import androidx.compose.ui.text.font.FontWeight
1717
import androidx.compose.ui.text.style.TextAlign
18+
import androidx.compose.ui.text.style.TextOverflow
1819
import androidx.compose.ui.tooling.preview.Preview
1920
import androidx.compose.ui.unit.dp
2021
import com.cornellappdev.score.model.GameData
@@ -102,7 +103,9 @@ fun TeamScoreRow(teamScore: TeamScore, totalTextColor: Color) {
102103
style = bodyNormal,
103104
color = GrayPrimary,
104105
modifier = Modifier.weight(1f),
105-
textAlign = TextAlign.Center
106+
textAlign = TextAlign.Center,
107+
maxLines = 1,
108+
overflow = TextOverflow.Ellipsis
106109
)
107110

108111
teamScore.scoresByPeriod.forEach { score ->

app/src/main/java/com/cornellappdev/score/components/ScoreSummary.kt

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import androidx.compose.ui.res.painterResource
1616
import androidx.compose.ui.text.style.TextAlign
1717
import androidx.compose.ui.tooling.preview.Preview
1818
import androidx.compose.ui.unit.dp
19+
import coil3.compose.AsyncImage
20+
import com.cornellappdev.score.R
1921
import com.cornellappdev.score.components.ScorePreview
2022
import com.cornellappdev.score.model.ScoreEvent
2123
import com.cornellappdev.score.theme.GrayPrimary
@@ -46,13 +48,25 @@ fun ScoreEventItem(event: ScoreEvent) {
4648
.padding(vertical = 16.dp),
4749
verticalAlignment = Alignment.CenterVertically
4850
) {
49-
Image(
50-
painter = painterResource(event.team.logo),
51-
contentDescription = event.team.name,
52-
modifier = Modifier
53-
.size(40.dp)
54-
.padding(end = 12.dp)
55-
)
51+
if (event.team.name == "COR"){ // TODO: Check if its "COR" for all queries. It is for baseball
52+
Image(
53+
painter = painterResource(R.drawable.cornell_logo),
54+
contentDescription = event.team.name,
55+
modifier = Modifier
56+
.size(40.dp)
57+
.padding(end = 12.dp)
58+
)
59+
}
60+
else{
61+
AsyncImage(
62+
model = event.team.logo,
63+
contentDescription = event.team.name, // Turn this into a if statement if i know the link for cornell logo
64+
modifier = Modifier
65+
.size(40.dp)
66+
.padding(end = 12.dp)
67+
)
68+
}
69+
5670

5771
Row(
5872
modifier = Modifier.weight(2f),
@@ -90,7 +104,7 @@ fun ScoreEventItem(event: ScoreEvent) {
90104
Row(verticalAlignment = Alignment.CenterVertically) {
91105
Text(
92106
text = homeScore.toString(),
93-
style = if (event.team.name == "Cornell") metricSemibold else metricNormal,
107+
style = if (event.team.name == "Cornell") metricSemibold else metricNormal, // TODO: Check name
94108
color = GrayPrimary,
95109
textAlign = TextAlign.Center
96110
)

0 commit comments

Comments
 (0)