Skip to content

Commit 64fbe4b

Browse files
committed
Merge branch 'main' of https://github.com/cuappdev/score-android into issue_92
2 parents af2d30e + 88f53a7 commit 64fbe4b

8 files changed

Lines changed: 81 additions & 47 deletions

File tree

.github/workflows/android-lint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ jobs:
2222
java-version: '17'
2323
distribution: 'temurin'
2424
cache: gradle
25-
25+
2626
- name: Create google-services.json
2727
run: |
28-
echo "${{ secrets.GOOGLE_SERVICES_JSON_BASE64 }}" | base64 --decode > app/google-services.json
28+
echo "${{ secrets.GOOGLE_SERVICES_JSON_NEW }}" | base64 --decode > app/google-services.json
2929
3030
- name: Run Lint
3131
run: ./gradlew lint

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Score
2+
<p align="center"><img width="148" height="148" alt="score_icon" src="https://github.com/user-attachments/assets/77b0cd4d-3a4a-440d-9f2e-c71fd202bafb" /><p align="center">
3+
4+
Score is Cornell’s all-in-one sports discovery hub that makes Cornell sports easily accessible and engaging for the entire community. A free and open-source app, Score helps facilitate the seamless discovery, tracking, and engagement of Cornell sports, allowing students to conveniently stay informed on sports games and feel motivated to actively participate in the campus sports culture.
5+
6+
7+
## Getting Started
8+
1. Clone the repository
9+
2. Download the following two files (AppDev members can find it pinned in `#score-android` in the Slack)
10+
- `score-keystore`
11+
- `google-services.json`
12+
- `secrets.properties`
13+
4. Add those three files to the project root in Android Studio
14+
5. Build and run!

