From 713248805c5c21c402ba9cb867f3c00f9c9dc11f Mon Sep 17 00:00:00 2001
From: ericdecanini <eddecanini@gmail.com>
Date: Wed, 23 Feb 2022 13:25:16 +0100
Subject: [PATCH] adds feature flag usage to registration flow result

---
 .../app/features/onboarding/ftueauth/FtueAuthVariant.kt  | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt
index 33d57dd95c..e550913e6c 100644
--- a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt
+++ b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt
@@ -123,8 +123,7 @@ class FtueAuthVariant(
     private fun handleOnboardingViewEvents(viewEvents: OnboardingViewEvents) {
         when (viewEvents) {
             is OnboardingViewEvents.RegistrationFlowResult                     -> {
-                // Check that all flows are supported by the application
-                if (viewEvents.flowResult.missingStages.any { !it.isSupported() }) {
+                if (registrationShouldFallback(viewEvents)) {
                     // Display a popup to propose use web fallback
                     onRegistrationStageNotSupported()
                 } else {
@@ -223,6 +222,12 @@ class FtueAuthVariant(
         }.exhaustive
     }
 
+    private fun registrationShouldFallback(registrationFlowResult: OnboardingViewEvents.RegistrationFlowResult) =
+            vectorFeatures.isForceLoginFallbackEnabled() || registrationFlowResult.containsUnsupportedRegistrationFlow()
+
+    private fun OnboardingViewEvents.RegistrationFlowResult.containsUnsupportedRegistrationFlow() =
+            flowResult.missingStages.any { !it.isSupported() }
+
     private fun updateWithState(viewState: OnboardingViewState) {
         if (viewState.isUserLogged()) {
             val intent = HomeActivity.newIntent(