Skip to content

Commit 10f1633

Browse files
Merge branch 'main' into melissa/workout-history-ui
2 parents a4c6818 + f106f71 commit 10f1633

5 files changed

Lines changed: 81 additions & 48 deletions

File tree

app/build.gradle

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ android {
2121
applicationId "com.cornellappdev.uplift"
2222
minSdk 28
2323
targetSdk 35
24-
versionCode 12
25-
versionName "1.4-backend-fix"
24+
versionCode 16
25+
versionName "1.6-capacity-reminders"
2626

2727
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2828
vectorDrawables {
@@ -33,11 +33,23 @@ android {
3333
}
3434

3535
buildTypes {
36+
create("onboarding") {
37+
buildConfigField("String", "BACKEND_URL", secretsProperties['DEV_ENDPOINT'])
38+
buildConfigField(
39+
"String",
40+
"GOOGLE_AUTH_CLIENT_ID", secretsProperties["GOOGLE_AUTH_CLIENT_ID"]
41+
)
42+
buildConfigField("boolean", "ONBOARDING_FLAG", "true")
43+
buildConfigField("boolean", "CHECK_IN_FLAG", "true")
44+
signingConfig signingConfigs.debug
45+
}
3646
release {
3747
minifyEnabled false
3848
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
3949
buildConfigField("String", "GOOGLE_AUTH_CLIENT_ID", secretsProperties["GOOGLE_AUTH_CLIENT_ID"])
4050
buildConfigField("String", "BACKEND_URL", secretsProperties['PROD_ENDPOINT'])
51+
buildConfigField("boolean", "ONBOARDING_FLAG", "false")
52+
buildConfigField("boolean", "CHECK_IN_FLAG", "false")
4153
}
4254
debug {
4355
buildConfigField("String", "BACKEND_URL", secretsProperties['DEV_ENDPOINT'])
@@ -46,6 +58,8 @@ android {
4658
"GOOGLE_AUTH_CLIENT_ID", secretsProperties["GOOGLE_AUTH_CLIENT_ID"]
4759
)
4860
signingConfig signingConfigs.debug
61+
buildConfigField("boolean", "ONBOARDING_FLAG", "false")
62+
buildConfigField("boolean", "CHECK_IN_FLAG", "false")
4963
}
5064
}
5165
compileOptions {

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ import androidx.activity.compose.setContent
88
import androidx.activity.viewModels
99
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
1010
import com.cornellappdev.uplift.data.repositories.DatastoreRepository
11+
import com.cornellappdev.uplift.data.repositories.LocationRepository
1112
import com.cornellappdev.uplift.ui.MainNavigationWrapper
1213
import com.cornellappdev.uplift.ui.theme.UpliftTheme
1314
import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInViewModel
15+
import com.cornellappdev.uplift.util.CHECK_IN_FLAG
1416
import com.cornellappdev.uplift.util.LockScreenOrientation
1517
import dagger.hilt.android.AndroidEntryPoint
1618
import javax.inject.Inject
@@ -41,11 +43,17 @@ class MainActivity : ComponentActivity() {
4143

4244
override fun onResume() {
4345
super.onResume()
44-
checkInViewModel.startLocationUpdates(this)
46+
LocationRepository.startLocationUpdates(this)
47+
if (CHECK_IN_FLAG){
48+
checkInViewModel.startLocationUpdates(this)
49+
}
4550
}
4651

4752
override fun onPause() {
4853
super.onPause()
49-
checkInViewModel.stopLocationUpdates()
54+
LocationRepository.stopLocationUpdates()
55+
if (CHECK_IN_FLAG){
56+
checkInViewModel.stopLocationUpdates()
57+
}
5058
}
5159
}

app/src/main/java/com/cornellappdev/uplift/ui/MainNavigationWrapper.kt

Lines changed: 45 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,8 @@ import androidx.compose.material.Text
1313
import androidx.compose.runtime.Composable
1414
import androidx.compose.runtime.LaunchedEffect
1515
import androidx.compose.runtime.getValue
16-
import androidx.compose.runtime.mutableStateOf
17-
import androidx.compose.runtime.remember
18-
import androidx.compose.runtime.setValue
1916
import androidx.compose.ui.Alignment
2017
import androidx.compose.ui.Modifier
21-
import androidx.compose.ui.geometry.Rect
2218
import androidx.compose.ui.graphics.Color
2319
import androidx.compose.ui.layout.boundsInRoot
2420
import androidx.compose.ui.layout.onGloballyPositioned
@@ -46,19 +42,21 @@ import com.cornellappdev.uplift.ui.screens.gyms.GymDetailScreen
4642
import com.cornellappdev.uplift.ui.screens.gyms.HomeScreen
4743
import com.cornellappdev.uplift.ui.screens.onboarding.ProfileCreationScreen
4844
import com.cornellappdev.uplift.ui.screens.onboarding.SignInPromptScreen
49-
import com.cornellappdev.uplift.ui.screens.reminders.CapacityReminderScreen
5045
import com.cornellappdev.uplift.ui.screens.profile.ProfileScreen
5146
import com.cornellappdev.uplift.ui.screens.profile.SettingsScreen
47+
import com.cornellappdev.uplift.ui.screens.reminders.CapacityReminderScreen
5248
import com.cornellappdev.uplift.ui.screens.reminders.MainReminderScreen
5349
import com.cornellappdev.uplift.ui.screens.report.ReportIssueScreen
5450
import com.cornellappdev.uplift.ui.screens.report.ReportSubmittedScreen
5551
import com.cornellappdev.uplift.ui.viewmodels.classes.ClassDetailViewModel
5652
import com.cornellappdev.uplift.ui.viewmodels.gyms.GymDetailViewModel
5753
import com.cornellappdev.uplift.ui.viewmodels.nav.RootNavigationViewModel
58-
import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInMode
54+
import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInUiState
5955
import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInViewModel
56+
import com.cornellappdev.uplift.util.ONBOARDING_FLAG
6057
import com.cornellappdev.uplift.ui.viewmodels.profile.ConfettiViewModel
6158
import com.cornellappdev.uplift.ui.viewmodels.profile.ProfileViewModel
59+
import com.cornellappdev.uplift.util.CHECK_IN_FLAG
6260
import com.cornellappdev.uplift.util.PRIMARY_BLACK
6361
import com.cornellappdev.uplift.util.PRIMARY_YELLOW
6462
import com.cornellappdev.uplift.util.montserratFamily
@@ -80,10 +78,8 @@ fun MainNavigationWrapper(
8078
classDetailViewModel: ClassDetailViewModel = hiltViewModel(),
8179
rootNavigationViewModel: RootNavigationViewModel = hiltViewModel(),
8280

83-
) {
81+
) {
8482

85-
val confettiViewModel: ConfettiViewModel = hiltViewModel()
86-
val checkInViewModel: CheckInViewModel = hiltViewModel()
8783
val rootNavigationUiState = rootNavigationViewModel.collectUiStateValue()
8884
val startDestination = rootNavigationUiState.startDestination
8985

@@ -106,11 +102,10 @@ fun MainNavigationWrapper(
106102
)
107103
val shimmer = rememberShimmer(shimmerBounds = ShimmerBounds.Window, theme = yourShimmerTheme)
108104

109-
val items = listOf(
105+
val items = listOfNotNull(
110106
BottomNavScreens.Home,
111107
BottomNavScreens.Classes,
112-
BottomNavScreens.Profile
113-
// TODO: Add new items when activities and profile are implemented.
108+
BottomNavScreens.Profile.takeIf { ONBOARDING_FLAG }
114109
)
115110

116111
systemUiController.setStatusBarColor(PRIMARY_YELLOW)
@@ -266,38 +261,47 @@ fun MainNavigationWrapper(
266261
composable<UpliftRootRoute.Favorites> {}
267262
}
268263

269-
Box(modifier = Modifier.fillMaxSize()){
270-
AnimatedVisibility(
271-
visible = checkInUiState.showPopUp && isMainScreen(),
272-
modifier = Modifier
273-
.align(Alignment.BottomCenter)
274-
.fillMaxWidth()
275-
.padding(
276-
start = 10.dp,
277-
end = 9.dp,
278-
bottom = it.calculateBottomPadding() + 13.dp
279-
)
280-
){
281-
Box(
282-
modifier = Modifier.onGloballyPositioned { coords ->
283-
confettiViewModel.setConfettiBounds(coords.boundsInRoot())
264+
Box(modifier = Modifier.fillMaxSize()) {
265+
if (CHECK_IN_FLAG) {
266+
val checkInViewModel: CheckInViewModel = hiltViewModel()
267+
val confettiViewModel: ConfettiViewModel = hiltViewModel()
268+
val checkInUiState = checkInViewModel.collectUiStateValue()
269+
val confettiUiState = confettiViewModel.collectUiStateValue()
270+
271+
AnimatedVisibility(
272+
visible = checkInUiState.showPopUp && isMainScreen(),
273+
modifier = Modifier
274+
.align(Alignment.BottomCenter)
275+
.fillMaxWidth()
276+
.padding(
277+
start = 10.dp,
278+
end = 9.dp,
279+
bottom = it.calculateBottomPadding() + 13.dp
280+
)
281+
) {
282+
Box(
283+
modifier = Modifier.onGloballyPositioned { coords ->
284+
confettiViewModel.setConfettiBounds(coords.boundsInRoot())
285+
}
286+
) {
287+
CheckInPopUp(
288+
gymName = checkInUiState.gymName,
289+
currentTimeText = checkInUiState.timeText,
290+
onDismiss = checkInViewModel::onDismiss,
291+
onCheckIn = checkInViewModel::onCheckIn,
292+
onClosePopUp = checkInViewModel::onClose,
293+
mode = checkInUiState.mode,
294+
)
284295
}
285-
){
286-
CheckInPopUp(
287-
gymName = checkInUiState.gymName,
288-
currentTimeText = checkInUiState.timeText,
289-
onDismiss = checkInViewModel::onDismiss,
290-
onCheckIn = checkInViewModel::onCheckIn,
291-
onClosePopUp = checkInViewModel::onClose,
292-
mode = checkInUiState.mode,
293-
)
294296
}
297+
298+
ConfettiBurst(
299+
confettiViewModel = confettiViewModel,
300+
particleSpawningBounds = confettiUiState.confettiBounds,
301+
modifier = Modifier
302+
)
303+
295304
}
296-
ConfettiBurst(
297-
confettiViewModel = confettiViewModel,
298-
particleSpawningBounds = confettiUiState.confettiBounds,
299-
modifier = Modifier
300-
)
301305
}
302306

303307
}

app/src/main/java/com/cornellappdev/uplift/ui/viewmodels/nav/RootNavigationViewModel.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ package com.cornellappdev.uplift.ui.viewmodels.nav
22

33
import androidx.lifecycle.viewModelScope
44
import com.cornellappdev.uplift.data.repositories.UserInfoRepository
5-
import com.cornellappdev.uplift.ui.nav.RootNavigationRepository
65
import com.cornellappdev.uplift.ui.UpliftRootRoute
6+
import com.cornellappdev.uplift.ui.nav.RootNavigationRepository
77
import com.cornellappdev.uplift.ui.viewmodels.UpliftViewModel
8+
import com.cornellappdev.uplift.util.ONBOARDING_FLAG
89
import com.cornellappdev.uplift.util.UIEvent
910
import dagger.hilt.android.lifecycle.HiltViewModel
1011
import kotlinx.coroutines.launch
@@ -55,7 +56,7 @@ class RootNavigationViewModel @Inject constructor(
5556
}
5657
applyMutation {
5758
copy(
58-
startDestination = if (hasSkipped || hasUser) UpliftRootRoute.Home else UpliftRootRoute.Onboarding
59+
startDestination = if (hasSkipped || hasUser || !ONBOARDING_FLAG) UpliftRootRoute.Home else UpliftRootRoute.Onboarding
5960
)
6061
}
6162
}

app/src/main/java/com/cornellappdev/uplift/util/Constants.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.cornellappdev.uplift.util
22

3+
import com.cornellappdev.uplift.BuildConfig
4+
35
const val defaultGymUrl =
46
"https://raw.githubusercontent.com/cuappdev/assets/master/uplift/gyms/helen-newman.jpg"
57

@@ -15,4 +17,8 @@ const val defaultClassUrl =
1517
const val HELEN_NEWMAN_ID = 1792236
1618
const val NOYES_ID = 10423374
1719
const val MORRISON_ID = 9537684
18-
const val TEAGLE_ID = 3454585
20+
const val TEAGLE_ID = 3454585
21+
22+
const val ONBOARDING_FLAG = BuildConfig.ONBOARDING_FLAG
23+
24+
const val CHECK_IN_FLAG = BuildConfig.CHECK_IN_FLAG

0 commit comments

Comments
 (0)