Skip to content

Commit 2df252f

Browse files
authored
Merge pull request #101 from cuappdev/helen/feature-flag
Implement feature flag for onboarding
2 parents 26b0257 + 82f847d commit 2df252f

File tree

4 files changed

+24
-9
lines changed

4 files changed

+24
-9
lines changed

app/build.gradle

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,21 @@ 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+
signingConfig signingConfigs.debug
44+
}
3645
release {
3746
minifyEnabled false
3847
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
3948
buildConfigField("String", "GOOGLE_AUTH_CLIENT_ID", secretsProperties["GOOGLE_AUTH_CLIENT_ID"])
4049
buildConfigField("String", "BACKEND_URL", secretsProperties['PROD_ENDPOINT'])
50+
buildConfigField("boolean", "ONBOARDING_FLAG", "false")
4151
}
4252
debug {
4353
buildConfigField("String", "BACKEND_URL", secretsProperties['DEV_ENDPOINT'])
@@ -46,6 +56,7 @@ android {
4656
"GOOGLE_AUTH_CLIENT_ID", secretsProperties["GOOGLE_AUTH_CLIENT_ID"]
4757
)
4858
signingConfig signingConfigs.debug
59+
buildConfigField("boolean", "ONBOARDING_FLAG", "false")
4960
}
5061
}
5162
compileOptions {

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,17 @@ import com.cornellappdev.uplift.ui.screens.gyms.GymDetailScreen
4646
import com.cornellappdev.uplift.ui.screens.gyms.HomeScreen
4747
import com.cornellappdev.uplift.ui.screens.onboarding.ProfileCreationScreen
4848
import com.cornellappdev.uplift.ui.screens.onboarding.SignInPromptScreen
49-
import com.cornellappdev.uplift.ui.screens.reminders.CapacityReminderScreen
5049
import com.cornellappdev.uplift.ui.screens.profile.ProfileScreen
5150
import com.cornellappdev.uplift.ui.screens.profile.SettingsScreen
51+
import com.cornellappdev.uplift.ui.screens.reminders.CapacityReminderScreen
5252
import com.cornellappdev.uplift.ui.screens.reminders.MainReminderScreen
5353
import com.cornellappdev.uplift.ui.screens.report.ReportIssueScreen
5454
import com.cornellappdev.uplift.ui.screens.report.ReportSubmittedScreen
5555
import com.cornellappdev.uplift.ui.viewmodels.classes.ClassDetailViewModel
5656
import com.cornellappdev.uplift.ui.viewmodels.gyms.GymDetailViewModel
5757
import com.cornellappdev.uplift.ui.viewmodels.nav.RootNavigationViewModel
58-
import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInMode
5958
import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInViewModel
59+
import com.cornellappdev.uplift.util.ONBOARDING_FLAG
6060
import com.cornellappdev.uplift.ui.viewmodels.profile.ConfettiViewModel
6161
import com.cornellappdev.uplift.util.PRIMARY_BLACK
6262
import com.cornellappdev.uplift.util.PRIMARY_YELLOW
@@ -79,7 +79,7 @@ fun MainNavigationWrapper(
7979
classDetailViewModel: ClassDetailViewModel = hiltViewModel(),
8080
rootNavigationViewModel: RootNavigationViewModel = hiltViewModel(),
8181

82-
) {
82+
) {
8383

8484
val confettiViewModel: ConfettiViewModel = hiltViewModel()
8585
val checkInViewModel: CheckInViewModel = hiltViewModel()
@@ -101,11 +101,10 @@ fun MainNavigationWrapper(
101101
)
102102
val shimmer = rememberShimmer(shimmerBounds = ShimmerBounds.Window, theme = yourShimmerTheme)
103103

104-
val items = listOf(
104+
val items = listOfNotNull(
105105
BottomNavScreens.Home,
106106
BottomNavScreens.Classes,
107-
BottomNavScreens.Profile
108-
// TODO: Add new items when activities and profile are implemented.
107+
BottomNavScreens.Profile.takeIf { ONBOARDING_FLAG }
109108
)
110109

111110
systemUiController.setStatusBarColor(PRIMARY_YELLOW)

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: 5 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,6 @@ 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

0 commit comments

Comments
 (0)