app/build.gradle.kts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
import java.io.FileInputStream
2+
import java.util.Properties
3+
4+
val secretsPropertiesFile = rootProject.file("secrets.properties")
5+
val secrets = Properties()
6+
7+
if (secretsPropertiesFile.exists()) {
8+
secrets.load(FileInputStream(secretsPropertiesFile))
9+
}
10+
111
plugins {
212
alias(libs.plugins.androidApplication)
313
alias(libs.plugins.jetbrainsKotlinAndroid) version "1.9.10"
@@ -17,9 +27,9 @@ android {
1727
defaultConfig {
1828
applicationId = "com.cornellappdev.score"
1929
minSdk = 26
20-
targetSdk = 34
21-
versionCode = 3
22-
versionName = "1.0"
30+
targetSdk = 35
31+
versionCode = 7
32+
versionName = "1.1"
2333
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2434
}
2535
buildFeatures {
@@ -31,14 +41,14 @@ android {
3141
buildConfigField(
3242
"String",
3343
"BASE_URL",
34-
"\"https://score-dev.cornellappdev.com/graphql\""
44+
"\"${secrets.getProperty("API_URL_DEV")}\""
3545
)
3646
}
3747
release {
3848
buildConfigField(
3949
"String",
4050
"BASE_URL",
41-
"\"https://score-backend.cornellappdev.com/graphql\""
51+
"\"${secrets.getProperty("API_URL_PROD")}\""
4252
)
4353
isMinifyEnabled = false
4454
proguardFiles(
@@ -99,7 +109,7 @@ apollo {
99109
service("service") {
100110
packageName.set("com.example.score")
101111
introspection {
102-
endpointUrl.set("https://score-dev.cornellappdev.com/graphql")
112+
endpointUrl.set("\"${secrets.getProperty("API_URL_DEV")}\"")
103113
schemaFile.set(file("src/main/graphql/schema.graphqls"))
104114
}
105115
}

app/src/main/java/com/cornellappdev/score/MainActivity.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@ import androidx.activity.compose.setContent
55
import androidx.activity.enableEdgeToEdge
66
import androidx.appcompat.app.AppCompatActivity
77
import com.cornellappdev.score.nav.root.RootNavigation
8+
import com.google.firebase.Firebase
9+
import com.google.firebase.analytics.FirebaseAnalytics
10+
import com.google.firebase.analytics.analytics
811
import dagger.hilt.android.AndroidEntryPoint
912

13+
private lateinit var firebaseAnalytics: FirebaseAnalytics
14+
1015
@AndroidEntryPoint
1116
class MainActivity : AppCompatActivity() {
1217
override fun onCreate(savedInstanceState: Bundle?) {
@@ -15,5 +20,6 @@ class MainActivity : AppCompatActivity() {
1520
setContent {
1621
RootNavigation()
1722
}
23+
firebaseAnalytics = Firebase.analytics
1824
}
1925
}

app/src/main/java/com/cornellappdev/score/nav/ScoreNavHost.kt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -67,26 +67,26 @@ fun ScoreNavHost(navController: NavHostController) {
6767
navController.navigateUp()
6868
})
6969
}
70-
71-
composable<ScoreScreens.HighlightsScreen> { backStackEntry ->
72-
CompositionLocalProvider(LocalViewModelStoreOwner provides mainScreenViewModelStoreOwner) {
73-
HighlightsScreen(toSearchScreen = { navController.navigate(ScoreScreens.HighlightsSearchScreen) })
74-
}
75-
}
76-
77-
composable<ScoreScreens.HighlightsSearchScreen> { backStackEntry ->
78-
CompositionLocalProvider(LocalViewModelStoreOwner provides mainScreenViewModelStoreOwner) {
79-
HighlightsSearchScreen(
80-
sportList = sportList,
81-
recentSearchList = recentSearchList,
82-
highlightsList = highlightsList,
83-
query = "",
84-
header = "Search all highlights",
85-
{},
86-
{}
87-
)
88-
}
89-
}
70+
//// removed for 2/2026 release
71+
// composable<ScoreScreens.HighlightsScreen> { backStackEntry ->
72+
// CompositionLocalProvider(LocalViewModelStoreOwner provides mainScreenViewModelStoreOwner) {
73+
// HighlightsScreen(toSearchScreen = { navController.navigate(ScoreScreens.HighlightsSearchScreen) })
74+
// }
75+
// }
76+
//
77+
// composable<ScoreScreens.HighlightsSearchScreen> { backStackEntry ->
78+
// CompositionLocalProvider(LocalViewModelStoreOwner provides mainScreenViewModelStoreOwner) {
79+
// HighlightsSearchScreen(
80+
// sportList = sportList,
81+
// recentSearchList = recentSearchList,
82+
// highlightsList = highlightsList,
83+
// query = "",
84+
// header = "Search all highlights",
85+
// {},
86+
// {}
87+
// )
88+
// }
89+
// }
9090
}
9191
}
9292

app/src/main/java/com/cornellappdev/score/nav/root/RootNavigation.kt

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,12 @@ sealed class ScoreScreens {
110110
@Serializable
111111
data class GameScoreSummaryPage(val scoreEvents: String) : ScoreScreens()
112112

113-
@Serializable
114-
data object HighlightsScreen : ScoreScreens()
115-
116-
@Serializable
117-
data object HighlightsSearchScreen : ScoreScreens()
113+
////removed for 2/2026 release
114+
// @Serializable
115+
// data object HighlightsScreen : ScoreScreens()
116+
//
117+
// @Serializable
118+
// data object HighlightsSearchScreen : ScoreScreens()
118119
}
119120

120121
fun NavBackStackEntry.toScreen(): ScoreScreens? =
@@ -123,8 +124,9 @@ fun NavBackStackEntry.toScreen(): ScoreScreens? =
123124
"GameDetailsPage" -> toRoute<ScoreScreens.GameDetailsPage>()
124125
"ScoresScreen" -> toRoute<ScoreScreens.ScoresScreen>()
125126
"GameScoreSummaryPage" -> toRoute<ScoreScreens.GameScoreSummaryPage>()
126-
"HighlightsScreen" -> toRoute<ScoreScreens.HighlightsScreen>()
127-
"HighlightsSearchScreen" -> toRoute<ScoreScreens.HighlightsScreen>()
127+
//removed for 2/2026 release
128+
// "HighlightsScreen" -> toRoute<ScoreScreens.HighlightsScreen>()
129+
// "HighlightsSearchScreen" -> toRoute<ScoreScreens.HighlightsScreen>()
128130
else -> throw IllegalArgumentException("Invalid screen")
129131
}
130132

@@ -142,12 +144,13 @@ val tabs = listOf(
142144
selectedIcon = R.drawable.ic_schedule_filled,
143145
screen = ScoreScreens.Home,
144146
),
145-
NavItem(
146-
label = "Highlights",
147-
unselectedIcon = R.drawable.ic_nav_star,
148-
selectedIcon = R.drawable.ic_nav_star_filled,
149-
screen = ScoreScreens.HighlightsScreen,
150-
),
147+
//removed for 2/2026 review
148+
// NavItem(
149+
// label = "Highlights",
150+
// unselectedIcon = R.drawable.ic_nav_star,
151+
// selectedIcon = R.drawable.ic_nav_star_filled,
152+
// screen = ScoreScreens.HighlightsScreen,
153+
// ),
151154
NavItem(
152155
label = "Scores",
153156
unselectedIcon = R.drawable.ic_scores,

app/src/main/java/com/cornellappdev/score/screen/HomeScreen.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,12 @@ private fun HomeLazyColumn(
171171
text = "Game Schedule",
172172
style = title,
173173
)
174-
IconButton(
175-
icon = painterResource(id = R.drawable.advanced_filter),
176-
contentDescription = "Advanced filter",
177-
onClick = onAdvancedFilterClick
178-
)
174+
//removed for 2/2026 release
175+
// IconButton(
176+
// icon = painterResource(id = R.drawable.advanced_filter),
177+
// contentDescription = "Advanced filter",
178+
// onClick = onAdvancedFilterClick
179+
// )
179180
}
180181
Spacer(modifier = Modifier.height(16.dp))
181182
SportSelectorHeader(

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ plugins {
66
kotlin("jvm") version "2.0.20"
77
kotlin("plugin.serialization") version "2.0.20"
88
id("com.google.gms.google-services") version "4.4.3" apply false
9-
}
9+
}

0 commit comments

Comments
 (0)