Skip to content

Commit 5c67fd7

Browse files
committed
feat(flags): add PhoneVerification beta flag for onboarding
Add a new Internal-track beta flag to gate phone number verification during onboarding independently from PhoneNumberSend. Contact permissions remain tied to PhoneNumberSend. Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 8acd094 commit 5c67fd7

3 files changed

Lines changed: 15 additions & 6 deletions

File tree

apps/flipcash/features/login/src/main/kotlin/com/flipcash/app/login/OnboardingFlowScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ import kotlinx.coroutines.flow.onEach
9898
* **and** [FeatureFlag.ContactPickerMode] is off. When ContactPickerMode is on,
9999
* contacts are accessed via the system picker at call site (no READ_CONTACTS needed).
100100
* Already-granted permissions are auto-skipped via [PermissionsPhaseFlowHost].
101-
* ² Phone verification is shown only when [FeatureFlag.PhoneNumberSend] is enabled
101+
* ² Phone verification is shown only when [FeatureFlag.OnboardingPhoneVerification] is enabled
102102
* and no phone is linked. Skipped entirely when the flag is off.
103103
* Uses `target` to replace the nav stack with AccessKey on success.
104104
*/

apps/flipcash/features/login/src/main/kotlin/com/flipcash/app/login/router/LoginViewModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ class LoginViewModel @Inject constructor(
6666
init {
6767
combine(
6868
userManager.state,
69-
featureFlags.observe(FeatureFlag.PhoneNumberSend),
70-
) { userState, phoneNumberSendFlag ->
71-
val enabled = phoneNumberSendFlag || userState.flags?.enablePhoneNumberSend == true
69+
featureFlags.observe(FeatureFlag.OnboardingPhoneVerification),
70+
) { userState, phoneVerificationFlag ->
71+
val enabled = phoneVerificationFlag || userState.flags?.enablePhoneNumberSend == true
7272
val hasLinkedPhone = userState.userProfile?.verifiedPhoneNumber != null
7373
enabled && !hasLinkedPhone
7474
}.onEach { needed ->

apps/flipcash/shared/featureflags/src/main/kotlin/com/flipcash/app/featureflags/FeatureFlag.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import android.os.Build
44
import com.flipcash.app.featureflags.model.BackgroundResetTimeout
55
import com.flipcash.app.core.navigation.NavBarConfig
66
import com.flipcash.app.ksp.annotations.FeatureFlagMarker
7-
import kotlin.time.Duration
8-
import kotlin.time.Duration.Companion.minutes
97

108
enum class FeatureTrack {
119
/** Visible to all users including production. */
@@ -200,6 +198,15 @@ sealed interface FeatureFlag<T: Any> {
200198
override val minTrack: FeatureTrack = FeatureTrack.Production
201199
}
202200

201+
@FeatureFlagMarker
202+
data object OnboardingPhoneVerification : FeatureFlag<Boolean> {
203+
override val key: String = "phone_verification_onboarding_enabled"
204+
override val default: Boolean = false
205+
override val launched: Boolean = false
206+
override val visible: Boolean = true
207+
override val persistLogOut: Boolean = true
208+
}
209+
203210
@FeatureFlagMarker
204211
data object Messenger : FeatureFlag<Boolean> {
205212
override val key: String = "messenger_enabled"
@@ -250,6 +257,7 @@ val FeatureFlag<*>.title: String
250257
FeatureFlag.BackgroundReset -> "Background Reset"
251258
FeatureFlag.ContactPickerMode -> "Contact Picker Mode"
252259
FeatureFlag.PhoneNumberSend -> "Phone Number Send"
260+
FeatureFlag.OnboardingPhoneVerification -> "Onboarding Phone Verification"
253261
FeatureFlag.Messenger -> "Messenger"
254262
FeatureFlag.NavBar -> "Navigation Bar"
255263
}
@@ -274,6 +282,7 @@ val FeatureFlag<*>.message: String
274282
FeatureFlag.BackgroundReset -> "Automatically returns the app to the camera screen after a period of inactivity with the app in the background"
275283
FeatureFlag.ContactPickerMode -> "When enabled, contacts will be accessed via the system contact picker instead of requesting full READ_CONTACTS permission"
276284
FeatureFlag.PhoneNumberSend -> "When enabled, you'll gain the ability to send cash directly to contacts via phone number and chat with them using the messenger"
285+
FeatureFlag.OnboardingPhoneVerification -> "When enabled, new accounts will be prompted to verify their phone number during onboarding"
277286
FeatureFlag.Messenger -> "When enabled, tapping a contact will open the chat messenger instead of navigating directly to send"
278287
FeatureFlag.NavBar -> "Customize the order and labels of navigation bar buttons"
279288
}

0 commit comments

Comments
 (0)