Skip to content

Commit f106f71

Browse files
Merge pull request #103 from cuappdev/melissa/check-in-flag
Implemented check-in pop up feature flag
2 parents 2df252f + 0b8a774 commit f106f71

4 files changed

Lines changed: 58 additions & 43 deletions

File tree

app/build.gradle

Lines changed: 5 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 {
@@ -40,6 +40,7 @@ android {
4040
"GOOGLE_AUTH_CLIENT_ID", secretsProperties["GOOGLE_AUTH_CLIENT_ID"]
4141
)
4242
buildConfigField("boolean", "ONBOARDING_FLAG", "true")
43+
buildConfigField("boolean", "CHECK_IN_FLAG", "true")
4344
signingConfig signingConfigs.debug
4445
}
4546
release {
@@ -48,6 +49,7 @@ android {
4849
buildConfigField("String", "GOOGLE_AUTH_CLIENT_ID", secretsProperties["GOOGLE_AUTH_CLIENT_ID"])
4950
buildConfigField("String", "BACKEND_URL", secretsProperties['PROD_ENDPOINT'])
5051
buildConfigField("boolean", "ONBOARDING_FLAG", "false")
52+
buildConfigField("boolean", "CHECK_IN_FLAG", "false")
5153
}
5254
debug {
5355
buildConfigField("String", "BACKEND_URL", secretsProperties['DEV_ENDPOINT'])
@@ -57,6 +59,7 @@ android {
5759
)
5860
signingConfig signingConfigs.debug
5961
buildConfigField("boolean", "ONBOARDING_FLAG", "false")
62+
buildConfigField("boolean", "CHECK_IN_FLAG", "false")
6063
}
6164
}
6265
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: 40 additions & 38 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
@@ -55,9 +51,11 @@ 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
54+
import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInUiState
5855
import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInViewModel
5956
import com.cornellappdev.uplift.util.ONBOARDING_FLAG
6057
import com.cornellappdev.uplift.ui.viewmodels.profile.ConfettiViewModel
58+
import com.cornellappdev.uplift.util.CHECK_IN_FLAG
6159
import com.cornellappdev.uplift.util.PRIMARY_BLACK
6260
import com.cornellappdev.uplift.util.PRIMARY_YELLOW
6361
import com.cornellappdev.uplift.util.montserratFamily
@@ -81,17 +79,12 @@ fun MainNavigationWrapper(
8179

8280
) {
8381

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

8985
val navController = rememberNavController()
9086
val systemUiController: SystemUiController = rememberSystemUiController()
9187

92-
val checkInUiState = checkInViewModel.collectUiStateValue()
93-
val confettiUiState = confettiViewModel.collectUiStateValue()
94-
9588
val yourShimmerTheme = defaultShimmerTheme.copy(
9689
shaderColors = listOf(
9790
Color.Unspecified.copy(alpha = 1f),
@@ -260,38 +253,47 @@ fun MainNavigationWrapper(
260253
composable<UpliftRootRoute.Favorites> {}
261254
}
262255

263-
Box(modifier = Modifier.fillMaxSize()){
264-
AnimatedVisibility(
265-
visible = checkInUiState.showPopUp && isMainScreen(),
266-
modifier = Modifier
267-
.align(Alignment.BottomCenter)
268-
.fillMaxWidth()
269-
.padding(
270-
start = 10.dp,
271-
end = 9.dp,
272-
bottom = it.calculateBottomPadding() + 13.dp
273-
)
274-
){
275-
Box(
276-
modifier = Modifier.onGloballyPositioned { coords ->
277-
confettiViewModel.setConfettiBounds(coords.boundsInRoot())
256+
Box(modifier = Modifier.fillMaxSize()) {
257+
if (CHECK_IN_FLAG) {
258+
val checkInViewModel: CheckInViewModel = hiltViewModel()
259+
val confettiViewModel: ConfettiViewModel = hiltViewModel()
260+
val checkInUiState = checkInViewModel.collectUiStateValue()
261+
val confettiUiState = confettiViewModel.collectUiStateValue()
262+
263+
AnimatedVisibility(
264+
visible = checkInUiState.showPopUp && isMainScreen(),
265+
modifier = Modifier
266+
.align(Alignment.BottomCenter)
267+
.fillMaxWidth()
268+
.padding(
269+
start = 10.dp,
270+
end = 9.dp,
271+
bottom = it.calculateBottomPadding() + 13.dp
272+
)
273+
) {
274+
Box(
275+
modifier = Modifier.onGloballyPositioned { coords ->
276+
confettiViewModel.setConfettiBounds(coords.boundsInRoot())
277+
}
278+
) {
279+
CheckInPopUp(
280+
gymName = checkInUiState.gymName,
281+
currentTimeText = checkInUiState.timeText,
282+
onDismiss = checkInViewModel::onDismiss,
283+
onCheckIn = checkInViewModel::onCheckIn,
284+
onClosePopUp = checkInViewModel::onClose,
285+
mode = checkInUiState.mode,
286+
)
278287
}
279-
){
280-
CheckInPopUp(
281-
gymName = checkInUiState.gymName,
282-
currentTimeText = checkInUiState.timeText,
283-
onDismiss = checkInViewModel::onDismiss,
284-
onCheckIn = checkInViewModel::onCheckIn,
285-
onClosePopUp = checkInViewModel::onClose,
286-
mode = checkInUiState.mode,
287-
)
288288
}
289+
290+
ConfettiBurst(
291+
confettiViewModel = confettiViewModel,
292+
particleSpawningBounds = confettiUiState.confettiBounds,
293+
modifier = Modifier
294+
)
295+
289296
}
290-
ConfettiBurst(
291-
confettiViewModel = confettiViewModel,
292-
particleSpawningBounds = confettiUiState.confettiBounds,
293-
modifier = Modifier
294-
)
295297
}
296298

297299
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,6 @@ const val NOYES_ID = 10423374
1919
const val MORRISON_ID = 9537684
2020
const val TEAGLE_ID = 3454585
2121

22-
const val ONBOARDING_FLAG = BuildConfig.ONBOARDING_FLAG
22+
const val ONBOARDING_FLAG = BuildConfig.ONBOARDING_FLAG
23+
24+
const val CHECK_IN_FLAG = BuildConfig.CHECK_IN_FLAG

0 commit comments

Comments
 (0)