From 13ef440284186b6bb696e32149f2b31c1cc6ba34 Mon Sep 17 00:00:00 2001 From: alexandr Date: Wed, 22 May 2024 13:12:10 +0300 Subject: [PATCH] [MS-451] Fixing condition that disallowed the flow to be continued if the screen was rotated on the splash screen. By movind the `isRequestProcessed = true` to the bottom of the intent handling chain in the OrchestratorFragment, it is possible to get rid of the `isActivityRestored` flag. --- .../feature/orchestrator/OrchestratorFragment.kt | 9 ++++----- .../feature/orchestrator/OrchestratorViewModel.kt | 3 +-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorFragment.kt b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorFragment.kt index 09a2b0ea5f..8253d02731 100644 --- a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorFragment.kt +++ b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorFragment.kt @@ -77,7 +77,7 @@ internal class OrchestratorFragment : Fragment(R.layout.fragment_orchestrator) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (savedInstanceState != null) { - orchestratorVm.requestProcessed = savedInstanceState.getBoolean(KEY_REQUEST_PROCESSED) + orchestratorVm.isRequestProcessed = savedInstanceState.getBoolean(KEY_REQUEST_PROCESSED) savedInstanceState.getString(KEY_ACTION_REQUEST) ?.run(orchestratorVm::setActionRequestFromJson) orchestratorVm.restoreStepsIfNeeded() @@ -87,7 +87,6 @@ internal class OrchestratorFragment : Fragment(R.layout.fragment_orchestrator) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - orchestratorVm.isActivityRestored = savedInstanceState != null observeLoginCheckVm() observeClientApiVm() @@ -230,7 +229,7 @@ internal class OrchestratorFragment : Fragment(R.layout.fragment_orchestrator) { override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - outState.putBoolean(KEY_REQUEST_PROCESSED, orchestratorVm.requestProcessed) + outState.putBoolean(KEY_REQUEST_PROCESSED, orchestratorVm.isRequestProcessed) // [MS-405] Saving the action request in the bundle, since ViewModels don't survive the // process death. ActionRequest is important in mapping the correct SID response, hence it // is important for it to be able to survive both configuration changes and process death. @@ -240,15 +239,15 @@ internal class OrchestratorFragment : Fragment(R.layout.fragment_orchestrator) { override fun onResume() { super.onResume() - if (!orchestratorVm.isActivityRestored && !orchestratorVm.requestProcessed) { + if (!orchestratorVm.isRequestProcessed) { if (loginCheckVm.isDeviceSafe()) { - orchestratorVm.requestProcessed = true lifecycleScope.launch { val actionRequest = clientApiVm.handleIntent(args.requestAction, args.requestParams) if (actionRequest != null) { loginCheckVm.validateSignInAndProceed(actionRequest) } + orchestratorVm.isRequestProcessed = true } } } diff --git a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorViewModel.kt b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorViewModel.kt index 7c4b668998..ea8c7d9dcd 100644 --- a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorViewModel.kt +++ b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorViewModel.kt @@ -52,8 +52,7 @@ internal class OrchestratorViewModel @Inject constructor( private val updateDailyActivity: UpdateDailyActivityUseCase, ) : ViewModel() { - var isActivityRestored = false - var requestProcessed = false + var isRequestProcessed = false private var modalities = emptySet() private var steps = emptyList() private var actionRequest: ActionRequest? = null