From 300bf3eac69eb47583ad6f13f63806a096c3f556 Mon Sep 17 00:00:00 2001 From: Avently <7953703+avently@users.noreply.github.com> Date: Fri, 22 Nov 2024 14:47:51 +0700 Subject: [PATCH] animation on onboarding --- .../views/onboarding/ChooseServerOperators.kt | 21 +++++++++++++++---- .../views/onboarding/SetNotificationsMode.kt | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/ChooseServerOperators.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/ChooseServerOperators.kt index 33cce90d39..3b6c7f9b71 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/ChooseServerOperators.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/ChooseServerOperators.kt @@ -274,12 +274,20 @@ private fun AcceptConditionsButton( val r2 = chatController.setServerOperators(rh = chatModel.remoteHostId(), operators = enabledOperators) if (r2 != null) { chatModel.conditions.value = r2 - if (onboarding) { close() } - continueToNextStep(onboarding, close) + if (appPlatform.isDesktop || !onboarding) { + if (onboarding) { close() } + continueToNextStep(onboarding, close) + } else { + continueToSetNotificationsAfterAccept() + } } } else { - if (onboarding) { close() } - continueToNextStep(onboarding, close) + if (appPlatform.isDesktop || !onboarding) { + if (onboarding) { close() } + continueToNextStep(onboarding, close) + } else { + continueToSetNotificationsAfterAccept() + } } } } @@ -295,6 +303,11 @@ private fun continueToNextStep(onboarding: Boolean, close: () -> Unit) { } } +private fun continueToSetNotificationsAfterAccept() { + appPrefs.onboardingStage.set(OnboardingStage.Step4_SetNotificationsMode) + ModalManager.fullscreen.showModalCloseable(showClose = false) { SetNotificationsMode(chatModel) } +} + private fun enabledOperators(operators: List, selectedOperatorIds: Set): List? { val ops = ArrayList(operators) if (ops.isNotEmpty()) { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/SetNotificationsMode.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/SetNotificationsMode.kt index d6d5753b6c..0f25f05d37 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/SetNotificationsMode.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/SetNotificationsMode.kt @@ -57,6 +57,7 @@ fun SetNotificationsMode(m: ChatModel) { onboarding = OnboardingStage.OnboardingComplete, onclick = { changeNotificationsMode(currentMode.value, m) + ModalManager.fullscreen.closeModals() } ) // Reserve space