From 6cedb1cc19d2d92f83c59328dd4dc2bed2920894 Mon Sep 17 00:00:00 2001 From: Aleksandr Zhukov Date: Wed, 3 Jan 2024 12:47:20 +0400 Subject: [PATCH 1/8] ALTAPPS-1092: Shared interview preparation widget (#818) Co-authored-by: Ivan Magda --- .../home/view/ui/fragment/HomeFragment.kt | 18 ++- .../step/view/delegate/StepDelegate.kt | 2 + .../Sources/Modules/Home/Views/HomeView.swift | 6 + .../Sources/Modules/Step/Views/StepView.swift | 6 + .../step_quiz/AndroidStepQuizTest.kt | 2 + .../hyperskill/HyperskillAnalyticPart.kt | 4 +- .../hyperskill/HyperskillAnalyticRoute.kt | 12 +- .../hyperskill/HyperskillAnalyticTarget.kt | 3 +- .../hyperskill/app/core/injection/AppGraph.kt | 2 + .../app/core/injection/BaseAppGraph.kt | 5 + .../injection/StateRepositoriesComponent.kt | 4 + .../StateRepositoriesComponentImpl.kt | 6 + .../app/home/injection/HomeComponentImpl.kt | 7 + .../app/home/injection/HomeFeatureBuilder.kt | 24 ++- .../app/home/presentation/HomeFeature.kt | 22 ++- .../app/home/presentation/HomeReducer.kt | 54 ++++++- .../home/view/mapper/HomeViewStateMapper.kt | 7 +- ...onWidgetClickedHyperskillAnalyticsEvent.kt | 26 ++++ ...yContentLoadingHyperskillAnalyticsEvent.kt | 29 ++++ ...ionWidgetViewedHyperskillAnalyticsEvent.kt | 23 +++ .../InterviewPreparationWidgetComponent.kt | 11 ++ ...InterviewPreparationWidgetComponentImpl.kt | 26 ++++ ...erviewPreparationWidgetActionDispatcher.kt | 91 +++++++++++ .../InterviewPreparationWidgetFeature.kt | 79 ++++++++++ .../InterviewPreparationWidgetReducer.kt | 142 +++++++++++++++++ ...terviewPreparationWidgetViewStateMapper.kt | 33 ++++ .../InterviewPreparationWidgetViewState.kt | 13 ++ .../InterviewStepsStateRepositoryImpl.kt | 25 +++ .../InterviewStepsStateRepository.kt | 5 + .../app/sentry/domain/SentryExtentions.kt | 3 + .../HyperskillSentryTransactionBuilder.kt | 15 ++ .../app/step/domain/model/StepRoute.kt | 32 ++-- .../app/step/presentation/StepReducer.kt | 3 +- ...lickedGoTrainingHyperskillAnalyticEvent.kt | 31 ++++ ...letedModalHiddenHyperskillAnalyticEvent.kt | 31 ++++ ...pletedModalShownHyperskillAnalyticEvent.kt | 31 ++++ .../injection/StepCompletionComponentImpl.kt | 3 +- .../StepCompletionActionDispatcher.kt | 43 +++++- .../presentation/StepCompletionFeature.kt | 66 +++++--- .../presentation/StepCompletionReducer.kt | 143 ++++++++++++++---- .../step_quiz/presentation/StepQuizReducer.kt | 3 +- .../presentation/StepQuizResolver.kt | 3 +- .../commonMain/resources/MR/base/plurals.xml | 4 + .../commonMain/resources/MR/base/strings.xml | 4 + .../step_quiz/StepQuizResolverTest.kt | 4 +- 45 files changed, 1015 insertions(+), 91 deletions(-) create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetClickedHyperskillAnalyticsEvent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetClickedRetryContentLoadingHyperskillAnalyticsEvent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetViewedHyperskillAnalyticsEvent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponentImpl.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetActionDispatcher.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetFeature.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetReducer.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/view/mapper/InterviewPreparationWidgetViewStateMapper.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/view/model/InterviewPreparationWidgetViewState.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/repository/InterviewStepsStateRepositoryImpl.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/domain/repository/InterviewStepsStateRepository.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalClickedGoTrainingHyperskillAnalyticEvent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalHiddenHyperskillAnalyticEvent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalShownHyperskillAnalyticEvent.kt diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt index 36accbbd9e..03238cbb8e 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt @@ -24,10 +24,12 @@ import org.hyperskill.app.android.problem_of_day.view.delegate.ProblemOfDayCardF import org.hyperskill.app.android.step.view.screen.StepScreen import org.hyperskill.app.android.topics_repetitions.view.delegate.TopicsRepetitionCardFormDelegate import org.hyperskill.app.android.topics_repetitions.view.screen.TopicsRepetitionScreen +import org.hyperskill.app.android.view.base.ui.extension.snackbar import org.hyperskill.app.challenges.widget.view.model.ChallengeWidgetViewState import org.hyperskill.app.core.view.mapper.date.SharedDateFormatter import org.hyperskill.app.home.presentation.HomeFeature import org.hyperskill.app.home.presentation.HomeViewModel +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature import org.hyperskill.app.step.domain.model.StepRoute import ru.nobird.android.view.base.ui.delegate.ViewStateDelegate import ru.nobird.android.view.redux.ui.extension.reduxViewModel @@ -177,9 +179,7 @@ class HomeFragment : router = requireRouter() ) is HomeFeature.Action.ViewAction.NavigateTo.StepScreen -> { - requireRouter().navigateTo( - StepScreen(action.stepRoute) - ) + navigateToStepScreen(action.stepRoute) } is HomeFeature.Action.ViewAction.ChallengeWidgetViewAction -> { challengeCardDelegate.handleAction( @@ -188,9 +188,21 @@ class HomeFragment : action = action.viewAction ) } + is HomeFeature.Action.ViewAction.InterviewPreparationWidgetViewAction -> { + when (val viewAction = action.viewAction) { + is InterviewPreparationWidgetFeature.Action.ViewAction.NavigateTo.Step -> + navigateToStepScreen(viewAction.stepRoute) + is InterviewPreparationWidgetFeature.Action.ViewAction.ShowOpenStepError -> + viewBinding.root.snackbar(viewAction.errorMessage) + } + } } } + private fun navigateToStepScreen(stepRoute: StepRoute) { + requireRouter().navigateTo(StepScreen(stepRoute)) + } + override fun render(state: HomeFeature.ViewState) { homeViewStateDelegate.switchState(state.homeState) diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt index f016290f73..b4c760bd97 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt @@ -88,6 +88,8 @@ class StepDelegate( is StepCompletionFeature.Action.ViewAction.ShowShareStreakSystemModal -> { shareStreak(stepCompletionAction.streak) } + StepCompletionFeature.Action.ViewAction.ShowInterviewPreparationCompletedModal -> + TODO("ALTAPPS-1094") } } } diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Home/Views/HomeView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Home/Views/HomeView.swift index d72cec169d..526d43d7d1 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Home/Views/HomeView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Home/Views/HomeView.swift @@ -136,6 +136,8 @@ private extension HomeView { handleChallengeWidgetViewAction( viewAction: challengeWidgetViewAction.viewAction ) + case .interviewPreparationWidgetViewAction(let interviewPreparationWidgetViewAction): + handleinterviewPreparationWidgetViewAction(viewAction: interviewPreparationWidgetViewAction.viewAction) } } @@ -151,6 +153,10 @@ private extension HomeView { ProgressHUD.showError() } } + + func handleinterviewPreparationWidgetViewAction(viewAction: InterviewPreparationWidgetFeatureActionViewAction) { + #warning("TODO: ALTAPPS-1093") + } } @available(iOS 17, *) diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/StepView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/StepView.swift index 72694b0b38..6d3199f46c 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/StepView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/StepView.swift @@ -122,6 +122,8 @@ struct StepView: View { presentShareStreakModal(streak: Int(showShareStreakModalViewAction.streak)) case .showShareStreakSystemModal(let showShareStreakSystemModalViewAction): presentShareStreakSystemModal(streak: Int(showShareStreakSystemModalViewAction.streak)) + case .showInterviewPreparationCompletedModal: + presentInterviewPreparationFinishedModal() } } @@ -173,6 +175,10 @@ extension StepView { let activityViewController = ShareStreakAction.makeActivityViewController(for: streak) modalRouter.present(module: activityViewController, modalPresentationStyle: .automatic) } + + private func presentInterviewPreparationFinishedModal() { + #warning("TODO: ALTAPPS-1093") + } } // MARK: - StepView_Previews: PreviewProvider - diff --git a/shared/src/androidUnitTest/kotlin/org/hyperskill/step_quiz/AndroidStepQuizTest.kt b/shared/src/androidUnitTest/kotlin/org/hyperskill/step_quiz/AndroidStepQuizTest.kt index 0be8377762..50f5cad3b2 100644 --- a/shared/src/androidUnitTest/kotlin/org/hyperskill/step_quiz/AndroidStepQuizTest.kt +++ b/shared/src/androidUnitTest/kotlin/org/hyperskill/step_quiz/AndroidStepQuizTest.kt @@ -38,6 +38,7 @@ class AndroidStepQuizTest { StepRoute.Repeat.Practice::class -> true StepRoute.Repeat.Theory::class -> false StepRoute.StageImplement::class -> false + StepRoute.InterviewPreparation::class -> false else -> throw IllegalStateException( "Unknown step route class: $concreteStepRouteClass. Please add it to the test." ) @@ -56,6 +57,7 @@ class AndroidStepQuizTest { StepRoute.Repeat.Practice::class -> StepRoute.Repeat.Practice(step.id) StepRoute.Repeat.Theory::class -> StepRoute.Repeat.Theory(step.id) StepRoute.StageImplement::class -> StepRoute.StageImplement(step.id, 1, 1) + StepRoute.InterviewPreparation::class -> StepRoute.InterviewPreparation(step.id) else -> throw IllegalStateException( "Unknown step route class: $concreteStepRouteClass. Please add it to the test." ) diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticPart.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticPart.kt index d520b76f94..f9b0857952 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticPart.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticPart.kt @@ -40,5 +40,7 @@ enum class HyperskillAnalyticPart(val partName: String) { LEADERBOARD_DAY_TAB("leaderboard_day_tab"), LEADERBOARD_WEEK_TAB("leaderboard_week_tab"), SEARCH_RESULTS("search_results"), - DAILY_STUDY_REMINDERS_HOUR_INTERVAL_PICKER_MODAL("daily_study_reminders_hour_interval_picker_modal") + DAILY_STUDY_REMINDERS_HOUR_INTERVAL_PICKER_MODAL("daily_study_reminders_hour_interval_picker_modal"), + INTERVIEW_PREPARATION_WIDGET("interview_preparation_widget"), + INTERVIEW_PREPARATION_COMPLETED_MODAL("interview_preparation_completed_modal") } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticRoute.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticRoute.kt index 348123385b..05c1bef264 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticRoute.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticRoute.kt @@ -42,6 +42,11 @@ sealed class HyperskillAnalyticRoute { override val path: String = "${super.path}/step/$stepId" } + + class Interview(stepId: Long) : Learn() { + override val path: String = + "${super.path}/interview/$stepId" + } } sealed class Projects(projectId: Long) : HyperskillAnalyticRoute() { @@ -63,8 +68,13 @@ sealed class HyperskillAnalyticRoute { } } - class Home : HyperskillAnalyticRoute() { + open class Home : HyperskillAnalyticRoute() { override val path: String = "/home" + + class InterviewPreparationWidget : Home() { + override val path: String + get() = "${super.path}/interview-preparation-widget" + } } open class Repeat : HyperskillAnalyticRoute() { diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt index 925a8947c1..81ec8f1199 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt @@ -108,5 +108,6 @@ enum class HyperskillAnalyticTarget(val targetName: String) { LEADERBOARD_ITEM("leaderboard_item"), TOPIC("topic"), DAILY_STUDY_REMINDERS_HOUR_INTERVAL_PICKER_MODAL("daily_study_reminders_hour_interval_picker_modal"), - CONFIRM("confirm") + CONFIRM("confirm"), + INTERVIEW_PREPARATION_COMPLETED_MODAL("interview_preparation_completed_modal") } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/AppGraph.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/AppGraph.kt index 3bf0145fb5..611d26f714 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/AppGraph.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/AppGraph.kt @@ -17,6 +17,7 @@ import org.hyperskill.app.freemium.injection.FreemiumDataComponent import org.hyperskill.app.gamification_toolbar.domain.model.GamificationToolbarScreen import org.hyperskill.app.gamification_toolbar.injection.GamificationToolbarComponent import org.hyperskill.app.home.injection.HomeComponent +import org.hyperskill.app.interview_preparation.injection.InterviewPreparationWidgetComponent import org.hyperskill.app.items.injection.ItemsDataComponent import org.hyperskill.app.leaderboard.injection.LeaderboardDataComponent import org.hyperskill.app.leaderboard.screen.injection.LeaderboardScreenComponent @@ -171,4 +172,5 @@ interface AppGraph { fun buildSearchResultsDataComponent(): SearchResultsDataComponent fun buildSearchComponent(): SearchComponent fun buildWelcomeOnboardingComponent(): WelcomeOnboardingComponent + fun buildInterviewPreparationWidgetComponent(): InterviewPreparationWidgetComponent } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/BaseAppGraph.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/BaseAppGraph.kt index 22678ca3bb..3adb7c84d8 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/BaseAppGraph.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/BaseAppGraph.kt @@ -31,6 +31,8 @@ import org.hyperskill.app.gamification_toolbar.injection.GamificationToolbarComp import org.hyperskill.app.gamification_toolbar.injection.GamificationToolbarComponentImpl import org.hyperskill.app.home.injection.HomeComponent import org.hyperskill.app.home.injection.HomeComponentImpl +import org.hyperskill.app.interview_preparation.injection.InterviewPreparationWidgetComponent +import org.hyperskill.app.interview_preparation.injection.InterviewPreparationWidgetComponentImpl import org.hyperskill.app.items.injection.ItemsDataComponent import org.hyperskill.app.items.injection.ItemsDataComponentImpl import org.hyperskill.app.leaderboard.injection.LeaderboardDataComponent @@ -464,4 +466,7 @@ abstract class BaseAppGraph : AppGraph { override fun buildWelcomeOnboardingComponent(): WelcomeOnboardingComponent = WelcomeOnboardingComponentImpl(this) + + override fun buildInterviewPreparationWidgetComponent(): InterviewPreparationWidgetComponent = + InterviewPreparationWidgetComponentImpl(this) } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponent.kt index 8adf98b71e..6f9b6fcb1d 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponent.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponent.kt @@ -1,6 +1,7 @@ package org.hyperskill.app.core.injection import org.hyperskill.app.gamification_toolbar.domain.repository.CurrentGamificationToolbarDataStateRepository +import org.hyperskill.app.interview_steps.domain.repository.InterviewStepsStateRepository import org.hyperskill.app.learning_activities.domain.repository.NextLearningActivityStateRepository import org.hyperskill.app.study_plan.domain.repository.CurrentStudyPlanStateRepository import org.hyperskill.app.subscriptions.domain.repository.CurrentSubscriptionStateRepository @@ -15,10 +16,13 @@ interface StateRepositoriesComponent { val currentGamificationToolbarDataStateRepository: CurrentGamificationToolbarDataStateRepository + val interviewStepsStateRepository: InterviewStepsStateRepository + suspend fun resetRepositories() { currentSubscriptionStateRepository.resetState() currentStudyPlanStateRepository.resetState() nextLearningActivityStateRepository.resetState() currentGamificationToolbarDataStateRepository.resetState() + interviewStepsStateRepository.resetState() } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponentImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponentImpl.kt index 53001af758..11b6442f52 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponentImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponentImpl.kt @@ -3,6 +3,8 @@ package org.hyperskill.app.core.injection import org.hyperskill.app.gamification_toolbar.data.repository.CurrentGamificationToolbarDataStateRepositoryImpl import org.hyperskill.app.gamification_toolbar.domain.repository.CurrentGamificationToolbarDataStateRepository import org.hyperskill.app.gamification_toolbar.remote.GamificationToolbarRemoteDataSourceImpl +import org.hyperskill.app.interview_steps.data.repository.InterviewStepsStateRepositoryImpl +import org.hyperskill.app.interview_steps.domain.repository.InterviewStepsStateRepository import org.hyperskill.app.learning_activities.data.repository.NextLearningActivityStateRepositoryImpl import org.hyperskill.app.learning_activities.domain.repository.NextLearningActivityStateRepository import org.hyperskill.app.learning_activities.remote.LearningActivitiesRemoteDataSourceImpl @@ -49,4 +51,8 @@ class StateRepositoriesComponentImpl(appGraph: AppGraph) : StateRepositoriesComp GamificationToolbarRemoteDataSourceImpl(authorizedHttpClient) ) } + + override val interviewStepsStateRepository: InterviewStepsStateRepository by lazy { + InterviewStepsStateRepositoryImpl() + } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/home/injection/HomeComponentImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/home/injection/HomeComponentImpl.kt index fcd00a9209..f83913f8a8 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/home/injection/HomeComponentImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/home/injection/HomeComponentImpl.kt @@ -6,6 +6,7 @@ import org.hyperskill.app.gamification_toolbar.domain.model.GamificationToolbarS import org.hyperskill.app.gamification_toolbar.injection.GamificationToolbarComponent import org.hyperskill.app.home.domain.interactor.HomeInteractor import org.hyperskill.app.home.presentation.HomeFeature +import org.hyperskill.app.interview_preparation.injection.InterviewPreparationWidgetComponent import ru.nobird.app.presentation.redux.feature.Feature internal class HomeComponentImpl(private val appGraph: AppGraph) : HomeComponent { @@ -18,6 +19,9 @@ internal class HomeComponentImpl(private val appGraph: AppGraph) : HomeComponent private val challengeWidgetComponent: ChallengeWidgetComponent = appGraph.buildChallengeWidgetComponent() + private val interviewPreparationWidgetComponent: InterviewPreparationWidgetComponent = + appGraph.buildInterviewPreparationWidgetComponent() + override val homeFeature: Feature get() = HomeFeatureBuilder.build( homeInteractor, @@ -34,6 +38,9 @@ internal class HomeComponentImpl(private val appGraph: AppGraph) : HomeComponent challengeWidgetComponent.challengeWidgetReducer, challengeWidgetComponent.challengeWidgetActionDispatcher, challengeWidgetComponent.challengeWidgetViewStateMapper, + interviewPreparationWidgetComponent.interviewPreparationWidgetReducer, + interviewPreparationWidgetComponent.interviewPreparationWidgetActionDispatcher, + interviewPreparationWidgetComponent.interviewPreparationWidgetViewStateMapper, appGraph.loggerComponent.logger, appGraph.commonComponent.buildKonfig.buildVariant ) diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/home/injection/HomeFeatureBuilder.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/home/injection/HomeFeatureBuilder.kt index eec88e0c38..589cfe479d 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/home/injection/HomeFeatureBuilder.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/home/injection/HomeFeatureBuilder.kt @@ -19,6 +19,10 @@ import org.hyperskill.app.home.presentation.HomeActionDispatcher import org.hyperskill.app.home.presentation.HomeFeature import org.hyperskill.app.home.presentation.HomeReducer import org.hyperskill.app.home.view.mapper.HomeViewStateMapper +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetActionDispatcher +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetReducer +import org.hyperskill.app.interview_preparation.view.mapper.InterviewPreparationWidgetViewStateMapper import org.hyperskill.app.logging.presentation.wrapWithLogger import org.hyperskill.app.profile.domain.repository.CurrentProfileStateRepository import org.hyperskill.app.sentry.domain.interactor.SentryInteractor @@ -49,12 +53,16 @@ internal object HomeFeatureBuilder { challengeWidgetReducer: ChallengeWidgetReducer, challengeWidgetActionDispatcher: ChallengeWidgetActionDispatcher, challengeWidgetViewStateMapper: ChallengeWidgetViewStateMapper, + interviewPreparationWidgetReducer: InterviewPreparationWidgetReducer, + interviewPreparationWidgetActionDispatcher: InterviewPreparationWidgetActionDispatcher, + interviewPreparationWidgetViewStateMapper: InterviewPreparationWidgetViewStateMapper, logger: Logger, buildVariant: BuildVariant ): Feature { val homeReducer = HomeReducer( gamificationToolbarReducer = gamificationToolbarReducer, - challengeWidgetReducer = challengeWidgetReducer + challengeWidgetReducer = challengeWidgetReducer, + interviewPreparationWidgetReducer = interviewPreparationWidgetReducer ).wrapWithLogger(buildVariant, logger, LOG_TAG) val homeActionDispatcher = HomeActionDispatcher( ActionDispatcherOptions(), @@ -69,14 +77,16 @@ internal object HomeFeatureBuilder { topicRepeatedFlow ) val homeViewStateMapper = HomeViewStateMapper( - challengeWidgetViewStateMapper = challengeWidgetViewStateMapper + challengeWidgetViewStateMapper = challengeWidgetViewStateMapper, + interviewPreparationWidgetViewStateMapper = interviewPreparationWidgetViewStateMapper ) return ReduxFeature( HomeFeature.State( homeState = HomeFeature.HomeState.Idle, toolbarState = GamificationToolbarFeature.State.Idle, - challengeWidgetState = ChallengeWidgetFeature.State.Idle + challengeWidgetState = ChallengeWidgetFeature.State.Idle, + interviewPreparationWidgetState = InterviewPreparationWidgetFeature.State.Idle ), homeReducer ) @@ -94,5 +104,13 @@ internal object HomeFeatureBuilder { transformMessage = HomeFeature.Message::ChallengeWidgetMessage ) ) + .wrapWithActionDispatcher( + interviewPreparationWidgetActionDispatcher.transform( + transformAction = { + it.safeCast()?.action + }, + transformMessage = HomeFeature.Message::InterviewPreparationWidgetMessage + ) + ) } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/home/presentation/HomeFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/home/presentation/HomeFeature.kt index 6a85c0b192..57089bae12 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/home/presentation/HomeFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/home/presentation/HomeFeature.kt @@ -6,6 +6,9 @@ import org.hyperskill.app.challenges.widget.presentation.ChallengeWidgetFeature. import org.hyperskill.app.challenges.widget.view.model.ChallengeWidgetViewState import org.hyperskill.app.gamification_toolbar.presentation.GamificationToolbarFeature import org.hyperskill.app.gamification_toolbar.presentation.GamificationToolbarFeature.isRefreshing +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.isRefreshing +import org.hyperskill.app.interview_preparation.view.model.InterviewPreparationWidgetViewState import org.hyperskill.app.step.domain.model.Step import org.hyperskill.app.step.domain.model.StepRoute import org.hyperskill.app.streaks.domain.model.Streak @@ -14,18 +17,21 @@ object HomeFeature { internal data class State( val homeState: HomeState, val toolbarState: GamificationToolbarFeature.State, - val challengeWidgetState: ChallengeWidgetFeature.State + val challengeWidgetState: ChallengeWidgetFeature.State, + val interviewPreparationWidgetState: InterviewPreparationWidgetFeature.State ) { val isRefreshing: Boolean get() = homeState is HomeState.Content && homeState.isRefreshing || toolbarState.isRefreshing || - challengeWidgetState.isRefreshing + challengeWidgetState.isRefreshing || + interviewPreparationWidgetState.isRefreshing } data class ViewState( val homeState: HomeState, val toolbarViewState: GamificationToolbarFeature.ViewState, val challengeWidgetViewState: ChallengeWidgetViewState, + val interviewPreparationWidgetViewState: InterviewPreparationWidgetViewState, val isRefreshing: Boolean ) @@ -137,6 +143,10 @@ object HomeFeature { data class ChallengeWidgetMessage( val message: ChallengeWidgetFeature.Message ) : Message + + data class InterviewPreparationWidgetMessage( + val message: InterviewPreparationWidgetFeature.Message + ) : Message } sealed interface Action { @@ -156,6 +166,10 @@ object HomeFeature { data class ChallengeWidgetViewAction( val viewAction: ChallengeWidgetFeature.Action.ViewAction ) : ViewAction + + data class InterviewPreparationWidgetViewAction( + val viewAction: InterviewPreparationWidgetFeature.Action.ViewAction + ) : ViewAction } } @@ -175,5 +189,9 @@ object HomeFeature { data class ChallengeWidgetAction( val action: ChallengeWidgetFeature.Action ) : InternalAction + + data class InterviewPreparationWidgetAction( + val action: InterviewPreparationWidgetFeature.Action + ) : InternalAction } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/home/presentation/HomeReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/home/presentation/HomeReducer.kt index 5fd5bf8f83..e970c483c6 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/home/presentation/HomeReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/home/presentation/HomeReducer.kt @@ -15,13 +15,16 @@ import org.hyperskill.app.home.presentation.HomeFeature.HomeState import org.hyperskill.app.home.presentation.HomeFeature.InternalAction import org.hyperskill.app.home.presentation.HomeFeature.Message import org.hyperskill.app.home.presentation.HomeFeature.State +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetReducer import ru.nobird.app.presentation.redux.reducer.StateReducer private typealias HomeReducerResult = Pair> internal class HomeReducer( private val gamificationToolbarReducer: GamificationToolbarReducer, - private val challengeWidgetReducer: ChallengeWidgetReducer + private val challengeWidgetReducer: ChallengeWidgetReducer, + private val interviewPreparationWidgetReducer: InterviewPreparationWidgetReducer ) : StateReducer { override fun reduce(state: State, message: Message): HomeReducerResult = when (message) { @@ -220,6 +223,13 @@ internal class HomeReducer( reduceChallengeWidgetMessage(state.challengeWidgetState, message.message) state.copy(challengeWidgetState = challengeWidgetState) to challengeWidgetActions } + is Message.InterviewPreparationWidgetMessage -> { + val (interviewPreparationWidgetState, interviewPreparationWidgetActions) = + reduceInterviewPreparationWidgetMessage(state.interviewPreparationWidgetState, message.message) + state.copy( + interviewPreparationWidgetState = interviewPreparationWidgetState + ) to interviewPreparationWidgetActions + } } ?: (state to emptySet()) private fun initialize(state: State, forceUpdate: Boolean): HomeReducerResult { @@ -245,11 +255,18 @@ internal class HomeReducer( ChallengeWidgetFeature.InternalMessage.Initialize(forceUpdate) ) + val (interviewPreparationWidgetState, interviewPreparationWidgetActions) = + reduceInterviewPreparationWidgetMessage( + state.interviewPreparationWidgetState, + InterviewPreparationWidgetFeature.InternalMessage.Initialize(forceUpdate) + ) + return state.copy( homeState = homeState, toolbarState = toolbarState, - challengeWidgetState = challengeWidgetState - ) to homeActions + toolbarActions + challengeWidgetActions + challengeWidgetState = challengeWidgetState, + interviewPreparationWidgetState = interviewPreparationWidgetState + ) to homeActions + toolbarActions + challengeWidgetActions + interviewPreparationWidgetActions } private fun handlePullToRefresh(state: State): HomeReducerResult { @@ -276,11 +293,18 @@ internal class HomeReducer( ChallengeWidgetFeature.InternalMessage.PullToRefresh ) + val (interviewPreparationWidgetState, interviewPreparationWidgetAction) = + reduceInterviewPreparationWidgetMessage( + state.interviewPreparationWidgetState, + InterviewPreparationWidgetFeature.InternalMessage.PullToRefresh + ) + return state.copy( homeState = homeState, toolbarState = toolbarState, - challengeWidgetState = challengeWidgetState - ) to homeActions + toolbarActions + challengeWidgetActions + challengeWidgetState = challengeWidgetState, + interviewPreparationWidgetState = interviewPreparationWidgetState + ) to homeActions + toolbarActions + challengeWidgetActions + interviewPreparationWidgetAction } private fun reduceGamificationToolbarMessage( @@ -320,4 +344,24 @@ internal class HomeReducer( return challengeWidgetState to actions } + + private fun reduceInterviewPreparationWidgetMessage( + state: InterviewPreparationWidgetFeature.State, + message: InterviewPreparationWidgetFeature.Message + ): Pair> { + val (interviewPreparationWidgetState, interviewPreparationWidgetActions) = + interviewPreparationWidgetReducer.reduce(state, message) + + val actions = interviewPreparationWidgetActions + .map { + if (it is InterviewPreparationWidgetFeature.Action.ViewAction) { + Action.ViewAction.InterviewPreparationWidgetViewAction(it) + } else { + InternalAction.InterviewPreparationWidgetAction(it) + } + } + .toSet() + + return interviewPreparationWidgetState to actions + } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/home/view/mapper/HomeViewStateMapper.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/home/view/mapper/HomeViewStateMapper.kt index 0dbb95d271..1c04f0b035 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/home/view/mapper/HomeViewStateMapper.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/home/view/mapper/HomeViewStateMapper.kt @@ -3,15 +3,20 @@ package org.hyperskill.app.home.view.mapper import org.hyperskill.app.challenges.widget.view.mapper.ChallengeWidgetViewStateMapper import org.hyperskill.app.gamification_toolbar.view.mapper.GamificationToolbarViewStateMapper import org.hyperskill.app.home.presentation.HomeFeature +import org.hyperskill.app.interview_preparation.view.mapper.InterviewPreparationWidgetViewStateMapper internal class HomeViewStateMapper( - private val challengeWidgetViewStateMapper: ChallengeWidgetViewStateMapper + private val challengeWidgetViewStateMapper: ChallengeWidgetViewStateMapper, + private val interviewPreparationWidgetViewStateMapper: InterviewPreparationWidgetViewStateMapper ) { fun map(state: HomeFeature.State): HomeFeature.ViewState = HomeFeature.ViewState( homeState = state.homeState, toolbarViewState = GamificationToolbarViewStateMapper.map(state.toolbarState), challengeWidgetViewState = challengeWidgetViewStateMapper.map(state.challengeWidgetState), + interviewPreparationWidgetViewState = interviewPreparationWidgetViewStateMapper.map( + state.interviewPreparationWidgetState + ), isRefreshing = state.isRefreshing ) } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetClickedHyperskillAnalyticsEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetClickedHyperskillAnalyticsEvent.kt new file mode 100644 index 0000000000..ca3ec1f292 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetClickedHyperskillAnalyticsEvent.kt @@ -0,0 +1,26 @@ +package org.hyperskill.app.interview_preparation.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticPart +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute + +/** + * Represents a click analytic event of the interview preparation widget. + * + * JSON payload: + * ``` + * { + * "route": "/home", + * "action": "click", + * "part": "interview_preparation_widget" + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +object InterviewPreparationWidgetClickedHyperskillAnalyticsEvent : HyperskillAnalyticEvent( + HyperskillAnalyticRoute.Home(), + HyperskillAnalyticAction.CLICK, + HyperskillAnalyticPart.INTERVIEW_PREPARATION_WIDGET +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetClickedRetryContentLoadingHyperskillAnalyticsEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetClickedRetryContentLoadingHyperskillAnalyticsEvent.kt new file mode 100644 index 0000000000..a8a550ba14 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetClickedRetryContentLoadingHyperskillAnalyticsEvent.kt @@ -0,0 +1,29 @@ +package org.hyperskill.app.interview_preparation.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticPart +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticTarget + +/** + * Represents an analytic event for clicking on a retry button in the interview preparation widget. + * + * JSON payload: + * ``` + * { + * "route": "/home", + * "action": "click", + * "part": "interview_preparation_widget", + * "target": "retry" + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +object InterviewPreparationWidgetClickedRetryContentLoadingHyperskillAnalyticsEvent : HyperskillAnalyticEvent( + HyperskillAnalyticRoute.Home(), + HyperskillAnalyticAction.CLICK, + HyperskillAnalyticPart.INTERVIEW_PREPARATION_WIDGET, + HyperskillAnalyticTarget.RETRY +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetViewedHyperskillAnalyticsEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetViewedHyperskillAnalyticsEvent.kt new file mode 100644 index 0000000000..ac8b1a29f7 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/domain/analytic/InterviewPreparationWidgetViewedHyperskillAnalyticsEvent.kt @@ -0,0 +1,23 @@ +package org.hyperskill.app.interview_preparation.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute + +/** + * Represents a view analytic event. + * + * JSON payload: + * ``` + * { + * "route": "/home/interview_preparation_widget", + * "action": "view" + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +object InterviewPreparationWidgetViewedHyperskillAnalyticsEvent : HyperskillAnalyticEvent( + HyperskillAnalyticRoute.Home.InterviewPreparationWidget(), + HyperskillAnalyticAction.VIEW +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponent.kt new file mode 100644 index 0000000000..4b26d9b98d --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponent.kt @@ -0,0 +1,11 @@ +package org.hyperskill.app.interview_preparation.injection + +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetActionDispatcher +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetReducer +import org.hyperskill.app.interview_preparation.view.mapper.InterviewPreparationWidgetViewStateMapper + +interface InterviewPreparationWidgetComponent { + val interviewPreparationWidgetReducer: InterviewPreparationWidgetReducer + val interviewPreparationWidgetActionDispatcher: InterviewPreparationWidgetActionDispatcher + val interviewPreparationWidgetViewStateMapper: InterviewPreparationWidgetViewStateMapper +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponentImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponentImpl.kt new file mode 100644 index 0000000000..5592d290f0 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponentImpl.kt @@ -0,0 +1,26 @@ +package org.hyperskill.app.interview_preparation.injection + +import org.hyperskill.app.core.injection.AppGraph +import org.hyperskill.app.core.presentation.ActionDispatcherOptions +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetActionDispatcher +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetReducer +import org.hyperskill.app.interview_preparation.view.mapper.InterviewPreparationWidgetViewStateMapper + +internal class InterviewPreparationWidgetComponentImpl( + private val appGraph: AppGraph +) : InterviewPreparationWidgetComponent { + override val interviewPreparationWidgetReducer: InterviewPreparationWidgetReducer + get() = InterviewPreparationWidgetReducer() + + override val interviewPreparationWidgetActionDispatcher: InterviewPreparationWidgetActionDispatcher + get() = InterviewPreparationWidgetActionDispatcher( + config = ActionDispatcherOptions(), + analyticInteractor = appGraph.analyticComponent.analyticInteractor, + interviewStepsStateRepository = appGraph.stateRepositoriesComponent.interviewStepsStateRepository, + sentryInteractor = appGraph.sentryComponent.sentryInteractor, + resourceProvider = appGraph.commonComponent.resourceProvider + ) + + override val interviewPreparationWidgetViewStateMapper: InterviewPreparationWidgetViewStateMapper + get() = InterviewPreparationWidgetViewStateMapper(appGraph.commonComponent.resourceProvider) +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetActionDispatcher.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetActionDispatcher.kt new file mode 100644 index 0000000000..1e5618a622 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetActionDispatcher.kt @@ -0,0 +1,91 @@ +package org.hyperskill.app.interview_preparation.presentation + +import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach +import org.hyperskill.app.SharedResources +import org.hyperskill.app.analytic.domain.interactor.AnalyticInteractor +import org.hyperskill.app.core.presentation.ActionDispatcherOptions +import org.hyperskill.app.core.view.mapper.ResourceProvider +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.Action +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.InternalAction +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.InternalMessage +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.Message +import org.hyperskill.app.interview_steps.domain.repository.InterviewStepsStateRepository +import org.hyperskill.app.sentry.domain.interactor.SentryInteractor +import org.hyperskill.app.sentry.domain.model.transaction.HyperskillSentryTransactionBuilder +import org.hyperskill.app.sentry.domain.withTransaction +import ru.nobird.app.presentation.redux.dispatcher.CoroutineActionDispatcher + +class InterviewPreparationWidgetActionDispatcher( + config: ActionDispatcherOptions, + private val analyticInteractor: AnalyticInteractor, + private val interviewStepsStateRepository: InterviewStepsStateRepository, + private val sentryInteractor: SentryInteractor, + private val resourceProvider: ResourceProvider +) : CoroutineActionDispatcher(config.createConfig()) { + + init { + interviewStepsStateRepository.changes + .onEach { interviewSteps -> + onNewMessage(InternalMessage.StepsCountChanged(interviewSteps.count())) + } + .launchIn(actionScope) + } + + override suspend fun doSuspendableAction(action: Action) { + when (action) { + is InternalAction.FetchInterviewSteps -> { + sentryInteractor.withTransaction( + HyperskillSentryTransactionBuilder.buildInterviewPreparationWidgetFeatureFetchInterviewSteps(), + onError = { InternalMessage.FetchInterviewStepsResultError } + ) { + interviewStepsStateRepository + .getState(forceUpdate = action.forceLoadFromNetwork) + .getOrThrow() + .let(InternalMessage::FetchInterviewStepsResultSuccess) + }.let(::onNewMessage) + } + is InternalAction.FetchNextInterviewStep -> { + handleFetchNextInterviewStep(::onNewMessage) + } + is InternalAction.LogAnalyticEvent -> { + analyticInteractor.logEvent(action.event) + } + else -> { + // no op + } + } + } + + private suspend fun handleFetchNextInterviewStep(onNewMessage: (Message) -> Unit) { + fun getErrorMessage(): InternalMessage.FetchNextInterviewStepResultError = + InternalMessage.FetchNextInterviewStepResultError( + resourceProvider.getString(SharedResources.strings.common_error) + ) + + try { + val currentStepIds = interviewStepsStateRepository + .getState(forceUpdate = false) + .getOrNull() + + val nextInterviewStepId = if (!currentStepIds.isNullOrEmpty()) { + val shuffledStepIds = currentStepIds.shuffled() + interviewStepsStateRepository.updateState(shuffledStepIds) + shuffledStepIds.last() + } else { + null + } + + if (nextInterviewStepId != null) { + InternalMessage.FetchNextInterviewStepResultSuccess(nextInterviewStepId) + } else { + getErrorMessage() + } + } catch (e: CancellationException) { + throw e + } catch (e: Exception) { + getErrorMessage() + }.let(onNewMessage) + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetFeature.kt new file mode 100644 index 0000000000..bbf3187363 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetFeature.kt @@ -0,0 +1,79 @@ +package org.hyperskill.app.interview_preparation.presentation + +import org.hyperskill.app.analytic.domain.model.AnalyticEvent +import org.hyperskill.app.step.domain.model.StepRoute + +object InterviewPreparationWidgetFeature { + sealed interface State { + object Idle : State + data class Loading(val isLoadingSilently: Boolean) : State + object Error : State + data class Content( + val stepsCount: Int, + internal val isRefreshing: Boolean = false + ) : State + } + + internal val State.isRefreshing: Boolean + get() = this is State.Content && isRefreshing + + sealed interface Message { + object ViewedEventMessage : Message + object RetryContentLoading : Message + object WidgetClicked : Message + } + + internal sealed interface InternalMessage : Message { + data class Initialize(val forceUpdate: Boolean = false) : InternalMessage + + /** + * The success result for [InternalAction.FetchInterviewSteps] + */ + data class FetchInterviewStepsResultSuccess(val steps: List) : InternalMessage + /** + * The error result for [InternalAction.FetchInterviewSteps] + */ + object FetchInterviewStepsResultError : InternalMessage + + object PullToRefresh : InternalMessage + + data class StepsCountChanged(val stepsCount: Int) : InternalMessage + + /** + * The success result for [InternalAction.FetchNextInterviewStep] + */ + data class FetchNextInterviewStepResultSuccess(val stepId: Long) : InternalMessage + /** + * The error result for [InternalAction.FetchNextInterviewStep] + */ + data class FetchNextInterviewStepResultError(val errorMessage: String) : InternalMessage + } + + sealed interface Action { + sealed interface ViewAction : Action { + data class ShowOpenStepError(val errorMessage: String) : ViewAction + + sealed interface NavigateTo : ViewAction { + data class Step(val stepRoute: StepRoute) : NavigateTo + } + } + } + + internal sealed interface InternalAction : Action { + data class LogAnalyticEvent(val event: AnalyticEvent) : InternalAction + + /** + * Fetch interview steps. + * The result of this action is + * [InternalMessage.FetchInterviewStepsResultSuccess] or [InternalMessage.FetchInterviewStepsResultError] + */ + data class FetchInterviewSteps(val forceLoadFromNetwork: Boolean) : InternalAction + + /** + * Fetch next interview step id. + * The result of this action is + * [InternalMessage.FetchNextInterviewStepResultSuccess] or [InternalMessage.FetchNextInterviewStepResultError] + */ + object FetchNextInterviewStep : InternalAction + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetReducer.kt new file mode 100644 index 0000000000..bff12fab6e --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetReducer.kt @@ -0,0 +1,142 @@ +package org.hyperskill.app.interview_preparation.presentation + +import org.hyperskill.app.interview_preparation.domain.analytic.InterviewPreparationWidgetClickedHyperskillAnalyticsEvent +import org.hyperskill.app.interview_preparation.domain.analytic.InterviewPreparationWidgetClickedRetryContentLoadingHyperskillAnalyticsEvent +import org.hyperskill.app.interview_preparation.domain.analytic.InterviewPreparationWidgetViewedHyperskillAnalyticsEvent +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.Action +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.InternalAction +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.InternalMessage +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.Message +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.State +import org.hyperskill.app.step.domain.model.StepRoute +import ru.nobird.app.presentation.redux.reducer.StateReducer + +private typealias InterviewPreparationWidgetReducerResult = Pair> + +class InterviewPreparationWidgetReducer : StateReducer { + override fun reduce(state: State, message: Message): InterviewPreparationWidgetReducerResult = + when (message) { + is InternalMessage.Initialize -> + handleInitializeMessage(state, message) + is InternalMessage.FetchInterviewStepsResultSuccess -> + State.Content(stepsCount = message.steps.count()) to emptySet() + is InternalMessage.FetchInterviewStepsResultError -> + State.Error to emptySet() + InternalMessage.PullToRefresh -> + handlePullToRefreshMessage(state) + Message.RetryContentLoading -> + handleRetryContentLoadingMessage(state) + Message.ViewedEventMessage -> + handleWidgetViewedMessage(state) + Message.WidgetClicked -> + handleWidgetClickedMessage(state) + is InternalMessage.StepsCountChanged -> + handleStepCountChangedMessage(state, message) + is InternalMessage.FetchNextInterviewStepResultSuccess -> + handleFetchNextInterviewStepResultSuccessMessage(state, message) + is InternalMessage.FetchNextInterviewStepResultError -> + state to setOf(Action.ViewAction.ShowOpenStepError(message.errorMessage)) + } + + private fun handleInitializeMessage( + state: State, + message: InternalMessage.Initialize + ): InterviewPreparationWidgetReducerResult = + when (state) { + State.Idle -> + State.Loading(isLoadingSilently = false) to + setOf(InternalAction.FetchInterviewSteps(false)) + State.Error -> + if (message.forceUpdate) { + State.Loading(isLoadingSilently = false) to + setOf(InternalAction.FetchInterviewSteps(true)) + } else { + state to emptySet() + } + is State.Content -> + if (message.forceUpdate) { + State.Loading( + isLoadingSilently = state.stepsCount == 0 + ) to setOf(InternalAction.FetchInterviewSteps(true)) + } else { + state to emptySet() + } + is State.Loading -> + state to emptySet() + } + + private fun handlePullToRefreshMessage( + state: State + ): InterviewPreparationWidgetReducerResult = + when (state) { + is State.Content -> + if (state.isRefreshing) { + state to emptySet() + } else { + state.copy(isRefreshing = true) to + setOf(InternalAction.FetchInterviewSteps(true)) + } + is State.Error -> + State.Loading(isLoadingSilently = false) to + setOf(InternalAction.FetchInterviewSteps(true)) + else -> + state to emptySet() + } + + private fun handleRetryContentLoadingMessage( + state: State + ): InterviewPreparationWidgetReducerResult = + if (state is State.Error) { + State.Loading(isLoadingSilently = false) to setOf( + InternalAction.FetchInterviewSteps(true), + InternalAction.LogAnalyticEvent( + InterviewPreparationWidgetClickedRetryContentLoadingHyperskillAnalyticsEvent + ) + ) + } else { + state to emptySet() + } + + private fun handleWidgetClickedMessage( + state: State + ): InterviewPreparationWidgetReducerResult = + if (state is State.Content) { + state to setOf( + InternalAction.LogAnalyticEvent( + InterviewPreparationWidgetClickedHyperskillAnalyticsEvent + ), + InternalAction.FetchNextInterviewStep + ) + } else { + state to emptySet() + } + + private fun handleFetchNextInterviewStepResultSuccessMessage( + state: State, + message: InternalMessage.FetchNextInterviewStepResultSuccess + ) = + state to setOf( + Action.ViewAction.NavigateTo.Step( + StepRoute.InterviewPreparation(message.stepId) + ) + ) + + private fun handleWidgetViewedMessage( + state: State + ): InterviewPreparationWidgetReducerResult = + state to setOf( + InternalAction.LogAnalyticEvent( + InterviewPreparationWidgetViewedHyperskillAnalyticsEvent + ) + ) + + private fun handleStepCountChangedMessage( + state: State, + message: InternalMessage.StepsCountChanged + ): InterviewPreparationWidgetReducerResult = + if (state is State.Content) { + state.copy(stepsCount = message.stepsCount) to emptySet() + } else { + state to emptySet() + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/view/mapper/InterviewPreparationWidgetViewStateMapper.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/view/mapper/InterviewPreparationWidgetViewStateMapper.kt new file mode 100644 index 0000000000..99902bfe34 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/view/mapper/InterviewPreparationWidgetViewStateMapper.kt @@ -0,0 +1,33 @@ +package org.hyperskill.app.interview_preparation.view.mapper + +import org.hyperskill.app.SharedResources +import org.hyperskill.app.core.view.mapper.ResourceProvider +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.State +import org.hyperskill.app.interview_preparation.view.model.InterviewPreparationWidgetViewState + +class InterviewPreparationWidgetViewStateMapper( + private val resourceProvider: ResourceProvider +) { + fun map(state: State): InterviewPreparationWidgetViewState = + when (state) { + State.Idle -> InterviewPreparationWidgetViewState.Idle + State.Error -> InterviewPreparationWidgetViewState.Error + is State.Loading -> + InterviewPreparationWidgetViewState.Loading(shouldShowSkeleton = !state.isLoadingSilently) + is State.Content -> + if (state.stepsCount > 0) { + getLoadedWidgetContent(state.stepsCount) + } else { + InterviewPreparationWidgetViewState.Empty + } + } + + private fun getLoadedWidgetContent(stepsCount: Int): InterviewPreparationWidgetViewState.Content = + InterviewPreparationWidgetViewState.Content( + formattedStepsCount = stepsCount.toString(), + description = resourceProvider.getQuantityString( + SharedResources.plurals.interview_preparation_widget_description, + stepsCount + ) + ) +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/view/model/InterviewPreparationWidgetViewState.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/view/model/InterviewPreparationWidgetViewState.kt new file mode 100644 index 0000000000..be7e413782 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/view/model/InterviewPreparationWidgetViewState.kt @@ -0,0 +1,13 @@ +package org.hyperskill.app.interview_preparation.view.model + +sealed interface InterviewPreparationWidgetViewState { + object Idle : InterviewPreparationWidgetViewState + data class Loading(val shouldShowSkeleton: Boolean) : InterviewPreparationWidgetViewState + object Error : InterviewPreparationWidgetViewState + object Empty : InterviewPreparationWidgetViewState + + data class Content( + val formattedStepsCount: String, + val description: String + ) : InterviewPreparationWidgetViewState +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/repository/InterviewStepsStateRepositoryImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/repository/InterviewStepsStateRepositoryImpl.kt new file mode 100644 index 0000000000..0e2c30fb4f --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/repository/InterviewStepsStateRepositoryImpl.kt @@ -0,0 +1,25 @@ +package org.hyperskill.app.interview_steps.data.repository + +import kotlin.random.Random +import kotlinx.coroutines.delay +import org.hyperskill.app.core.data.repository.BaseStateRepository +import org.hyperskill.app.interview_steps.domain.repository.InterviewStepsStateRepository + +internal class InterviewStepsStateRepositoryImpl : InterviewStepsStateRepository, BaseStateRepository>() { + companion object { + private val stubSteps: List = + listOf( + 3804, // Choice + 1927, // Code + 8955, // Parsons + 7406, // SQL + 35084, 35086 // Faded parsons + ) + } + + override suspend fun loadState(): Result> { + val delay = Random.nextLong(800, 2000) + delay(delay) + return Result.success(stubSteps) + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/domain/repository/InterviewStepsStateRepository.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/domain/repository/InterviewStepsStateRepository.kt new file mode 100644 index 0000000000..648a2d7793 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/domain/repository/InterviewStepsStateRepository.kt @@ -0,0 +1,5 @@ +package org.hyperskill.app.interview_steps.domain.repository + +import org.hyperskill.app.core.domain.repository.StateRepository + +interface InterviewStepsStateRepository : StateRepository> \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/sentry/domain/SentryExtentions.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/sentry/domain/SentryExtentions.kt index d69f54c63e..6f71bf74df 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/sentry/domain/SentryExtentions.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/sentry/domain/SentryExtentions.kt @@ -1,5 +1,6 @@ package org.hyperskill.app.sentry.domain +import kotlinx.coroutines.CancellationException import org.hyperskill.app.sentry.domain.interactor.SentryInteractor import org.hyperskill.app.sentry.domain.model.transaction.HyperskillSentryTransaction @@ -22,6 +23,8 @@ suspend inline fun SentryInteractor.withTransaction( val result = measureBlock() finishTransaction(transaction) result + } catch (e: CancellationException) { + throw e } catch (e: Exception) { finishTransaction(transaction, e) onError(e) diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/sentry/domain/model/transaction/HyperskillSentryTransactionBuilder.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/sentry/domain/model/transaction/HyperskillSentryTransactionBuilder.kt index 8ac6a9161a..49c627e079 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/sentry/domain/model/transaction/HyperskillSentryTransactionBuilder.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/sentry/domain/model/transaction/HyperskillSentryTransactionBuilder.kt @@ -88,6 +88,12 @@ object HyperskillSentryTransactionBuilder { operation = HyperskillSentryTransactionOperation.API_LOAD ) + fun buildStepCompletionNextInterviewStepLoading(): HyperskillSentryTransaction = + HyperskillSentryTransaction( + name = "step-completion-feature-next-interview-step-loading", + operation = HyperskillSentryTransactionOperation.API_LOAD + ) + /** * StepQuizFeature */ @@ -303,4 +309,13 @@ object HyperskillSentryTransactionBuilder { name = "search-feature-perform-search", operation = HyperskillSentryTransactionOperation.API_LOAD ) + + /** + * InterviewPreparationWidget + */ + fun buildInterviewPreparationWidgetFeatureFetchInterviewSteps(): HyperskillSentryTransaction = + HyperskillSentryTransaction( + name = "interview-preparation-widget-feature-fetch-interview-steps", + operation = HyperskillSentryTransactionOperation.API_LOAD + ) } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step/domain/model/StepRoute.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step/domain/model/StepRoute.kt index ec2fdd606d..c27c455576 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step/domain/model/StepRoute.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step/domain/model/StepRoute.kt @@ -1,7 +1,6 @@ package org.hyperskill.app.step.domain.model import kotlinx.serialization.Serializable -import kotlinx.serialization.Transient import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute @Serializable @@ -30,13 +29,11 @@ sealed interface StepRoute { @Serializable data class LearnDaily(override val stepId: Long) : StepRoute { - @Transient - override val analyticRoute: HyperskillAnalyticRoute = - HyperskillAnalyticRoute.Learn.Daily(stepId) + override val analyticRoute: HyperskillAnalyticRoute + get() = HyperskillAnalyticRoute.Learn.Daily(stepId) - @Transient - override val stepContext: StepContext = - StepContext.DEFAULT + override val stepContext: StepContext + get() = StepContext.DEFAULT } @Serializable @@ -63,12 +60,21 @@ sealed interface StepRoute { val projectId: Long, val stageId: Long, ) : StepRoute { - @Transient - override val analyticRoute: HyperskillAnalyticRoute = - HyperskillAnalyticRoute.Projects.Stages.Implement(projectId, stageId) + override val analyticRoute: HyperskillAnalyticRoute + get() = HyperskillAnalyticRoute.Projects.Stages.Implement(projectId, stageId) + + override val stepContext: StepContext + get() = StepContext.DEFAULT + } + + @Serializable + data class InterviewPreparation( + override val stepId: Long + ) : StepRoute { + override val analyticRoute: HyperskillAnalyticRoute + get() = HyperskillAnalyticRoute.Learn.Interview(stepId) - @Transient - override val stepContext: StepContext = - StepContext.DEFAULT + override val stepContext: StepContext + get() = StepContext.DEFAULT } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step/presentation/StepReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step/presentation/StepReducer.kt index 48d5c72b39..3751a5b7bf 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step/presentation/StepReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step/presentation/StepReducer.kt @@ -37,7 +37,8 @@ class StepReducer( is StepRoute.LearnDaily, is StepRoute.Repeat.Practice, is StepRoute.Repeat.Theory, - is StepRoute.StageImplement -> + is StepRoute.StageImplement, + is StepRoute.InterviewPreparation -> false }, stepCompletionState = StepCompletionFeature.createState(message.step, stepRoute) diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalClickedGoTrainingHyperskillAnalyticEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalClickedGoTrainingHyperskillAnalyticEvent.kt new file mode 100644 index 0000000000..5eb6e4bc68 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalClickedGoTrainingHyperskillAnalyticEvent.kt @@ -0,0 +1,31 @@ +package org.hyperskill.app.step_completion.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticPart +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticTarget + +/** + * Represents click on the "Go to training" button analytic event. + * + * JSON payload: + * ``` + * { + * "route": "/learn/interview/1", + * "action": "click", + * "part": "interview_preparation_completed_modal", + * "target": "go_to_study_plan" + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +class StepCompletionInterviewPreparationCompletedModalClickedGoTrainingHyperskillAnalyticEvent( + analyticRoute: HyperskillAnalyticRoute +) : HyperskillAnalyticEvent( + analyticRoute, + HyperskillAnalyticAction.CLICK, + HyperskillAnalyticPart.INTERVIEW_PREPARATION_COMPLETED_MODAL, + HyperskillAnalyticTarget.GO_TO_STUDY_PLAN +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalHiddenHyperskillAnalyticEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalHiddenHyperskillAnalyticEvent.kt new file mode 100644 index 0000000000..408c343cb8 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalHiddenHyperskillAnalyticEvent.kt @@ -0,0 +1,31 @@ +package org.hyperskill.app.step_completion.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticPart +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticTarget + +/** + * Represents a hidden analytic event of the interview preparation completed modal. + * + * JSON payload: + * ``` + * { + * "route": "/learn/interview/1", + * "action": "hidden", + * "part": "modal", + * "target": "interview_preparation_completed_modal" + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +class StepCompletionInterviewPreparationCompletedModalHiddenHyperskillAnalyticEvent( + analyticRoute: HyperskillAnalyticRoute +) : HyperskillAnalyticEvent( + analyticRoute, + HyperskillAnalyticAction.HIDDEN, + HyperskillAnalyticPart.MODAL, + HyperskillAnalyticTarget.INTERVIEW_PREPARATION_COMPLETED_MODAL +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalShownHyperskillAnalyticEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalShownHyperskillAnalyticEvent.kt new file mode 100644 index 0000000000..f65b557a04 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/domain/analytic/StepCompletionInterviewPreparationCompletedModalShownHyperskillAnalyticEvent.kt @@ -0,0 +1,31 @@ +package org.hyperskill.app.step_completion.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticPart +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticTarget + +/** + * Represents a shown analytic event of the interview preparation completed modal. + * + * JSON payload: + * ``` + * { + * "route": "/learn/interview/1", + * "action": "shown", + * "part": "modal", + * "target": "interview_preparation_completed_modal" + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +class StepCompletionInterviewPreparationCompletedModalShownHyperskillAnalyticEvent( + analyticRoute: HyperskillAnalyticRoute +) : HyperskillAnalyticEvent( + analyticRoute, + HyperskillAnalyticAction.SHOWN, + HyperskillAnalyticPart.MODAL, + HyperskillAnalyticTarget.INTERVIEW_PREPARATION_COMPLETED_MODAL +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/injection/StepCompletionComponentImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/injection/StepCompletionComponentImpl.kt index 6b6446597f..d85b166be3 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/injection/StepCompletionComponentImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/injection/StepCompletionComponentImpl.kt @@ -30,6 +30,7 @@ internal class StepCompletionComponentImpl( appGraph.stateRepositoriesComponent.currentGamificationToolbarDataStateRepository, appGraph.stepCompletionFlowDataComponent.dailyStepCompletedFlow, appGraph.stepCompletionFlowDataComponent.topicCompletedFlow, - appGraph.progressesFlowDataComponent.topicProgressFlow + appGraph.progressesFlowDataComponent.topicProgressFlow, + appGraph.stateRepositoriesComponent.interviewStepsStateRepository ) } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionActionDispatcher.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionActionDispatcher.kt index 38e76f8ccd..956fd5150c 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionActionDispatcher.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionActionDispatcher.kt @@ -6,16 +6,19 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import org.hyperskill.app.SharedResources import org.hyperskill.app.analytic.domain.interactor.AnalyticInteractor +import org.hyperskill.app.core.domain.repository.updateState import org.hyperskill.app.core.presentation.ActionDispatcherOptions import org.hyperskill.app.core.view.mapper.ResourceProvider import org.hyperskill.app.freemium.domain.interactor.FreemiumInteractor import org.hyperskill.app.gamification_toolbar.domain.repository.CurrentGamificationToolbarDataStateRepository +import org.hyperskill.app.interview_steps.domain.repository.InterviewStepsStateRepository import org.hyperskill.app.learning_activities.domain.repository.NextLearningActivityStateRepository import org.hyperskill.app.profile.domain.repository.CurrentProfileStateRepository import org.hyperskill.app.progresses.domain.flow.TopicProgressFlow import org.hyperskill.app.progresses.domain.interactor.ProgressesInteractor import org.hyperskill.app.sentry.domain.interactor.SentryInteractor import org.hyperskill.app.sentry.domain.model.transaction.HyperskillSentryTransactionBuilder +import org.hyperskill.app.sentry.domain.withTransaction import org.hyperskill.app.share_streak.domain.interactor.ShareStreakInteractor import org.hyperskill.app.step.domain.interactor.StepInteractor import org.hyperskill.app.step.domain.model.Step @@ -25,10 +28,13 @@ import org.hyperskill.app.step_completion.domain.analytic.StepCompletionTopicCom import org.hyperskill.app.step_completion.domain.flow.DailyStepCompletedFlow import org.hyperskill.app.step_completion.domain.flow.TopicCompletedFlow import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.Action +import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.InternalAction +import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.InternalMessage import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.Message import org.hyperskill.app.step_quiz.domain.repository.SubmissionRepository import org.hyperskill.app.streaks.domain.model.StreakState import org.hyperskill.app.topics.domain.repository.TopicsRepository +import ru.nobird.app.core.model.mutate import ru.nobird.app.presentation.redux.dispatcher.CoroutineActionDispatcher class StepCompletionActionDispatcher( @@ -47,7 +53,8 @@ class StepCompletionActionDispatcher( private val currentGamificationToolbarDataStateRepository: CurrentGamificationToolbarDataStateRepository, private val dailyStepCompletedFlow: DailyStepCompletedFlow, private val topicCompletedFlow: TopicCompletedFlow, - private val topicProgressFlow: TopicProgressFlow + private val topicProgressFlow: TopicProgressFlow, + private val interviewStepsStateRepository: InterviewStepsStateRepository ) : CoroutineActionDispatcher(config.createConfig()) { init { @@ -114,6 +121,12 @@ class StepCompletionActionDispatcher( ) ) } + is InternalAction.FetchNextInterviewStep -> { + handleFetchNextInterviewStepAction(::onNewMessage) + } + is InternalAction.MarkInterviewStepAsSolved -> { + handleMarkInterviewStepAsSolvedAction(action) + } else -> { // no op } @@ -267,4 +280,32 @@ class StepCompletionActionDispatcher( .getState(forceUpdate = true) .map { it.gamification.hypercoinsBalance } .getOrNull() + + private suspend fun handleFetchNextInterviewStepAction( + onNewMessage: (Message) -> Unit + ) { + sentryInteractor.withTransaction( + HyperskillSentryTransactionBuilder.buildStepCompletionNextInterviewStepLoading(), + onError = { + InternalMessage.FetchNextInterviewStepResultError( + resourceProvider.getString( + SharedResources.strings.step_theory_failed_to_continue_practicing + ) + ) + } + ) { + InternalMessage.FetchNextInterviewStepResultSuccess( + interviewStepsStateRepository + .getState(forceUpdate = false) + .getOrThrow() + .lastOrNull() + ) + }.let(onNewMessage) + } + + private suspend fun handleMarkInterviewStepAsSolvedAction(action: InternalAction.MarkInterviewStepAsSolved) { + interviewStepsStateRepository.updateState { steps -> + steps.mutate { remove(action.stepId) } + } + } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionFeature.kt index 0a85456f78..41c6139905 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionFeature.kt @@ -6,29 +6,28 @@ import org.hyperskill.app.learning_activities.domain.model.LearningActivity import org.hyperskill.app.step.domain.model.Step import org.hyperskill.app.step.domain.model.StepRoute -interface StepCompletionFeature { - companion object { - fun createState(step: Step, stepRoute: StepRoute): State = - State( - currentStep = step, - startPracticingButtonAction = when (stepRoute) { - is StepRoute.Learn.TheoryOpenedFromPractice, - is StepRoute.Learn.TheoryOpenedFromSearch, - is StepRoute.Repeat.Theory -> - StartPracticingButtonAction.NavigateToBack - is StepRoute.Learn.Step, - is StepRoute.LearnDaily, - is StepRoute.Repeat.Practice, - is StepRoute.StageImplement -> - StartPracticingButtonAction.FetchNextStepQuiz - }, - continueButtonAction = if (stepRoute is StepRoute.Learn) { - ContinueButtonAction.CheckTopicCompletion - } else { - ContinueButtonAction.NavigateToBack - } - ) - } +object StepCompletionFeature { + fun createState(step: Step, stepRoute: StepRoute): State = + State( + currentStep = step, + startPracticingButtonAction = when (stepRoute) { + is StepRoute.Learn.TheoryOpenedFromPractice, + is StepRoute.Learn.TheoryOpenedFromSearch, + is StepRoute.Repeat.Theory -> + StartPracticingButtonAction.NavigateToBack + is StepRoute.Learn.Step, + is StepRoute.LearnDaily, + is StepRoute.Repeat.Practice, + is StepRoute.StageImplement, + is StepRoute.InterviewPreparation -> + StartPracticingButtonAction.FetchNextStepQuiz + }, + continueButtonAction = when (stepRoute) { + is StepRoute.Learn -> ContinueButtonAction.CheckTopicCompletion + is StepRoute.InterviewPreparation -> ContinueButtonAction.FetchNextInterviewStep + else -> ContinueButtonAction.NavigateToBack + } + ) data class State( val currentStep: Step, @@ -47,6 +46,8 @@ interface StepCompletionFeature { object NavigateToStudyPlan : ContinueButtonAction object NavigateToBack : ContinueButtonAction object CheckTopicCompletion : ContinueButtonAction + + object FetchNextInterviewStep : ContinueButtonAction } /** @@ -110,6 +111,13 @@ interface StepCompletionFeature { data class ShareStreakModalHiddenEventMessage(val streak: Int) : Message data class ShareStreakModalNoThanksClickedEventMessage(val streak: Int) : Message + /** + * Interview preparation completed modal + */ + object InterviewPreparationCompletedModalShownEventMessage : Message + object InterviewPreparationCompletedModalHiddenEventMessage : Message + object InterviewPreparationCompletedModalGoToTrainingClicked : Message + /** * Analytic */ @@ -119,6 +127,11 @@ interface StepCompletionFeature { object DailyStepCompletedModalHiddenEventMessage : Message } + internal sealed interface InternalMessage : Message { + data class FetchNextInterviewStepResultSuccess(val interviewStepId: Long?) : InternalMessage + data class FetchNextInterviewStepResultError(val errorMessage: String) : InternalMessage + } + sealed interface Action { data class FetchNextRecommendedStep(val currentStep: Step) : Action @@ -145,6 +158,8 @@ interface StepCompletionFeature { data class ShowShareStreakModal(val streak: Int) : ViewAction data class ShowShareStreakSystemModal(val streak: Int) : ViewAction + object ShowInterviewPreparationCompletedModal : ViewAction + data class ShowStartPracticingError(val message: String) : ViewAction data class ReloadStep(val stepRoute: StepRoute) : ViewAction @@ -155,4 +170,9 @@ interface StepCompletionFeature { } } } + + internal sealed interface InternalAction : Action { + object FetchNextInterviewStep : InternalAction + data class MarkInterviewStepAsSolved(val stepId: Long) : InternalAction + } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionReducer.kt index 3006961a5d..c9b80a45a0 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionReducer.kt @@ -10,6 +10,9 @@ import org.hyperskill.app.step_completion.domain.analytic.StepCompletionDailySte import org.hyperskill.app.step_completion.domain.analytic.StepCompletionDailyStepCompletedModalClickedShareStreakHyperskillAnalyticEvent import org.hyperskill.app.step_completion.domain.analytic.StepCompletionDailyStepCompletedModalHiddenHyperskillAnalyticEvent import org.hyperskill.app.step_completion.domain.analytic.StepCompletionDailyStepCompletedModalShownHyperskillAnalyticEvent +import org.hyperskill.app.step_completion.domain.analytic.StepCompletionInterviewPreparationCompletedModalClickedGoTrainingHyperskillAnalyticEvent +import org.hyperskill.app.step_completion.domain.analytic.StepCompletionInterviewPreparationCompletedModalHiddenHyperskillAnalyticEvent +import org.hyperskill.app.step_completion.domain.analytic.StepCompletionInterviewPreparationCompletedModalShownHyperskillAnalyticEvent import org.hyperskill.app.step_completion.domain.analytic.StepCompletionShareStreakModalClickedNoThanksHyperskillAnalyticEvent import org.hyperskill.app.step_completion.domain.analytic.StepCompletionShareStreakModalClickedShareHyperskillAnalyticEvent import org.hyperskill.app.step_completion.domain.analytic.StepCompletionShareStreakModalHiddenHyperskillAnalyticEvent @@ -20,39 +23,19 @@ import org.hyperskill.app.step_completion.domain.analytic.StepCompletionTopicCom import org.hyperskill.app.step_completion.domain.analytic.StepCompletionTopicCompletedModalShownHyperskillAnalyticEvent import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.Action import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.ContinueButtonAction +import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.InternalAction +import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.InternalMessage import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.Message import org.hyperskill.app.step_completion.presentation.StepCompletionFeature.State import ru.nobird.app.presentation.redux.reducer.StateReducer +private typealias StepCompletionReducerResult = Pair> + class StepCompletionReducer(private val stepRoute: StepRoute) : StateReducer { override fun reduce(state: State, message: Message): Pair> = when (message) { is Message.ContinuePracticingClicked -> - if (!state.isPracticingLoading) { - val analyticEvent = StepCompletionClickedContinueHyperskillAnalyticEvent( - route = stepRoute.analyticRoute - ) - state.copy( - isPracticingLoading = when (state.continueButtonAction) { - is ContinueButtonAction.CheckTopicCompletion -> - true - ContinueButtonAction.NavigateToBack, - ContinueButtonAction.NavigateToStudyPlan -> - false - } - ) to setOf( - Action.LogAnalyticEvent(analyticEvent), - when (state.continueButtonAction) { - ContinueButtonAction.NavigateToBack -> Action.ViewAction.NavigateTo.Back - ContinueButtonAction.NavigateToStudyPlan -> Action.ViewAction.NavigateTo.StudyPlan - ContinueButtonAction.CheckTopicCompletion -> state.currentStep.topic?.let { - Action.CheckTopicCompletionStatus(it) - } ?: Action.ViewAction.NavigateTo.Back - } - ) - } else { - null - } + handleContinuePracticingClickedMessage(state) is Message.StartPracticingClicked -> if (!state.isPracticingLoading) { state.copy(isPracticingLoading = true) to setOf( @@ -149,13 +132,7 @@ class StepCompletionReducer(private val stepRoute: StepRoute) : StateReducer - if (stepRoute is StepRoute.Learn && - message.stepId == state.currentStep.id - ) { - state to setOf(Action.UpdateProblemsLimit) - } else { - null - } + handleStepSolvedMessage(state, message) is Message.ShareStreak -> { state to setOf(Action.ViewAction.ShowShareStreakModal(streak = message.streak)) } @@ -200,6 +177,35 @@ class StepCompletionReducer(private val stepRoute: StepRoute) : StateReducer + handleFetchNextInterviewStepResultSuccessMessage(state, message) + is InternalMessage.FetchNextInterviewStepResultError -> + handleFetchNextInterviewStepResultErrorMessage(state, message) + is Message.InterviewPreparationCompletedModalShownEventMessage -> + state to setOf( + Action.LogAnalyticEvent( + StepCompletionInterviewPreparationCompletedModalShownHyperskillAnalyticEvent( + stepRoute.analyticRoute + ) + ) + ) + is Message.InterviewPreparationCompletedModalHiddenEventMessage -> + state to setOf( + Action.LogAnalyticEvent( + StepCompletionInterviewPreparationCompletedModalHiddenHyperskillAnalyticEvent( + stepRoute.analyticRoute + ) + ) + ) + is Message.InterviewPreparationCompletedModalGoToTrainingClicked -> + state to setOf( + Action.LogAnalyticEvent( + StepCompletionInterviewPreparationCompletedModalClickedGoTrainingHyperskillAnalyticEvent( + stepRoute.analyticRoute + ) + ), + Action.ViewAction.NavigateTo.StudyPlan + ) /** * Analytic * */ @@ -229,6 +235,79 @@ class StepCompletionReducer(private val stepRoute: StepRoute) : StateReducer + true + ContinueButtonAction.NavigateToBack, + ContinueButtonAction.NavigateToStudyPlan -> + false + } + ) to setOf( + Action.LogAnalyticEvent(analyticEvent), + when (state.continueButtonAction) { + ContinueButtonAction.NavigateToBack -> Action.ViewAction.NavigateTo.Back + ContinueButtonAction.NavigateToStudyPlan -> Action.ViewAction.NavigateTo.StudyPlan + ContinueButtonAction.CheckTopicCompletion -> state.currentStep.topic?.let { + Action.CheckTopicCompletionStatus(it) + } ?: Action.ViewAction.NavigateTo.Back + ContinueButtonAction.FetchNextInterviewStep -> InternalAction.FetchNextInterviewStep + } + ) + } else { + null + } + + private fun handleFetchNextInterviewStepResultSuccessMessage( + state: State, + message: InternalMessage.FetchNextInterviewStepResultSuccess + ): StepCompletionReducerResult = + if (message.interviewStepId != null) { + state.copy(isPracticingLoading = false) to + setOf( + Action.ViewAction.ReloadStep( + StepRoute.InterviewPreparation(message.interviewStepId) + ) + ) + } else { + state.copy( + isPracticingLoading = false, + continueButtonAction = ContinueButtonAction.NavigateToStudyPlan + ) to setOf(Action.ViewAction.ShowInterviewPreparationCompletedModal) + } + + private fun handleFetchNextInterviewStepResultErrorMessage( + state: State, + message: InternalMessage.FetchNextInterviewStepResultError + ) = + state.copy(isPracticingLoading = false) to + setOf(Action.ViewAction.ShowStartPracticingError(message.errorMessage)) + + private fun handleStepSolvedMessage( + state: State, + message: Message.StepSolved + ): StepCompletionReducerResult = + if (message.stepId == state.currentStep.id) { + when (stepRoute) { + is StepRoute.Learn -> + state to setOf(Action.UpdateProblemsLimit) + is StepRoute.InterviewPreparation -> + state to setOf( + Action.UpdateProblemsLimit, + InternalAction.MarkInterviewStepAsSolved(message.stepId) + ) + else -> state to emptySet() + } + } else { + state to emptySet() + } + private fun getNextStepRouteForLearningActivity(learningActivity: LearningActivity?): StepRoute? { if (learningActivity == null) { return null diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/presentation/StepQuizReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/presentation/StepQuizReducer.kt index 6d840e5186..eb8660bca6 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/presentation/StepQuizReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/presentation/StepQuizReducer.kt @@ -406,7 +406,8 @@ class StepQuizReducer( is StepRoute.Learn.TheoryOpenedFromSearch, is StepRoute.LearnDaily, is StepRoute.Repeat.Theory, - is StepRoute.StageImplement -> + is StepRoute.StageImplement, + is StepRoute.InterviewPreparation -> null }?.let { targetStepRoute -> add(Action.ViewAction.NavigateTo.StepScreen(targetStepRoute)) diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/presentation/StepQuizResolver.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/presentation/StepQuizResolver.kt index af5fab57a6..aefcbc4779 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/presentation/StepQuizResolver.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/presentation/StepQuizResolver.kt @@ -117,7 +117,8 @@ object StepQuizResolver { is StepRoute.StageImplement, is StepRoute.Learn.TheoryOpenedFromPractice, is StepRoute.Learn.TheoryOpenedFromSearch, - is StepRoute.Repeat.Theory -> { + is StepRoute.Repeat.Theory, + is StepRoute.InterviewPreparation -> { false } } diff --git a/shared/src/commonMain/resources/MR/base/plurals.xml b/shared/src/commonMain/resources/MR/base/plurals.xml index 588a46ecef..62b958f259 100644 --- a/shared/src/commonMain/resources/MR/base/plurals.xml +++ b/shared/src/commonMain/resources/MR/base/plurals.xml @@ -140,4 +140,8 @@ Win %d bounty to upgrade this badge Win %d bounties to upgrade this badge + + problem at the hard level to solve + problems at the hard level to solve + \ No newline at end of file diff --git a/shared/src/commonMain/resources/MR/base/strings.xml b/shared/src/commonMain/resources/MR/base/strings.xml index 5a62a80486..a00ec3369d 100644 --- a/shared/src/commonMain/resources/MR/base/strings.xml +++ b/shared/src/commonMain/resources/MR/base/strings.xml @@ -568,4 +568,8 @@ Wow! You\'ve reached level %d You\'ve earned the %s badge by reaching level %d! Amazing job! + + Interview preparation + Oops! We were unable to load the interview widget + \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz/StepQuizResolverTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz/StepQuizResolverTest.kt index c853c947b9..db6c1996c4 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz/StepQuizResolverTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz/StepQuizResolverTest.kt @@ -22,6 +22,7 @@ class StepQuizResolverTest { is StepRoute.LearnDaily -> true is StepRoute.Repeat -> true is StepRoute.StageImplement -> true + is StepRoute.InterviewPreparation -> true } when (stepQuizState) { is StepQuizFeature.StepQuizState.AttemptLoaded -> true @@ -95,7 +96,8 @@ class StepQuizResolverTest { StepRoute.Repeat.Practice(step.id), StepRoute.Repeat.Theory(step.id), StepRoute.LearnDaily(step.id), - StepRoute.StageImplement(stepId = step.id, projectId = 2, stageId = 3) + StepRoute.StageImplement(stepId = step.id, projectId = 2, stageId = 3), + StepRoute.InterviewPreparation(step.id) ).forEach { stepRoute -> assertEquals( false, From d19b840601e50a00653b777aee8939f7cfe8d1ed Mon Sep 17 00:00:00 2001 From: Aleksandr Zhukov Date: Wed, 3 Jan 2024 13:36:40 +0400 Subject: [PATCH 2/8] Android: interview preparation widget (#820) ^ALTAPPS-1094 --- .../delegate/ChallengeCardDelegate.kt | 16 ++- .../view/ui/widget/compose/HyperskillCard.kt | 6 +- .../home/view/ui/fragment/HomeFragment.kt | 44 +++++- .../InterviewPreparationCardDelegate.kt | 49 +++++++ ...erviewPreparationFinishedDialogFragment.kt | 70 ++++++++++ .../ui/InterviewPreparationCard.kt | 52 +++++++ .../ui/InterviewPreparationContent.kt | 129 ++++++++++++++++++ .../view/fragment/StageStepWrapperFragment.kt | 16 ++- .../step/view/delegate/StepDelegate.kt | 11 +- .../step/view/fragment/StepFragment.kt | 16 ++- .../img_interview_preparation_finished.webp | Bin 0 -> 21246 bytes .../img_interview_preparation_finished.webp | Bin 0 -> 11656 bytes .../img_interview_preparation_finished.webp | Bin 0 -> 32118 bytes .../img_interview_preparation_finished.webp | Bin 0 -> 92986 bytes .../src/main/res/layout/fragment_home.xml | 8 ++ ...ragment_interview_preparation_finished.xml | 57 ++++++++ .../img_interview_preparation_finished.webp | Bin 0 -> 58986 bytes .../src/main/res/values/dimens.xml | 1 + .../app/step/presentation/StepViewModel.kt | 24 ++++ .../commonMain/resources/MR/base/strings.xml | 15 +- 20 files changed, 494 insertions(+), 20 deletions(-) create mode 100644 androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/delegate/InterviewPreparationCardDelegate.kt create mode 100644 androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/dialog/InterviewPreparationFinishedDialogFragment.kt create mode 100644 androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/ui/InterviewPreparationCard.kt create mode 100644 androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/ui/InterviewPreparationContent.kt create mode 100644 androidHyperskillApp/src/main/res/drawable-hdpi/img_interview_preparation_finished.webp create mode 100644 androidHyperskillApp/src/main/res/drawable-mdpi/img_interview_preparation_finished.webp create mode 100644 androidHyperskillApp/src/main/res/drawable-xhdpi/img_interview_preparation_finished.webp create mode 100644 androidHyperskillApp/src/main/res/drawable-xxxhdpi/img_interview_preparation_finished.webp create mode 100644 androidHyperskillApp/src/main/res/layout/fragment_interview_preparation_finished.xml create mode 100644 androidHyperskillApp/src/main/res/mipmap-hdpi/img_interview_preparation_finished.webp diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/challenge/delegate/ChallengeCardDelegate.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/challenge/delegate/ChallengeCardDelegate.kt index 8ab818ad51..0eea9263f0 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/challenge/delegate/ChallengeCardDelegate.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/challenge/delegate/ChallengeCardDelegate.kt @@ -7,7 +7,9 @@ import android.widget.Toast import androidx.browser.customtabs.CustomTabsIntent import androidx.compose.runtime.getValue import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.platform.ViewCompositionStrategy import androidx.fragment.app.FragmentManager +import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle import kotlinx.coroutines.flow.MutableStateFlow import org.hyperskill.app.R @@ -27,13 +29,17 @@ class ChallengeCardDelegate { fun setup( composeView: ComposeView, + viewLifecycleOwner: LifecycleOwner, onNewMessage: (ChallengeWidgetFeature.Message) -> Unit ) { - composeView.setContent { - HyperskillTheme { - val viewState by stateFlow.collectAsStateWithLifecycle() - viewState?.let { actualViewState -> - ChallengeCard(viewState = actualViewState, onNewMessage = onNewMessage) + composeView.apply { + setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnLifecycleDestroyed(viewLifecycleOwner)) + setContent { + HyperskillTheme { + val viewState by stateFlow.collectAsStateWithLifecycle() + viewState?.let { actualViewState -> + ChallengeCard(viewState = actualViewState, onNewMessage = onNewMessage) + } } } } diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/core/view/ui/widget/compose/HyperskillCard.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/core/view/ui/widget/compose/HyperskillCard.kt index 0d0f85ed2d..92426759ad 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/core/view/ui/widget/compose/HyperskillCard.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/core/view/ui/widget/compose/HyperskillCard.kt @@ -31,13 +31,15 @@ fun HyperskillCard( modifier = modifier .clip(RoundedCornerShape(cornerRadius)) .background(MaterialTheme.colors.surface) - .apply { + .let { if (onClick != null) { - clickable( + it.clickable( interactionSource = interactionSource, indication = rememberRipple(), onClick = onClick ) + } else { + it } } .padding(contentPadding), diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt index 03238cbb8e..fe94a6fa4f 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt @@ -19,6 +19,7 @@ import org.hyperskill.app.android.core.view.ui.setHyperskillColors import org.hyperskill.app.android.core.view.ui.updateIsRefreshing import org.hyperskill.app.android.databinding.FragmentHomeBinding import org.hyperskill.app.android.gamification_toolbar.view.ui.delegate.GamificationToolbarDelegate +import org.hyperskill.app.android.interview_preparation.delegate.InterviewPreparationCardDelegate import org.hyperskill.app.android.main.view.ui.navigation.MainScreenRouter import org.hyperskill.app.android.problem_of_day.view.delegate.ProblemOfDayCardFormDelegate import org.hyperskill.app.android.step.view.screen.StepScreen @@ -30,6 +31,7 @@ import org.hyperskill.app.core.view.mapper.date.SharedDateFormatter import org.hyperskill.app.home.presentation.HomeFeature import org.hyperskill.app.home.presentation.HomeViewModel import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature +import org.hyperskill.app.interview_preparation.view.model.InterviewPreparationWidgetViewState import org.hyperskill.app.step.domain.model.StepRoute import ru.nobird.android.view.base.ui.delegate.ViewStateDelegate import ru.nobird.android.view.redux.ui.extension.reduxViewModel @@ -64,6 +66,9 @@ class HomeFragment : private val challengeCardDelegate: ChallengeCardDelegate by lazy(LazyThreadSafetyMode.NONE) { ChallengeCardDelegate() } + private val interviewPreparationCardDelegate: InterviewPreparationCardDelegate by lazy(LazyThreadSafetyMode.NONE) { + InterviewPreparationCardDelegate() + } private var gamificationToolbarDelegate: GamificationToolbarDelegate? = null @@ -91,10 +96,18 @@ class HomeFragment : problemOfDayCardFormDelegate.setup(viewBinding.homeScreenProblemOfDayCard) challengeCardDelegate.setup( viewBinding.homeScreenChallengeCard, + viewLifecycleOwner = viewLifecycleOwner, onNewMessage = { homeViewModel.onNewMessage(HomeFeature.Message.ChallengeWidgetMessage(it)) } ) + interviewPreparationCardDelegate.setup( + viewBinding.homeScreenInterviewPreparationCard, + viewLifecycleOwner = viewLifecycleOwner, + onNewMessage = { + homeViewModel.onNewMessage(HomeFeature.Message.InterviewPreparationWidgetMessage(it)) + } + ) with(viewBinding) { homeScreenSwipeRefreshLayout.setHyperskillColors() homeScreenSwipeRefreshLayout.setOnRefreshListener { @@ -214,11 +227,17 @@ class HomeFragment : renderTopicsRepetition(homeState.repetitionsState, homeState.isFreemiumEnabled) } - val challengeState = state.challengeWidgetViewState - challengeCardDelegate.render(childFragmentManager, challengeState) + renderChallengeCard(state.challengeWidgetViewState) + renderInterviewPreparationCard(state.interviewPreparationWidgetViewState) + + gamificationToolbarDelegate?.render(state.toolbarViewState) + } + + private fun renderChallengeCard(challengeWidgetViewState: ChallengeWidgetViewState) { + challengeCardDelegate.render(childFragmentManager, challengeWidgetViewState) viewBinding.homeScreenChallengeCard.updateLayoutParams { updateMargins( - top = when (challengeState) { + top = when (challengeWidgetViewState) { ChallengeWidgetViewState.Idle, ChallengeWidgetViewState.Empty -> 0 else -> { requireContext() @@ -228,8 +247,25 @@ class HomeFragment : } ) } + } - gamificationToolbarDelegate?.render(state.toolbarViewState) + private fun renderInterviewPreparationCard( + interviewPreparationWidgetViewState: InterviewPreparationWidgetViewState + ) { + interviewPreparationCardDelegate.render(interviewPreparationWidgetViewState) + viewBinding.homeScreenInterviewPreparationCard.updateLayoutParams { + updateMargins( + top = when (interviewPreparationWidgetViewState) { + InterviewPreparationWidgetViewState.Idle, + InterviewPreparationWidgetViewState.Empty -> 0 + else -> { + requireContext() + .resources + .getDimensionPixelOffset(R.dimen.home_screen_interview_card_top_margin) + } + } + ) + } } private fun renderSwipeRefresh(state: HomeFeature.ViewState) { diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/delegate/InterviewPreparationCardDelegate.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/delegate/InterviewPreparationCardDelegate.kt new file mode 100644 index 0000000000..87f8c61f34 --- /dev/null +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/delegate/InterviewPreparationCardDelegate.kt @@ -0,0 +1,49 @@ +package org.hyperskill.app.android.interview_preparation.delegate + +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.getValue +import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.platform.ViewCompositionStrategy +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import kotlinx.coroutines.flow.MutableStateFlow +import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme +import org.hyperskill.app.android.interview_preparation.ui.InterviewPreparationCard +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature +import org.hyperskill.app.interview_preparation.view.model.InterviewPreparationWidgetViewState + +class InterviewPreparationCardDelegate { + private val stateFlow: MutableStateFlow = MutableStateFlow(null) + fun setup( + composeView: ComposeView, + viewLifecycleOwner: LifecycleOwner, + onNewMessage: (InterviewPreparationWidgetFeature.Message) -> Unit + ) { + composeView.apply { + setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnLifecycleDestroyed(viewLifecycleOwner)) + setContent { + HyperskillTheme { + val viewState by stateFlow.collectAsStateWithLifecycle() + DisposableEffect(viewLifecycleOwner) { + onNewMessage(InterviewPreparationWidgetFeature.Message.ViewedEventMessage) + onDispose { + // no op + } + } + viewState?.let { actualViewState -> + InterviewPreparationCard( + viewState = actualViewState, + onNewMessage = onNewMessage + ) + } + } + } + } + } + + fun render( + viewState: InterviewPreparationWidgetViewState + ) { + stateFlow.value = viewState + } +} \ No newline at end of file diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/dialog/InterviewPreparationFinishedDialogFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/dialog/InterviewPreparationFinishedDialogFragment.kt new file mode 100644 index 0000000000..ce1ffe2447 --- /dev/null +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/dialog/InterviewPreparationFinishedDialogFragment.kt @@ -0,0 +1,70 @@ +package org.hyperskill.app.android.interview_preparation.dialog + +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import by.kirich1409.viewbindingdelegate.viewBinding +import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.bottomsheet.BottomSheetDialog +import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import org.hyperskill.app.android.R +import org.hyperskill.app.android.databinding.FragmentInterviewPreparationFinishedBinding +import org.hyperskill.app.android.view.base.ui.extension.wrapWithTheme + +class InterviewPreparationFinishedDialogFragment : BottomSheetDialogFragment() { + companion object { + const val TAG = "InterviewPreparationFinishedBottomSheetTag" + + fun newInstance(): InterviewPreparationFinishedDialogFragment = + InterviewPreparationFinishedDialogFragment() + } + + private val binding: FragmentInterviewPreparationFinishedBinding by viewBinding( + FragmentInterviewPreparationFinishedBinding::bind + ) + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setStyle(STYLE_NORMAL, R.style.TopCornersRoundedBottomSheetDialog) + } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = + BottomSheetDialog(requireContext(), theme).also { dialog -> + dialog.setOnShowListener { + dialog.behavior.state = BottomSheetBehavior.STATE_EXPANDED + if (savedInstanceState == null) { + (parentFragment as? Callback)?.onInterviewPreparationFinishedDialogShown() + } + } + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? = + inflater.wrapWithTheme(requireActivity()) + .inflate(R.layout.fragment_interview_preparation_finished, container, false) + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + binding.interviewFinishedGoTrainingButton.setOnClickListener { + (parentFragment as? Callback) + ?.onInterviewPreparationFinishedDialogGoTrainingClicked() + } + } + + override fun onDismiss(dialog: DialogInterface) { + (parentFragment as? Callback)?.onInterviewPreparationFinishedDialogHidden() + } + + interface Callback { + fun onInterviewPreparationFinishedDialogShown() + + fun onInterviewPreparationFinishedDialogHidden() + + fun onInterviewPreparationFinishedDialogGoTrainingClicked() + } +} \ No newline at end of file diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/ui/InterviewPreparationCard.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/ui/InterviewPreparationCard.kt new file mode 100644 index 0000000000..988aa6d49a --- /dev/null +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/ui/InterviewPreparationCard.kt @@ -0,0 +1,52 @@ +package org.hyperskill.app.android.interview_preparation.ui + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import org.hyperskill.app.R +import org.hyperskill.app.android.core.view.ui.widget.compose.ShimmerLoading +import org.hyperskill.app.android.core.view.ui.widget.compose.WidgetDataLoadingError +import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.Message +import org.hyperskill.app.interview_preparation.view.model.InterviewPreparationWidgetViewState + +@Composable +fun InterviewPreparationCard( + viewState: InterviewPreparationWidgetViewState, + onNewMessage: (Message) -> Unit +) { + when (viewState) { + InterviewPreparationWidgetViewState.Idle, + InterviewPreparationWidgetViewState.Empty -> { + // no op + } + is InterviewPreparationWidgetViewState.Loading -> { + if (viewState.shouldShowSkeleton) { + ShimmerLoading( + modifier = Modifier + .fillMaxWidth() + .height(120.dp) + ) + } + } + InterviewPreparationWidgetViewState.Error -> { + WidgetDataLoadingError( + onRetryClick = { + onNewMessage(Message.RetryContentLoading) + }, + modifier = Modifier.fillMaxWidth(), + title = stringResource(id = R.string.interview_preparation_widget_network_error_text) + ) + } + is InterviewPreparationWidgetViewState.Content -> { + InterviewPreparationContent( + content = viewState, + onClick = { + onNewMessage(Message.WidgetClicked) + } + ) + } + } +} \ No newline at end of file diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/ui/InterviewPreparationContent.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/ui/InterviewPreparationContent.kt new file mode 100644 index 0000000000..1d54996a55 --- /dev/null +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation/ui/InterviewPreparationContent.kt @@ -0,0 +1,129 @@ +package org.hyperskill.app.android.interview_preparation.ui + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.res.colorResource +import androidx.compose.ui.res.dimensionResource +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import org.hyperskill.app.R +import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillCard +import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme +import org.hyperskill.app.interview_preparation.view.model.InterviewPreparationWidgetViewState + +private fun Modifier.squareModifier(): Modifier = + this.size(32.dp).clip(RoundedCornerShape(8.dp)) + +@Composable +fun InterviewPreparationContent( + content: InterviewPreparationWidgetViewState.Content, + onClick: () -> Unit, + modifier: Modifier = Modifier +) { + HyperskillCard( + contentPadding = PaddingValues(20.dp), + onClick = onClick, + modifier = modifier.border( + width = 1.dp, + color = colorResource(id = R.color.color_on_surface_alpha_9), + shape = RoundedCornerShape( + dimensionResource(id = org.hyperskill.app.android.R.dimen.corner_radius) + ) + ) + ) { + Column( + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + Row( + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + Text( + text = stringResource(id = R.string.interview_preparation_widget_title), + style = MaterialTheme.typography.subtitle1, + fontSize = 18.sp, + fontWeight = FontWeight.Medium, + color = colorResource(id = R.color.color_on_surface_alpha_87), + modifier = Modifier + .align(Alignment.CenterVertically) + .weight(1f) + ) + Box( + modifier = Modifier + .squareModifier() + .background( + Brush.linearGradient( + listOf( + colorResource(id = R.color.color_blue_200), + colorResource(id = R.color.color_blue_400) + ) + ) + ) + ) { + Image( + painter = painterResource( + id = org.hyperskill.app.android.R.drawable.ic_home_screen_right_arrow_light + ), + contentDescription = null, + modifier = Modifier.align(Alignment.Center) + ) + } + } + Row( + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + Box( + modifier = Modifier + .squareModifier() + .background(colorResource(id = R.color.color_overlay_blue_alpha_12)) + ) { + Text( + text = content.formattedStepsCount, + style = MaterialTheme.typography.body1, + fontSize = 14.sp, + color = colorResource(id = R.color.color_on_surface_alpha_87), + modifier = Modifier.align(Alignment.Center) + ) + } + Text( + text = content.description, + style = MaterialTheme.typography.body1, + color = colorResource(id = R.color.color_on_surface_alpha_60), + modifier = Modifier.align(Alignment.CenterVertically) + ) + } + } + } +} + +@Preview +@Composable +private fun InterviewPreparationWidgetViewState() { + HyperskillTheme { + InterviewPreparationContent( + content = InterviewPreparationWidgetViewState.Content( + formattedStepsCount = "50", + description = "problems at the hard level to solve" + ), + onClick = {} + ) + } +} \ No newline at end of file diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/stage_implementation/view/fragment/StageStepWrapperFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/stage_implementation/view/fragment/StageStepWrapperFragment.kt index 37aad19abc..5c38eb114c 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/stage_implementation/view/fragment/StageStepWrapperFragment.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/stage_implementation/view/fragment/StageStepWrapperFragment.kt @@ -11,6 +11,7 @@ import org.hyperskill.app.android.core.extensions.argument import org.hyperskill.app.android.core.view.ui.fragment.setChildFragment import org.hyperskill.app.android.core.view.ui.navigation.requireRouter import org.hyperskill.app.android.databinding.FragmentStageStepWrapperBinding +import org.hyperskill.app.android.interview_preparation.dialog.InterviewPreparationFinishedDialogFragment import org.hyperskill.app.android.main.view.ui.navigation.MainScreenRouter import org.hyperskill.app.android.share_streak.fragment.ShareStreakDialogFragment import org.hyperskill.app.android.step.view.delegate.StepDelegate @@ -41,7 +42,8 @@ class StageStepWrapperFragment : Fragment(R.layout.fragment_stage_step_wrapper), ReduxView, StepCompletionHost, - ShareStreakDialogFragment.Callback { + ShareStreakDialogFragment.Callback, + InterviewPreparationFinishedDialogFragment.Callback { companion object { private const val STEP_DESCRIPTION_FRAGMENT_TAG = "step_content" @@ -169,4 +171,16 @@ class StageStepWrapperFragment : override fun onRefuseStreakSharingClick(streak: Int) { stepViewModel.onRefuseStreakSharingClick(streak) } + + override fun onInterviewPreparationFinishedDialogShown() { + stepViewModel.onInterviewPreparationFinishedDialogShown() + } + + override fun onInterviewPreparationFinishedDialogHidden() { + stepViewModel.onInterviewPreparationFinishedDialogHidden() + } + + override fun onInterviewPreparationFinishedDialogGoTrainingClicked() { + stepViewModel.onInterviewPreparationFinishedDialogGoTrainingClicked() + } } \ No newline at end of file diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt index b4c760bd97..859fe0dbb4 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt @@ -9,6 +9,7 @@ import org.hyperskill.app.R import org.hyperskill.app.android.core.extensions.ShareUtils import org.hyperskill.app.android.core.view.ui.navigation.requireRouter import org.hyperskill.app.android.databinding.ErrorNoConnectionWithButtonBinding +import org.hyperskill.app.android.interview_preparation.dialog.InterviewPreparationFinishedDialogFragment import org.hyperskill.app.android.main.view.ui.navigation.MainScreen import org.hyperskill.app.android.main.view.ui.navigation.MainScreenRouter import org.hyperskill.app.android.main.view.ui.navigation.Tabs @@ -25,7 +26,8 @@ import ru.nobird.android.view.base.ui.extension.showIfNotExists class StepDelegate( private val fragment: TFragment ) where TFragment : Fragment, - TFragment : ShareStreakDialogFragment.Callback { + TFragment : ShareStreakDialogFragment.Callback, + TFragment : InterviewPreparationFinishedDialogFragment.Callback { fun init(errorBinding: ErrorNoConnectionWithButtonBinding, onNewMessage: (StepFeature.Message) -> Unit) { onNewMessage(StepFeature.Message.ViewedEventMessage) @@ -89,7 +91,12 @@ class StepDelegate( shareStreak(stepCompletionAction.streak) } StepCompletionFeature.Action.ViewAction.ShowInterviewPreparationCompletedModal -> - TODO("ALTAPPS-1094") + InterviewPreparationFinishedDialogFragment + .newInstance() + .showIfNotExists( + manager = fragment.childFragmentManager, + tag = InterviewPreparationFinishedDialogFragment.TAG + ) } } } diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/fragment/StepFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/fragment/StepFragment.kt index e302accf32..8ebb341835 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/fragment/StepFragment.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/fragment/StepFragment.kt @@ -10,6 +10,7 @@ import org.hyperskill.app.android.R import org.hyperskill.app.android.core.extensions.argument import org.hyperskill.app.android.core.view.ui.fragment.setChildFragment import org.hyperskill.app.android.databinding.FragmentStepBinding +import org.hyperskill.app.android.interview_preparation.dialog.InterviewPreparationFinishedDialogFragment import org.hyperskill.app.android.main.view.ui.navigation.MainScreenRouter import org.hyperskill.app.android.share_streak.fragment.ShareStreakDialogFragment import org.hyperskill.app.android.step.view.delegate.StepDelegate @@ -30,7 +31,8 @@ class StepFragment : Fragment(R.layout.fragment_step), ReduxView, StepCompletionHost, - ShareStreakDialogFragment.Callback { + ShareStreakDialogFragment.Callback, + InterviewPreparationFinishedDialogFragment.Callback { companion object { private const val STEP_TAG = "step" @@ -137,4 +139,16 @@ class StepFragment : override fun onShareClick(streak: Int) { stepViewModel.onShareClick(streak) } + + override fun onInterviewPreparationFinishedDialogShown() { + stepViewModel.onInterviewPreparationFinishedDialogShown() + } + + override fun onInterviewPreparationFinishedDialogHidden() { + stepViewModel.onInterviewPreparationFinishedDialogHidden() + } + + override fun onInterviewPreparationFinishedDialogGoTrainingClicked() { + stepViewModel.onInterviewPreparationFinishedDialogGoTrainingClicked() + } } \ No newline at end of file diff --git a/androidHyperskillApp/src/main/res/drawable-hdpi/img_interview_preparation_finished.webp b/androidHyperskillApp/src/main/res/drawable-hdpi/img_interview_preparation_finished.webp new file mode 100644 index 0000000000000000000000000000000000000000..a0d7e032bc4d49cbcdc38fe3f488aaabc84872cf GIT binary patch literal 21246 zcmaHRc|26#|Nor@GqQ{&jV&{bt;HUa7-M2ch)Ro{kezHvW=0d^jf|xtA`z9HknC9^ zYh;&w&7OUo-@HGcKfd2Te!t(jk9+4e=e%Ce`#P`ty7#=!c^wly9i43x05H3PGrnc4 zdYcsh06E4v1_Js4Ku=rSxEaLw3xJycy+RpHZtgzbCb~G(?K^i-EaL!(ar~#)*gf?8 zFZF-DGPt(;{>$5Q{{PDH|F4AG-+ySwU|D0F7;nbS89MPYXkN$v(o+A@w*RHo|E2wX zJbf5E#{bgZH%zn{v^|5Ca{OPk?f;_fJiY(rk7V$uySe)Qd#``XzrAC-?|##i@e5;| zLcl}71keR=|Ms8ppHV#C0f6cj06=K}Q)in90A>`yZQl z+IZXi2M)@(f*l+H;BOWHu-^dyo-P1jz4xCs#^wK^8;a2+#L&xwaX135z>gWhx+C=qRmu7wt>j* z)3p*8$R8?M3J94sY&b*zuy;L{q6@!Axn@ew1MZT14D#L;quTM;q<<1gZ`rJgf;Rzv z69+F%-3F-B*WBg7VI8%(o1Perg3SA1pXfK4dT9^+=FYWf{S5cHVf|;sq8xwmOk!P8 z$iwX$J_!++Up*3}lv6Vz#*S;%t1P^rzHcAQ@CE>Vj81>N>4gPL(u@DxN27%3MxWfU zAvcz_yFcXVh{(L$31Jll54VP;|E$xnx$$sd1dU1=0S|3}?I{;-BL z0D7Xcf%<&42BmQ4@Y7A6eerL@_1kEt6OV1>p6e{<4>&P{k3{{kj*WCR9I7zU9A<&Sy4CA>v8us+)s`Cb)J=U>Zxv2UTJsl;*Qq1q zDczgxncoH%r_`R6+&udJ$9r#mw=PqV;uPsWIWJFG<&rF0r5+O-S} zo9)_$tfUN2mBrUv(z@3kE>gJ==pjR!5|wPxI;<9kQ{^WCk?wEH*RS{7$URj$=hX}v zd+Es*F9P1sT%QX_1G9#%#Tp?s70w>_FwBnwp6GZ~l+ks?MXBl|%v@ri@`wvuA+QW} z7k5Evt-e`1k#x=`-qXS2C>`kJvfz8@wLGA0`%hmYjsmMpSSoqr%!fs3tdV@KP)F*n zzsrzg7R|or$Xdm1bI{p&?}LL6l@QbghjGD}9v+n1z5{;lrVOWmks!FnqvA4wDkd=) zit{VZ*p@Zs((S@DK*ZyBOZsvympHe)an(=~2&P39k;%KosUrU@Ar{;;YzD$*m<mO;3}0c$oBB z+>$`xP|LC3!nYphm-3q2u27#w4`6v=Kio7!km1`65tkaA)ripMp>0~2O}f1Cm!mjV z0~_sEBMaMW=c@`Iw$*zov4Wu+pl+~4=Fhd;T0<%tQqj+nr=XKyr7t0?euNG}58%-lk!6qv8uD*d3 zJi^;I4UgiUAby!0T%l}%@$W8US!E z@v^6$8jK&QIBM*F_;GFDJEBVv&V(RnVW|XH&OOX&e^}~|PaIlYgC0W@;%WXRCVi}4 zPgl{*AT1a-uPqewEo^Q?HyZVffNX&|OXXz&yMbQ? zX*Q;Nr@n&fhotZ!(hc#PV=25%j0M9NPTD|I6HMXTI7~zZ|VC8+5sNsVp=FS=fIc}QA?aPffNd9J6*Y91^VcLqah_S!vQ zM-E~ei+xcDshH-&kd@<8R;N$(%zjR5I1S?3TOO`&eNM?sbD3uaA&^AF z8brAHlPx1U=HEIs@B*kU|Ftxfjj1KfV_ z_WBc)0XtWQ=$Z`_1TCOHI#>pSkf_3p^Jt}#{g{fevg0O~IoT1sC=7-qRt8kHXhm^R zN9fU_(h1yR_^<2*`$w{s$~FKq3=M^W{N*^v1e`lcIB#= zKXIuyDKsZ4V{LclkNxkTb_9@#XxhlC^E-s8Z6v-sW9;B~PUb0;fFeV|^*P%o$ zjJQ54cEy(mrxmhbonhA9$f-dWAb~=m+}x& zX0|oPiB#yt|J-fqC}w2{Cq6eCm)g7iO z_QL)gZEdj(#sKH$MxsDM)vKvhuk?7(aiO6Vc@`BH3!I0GBbonNL zmDbBd5lpwB0f^kdOzB-E9_y1ZXbhT+Sd{OuuiUzYLSxw2*f34mJ4eMkAU!aK%C1yv z@yeaMs{P%?6ntR)`W1FC*T#m%4xQnw?BYQ|@uxv#&#lK+U)Vy)Xf&Eq0EQ`(8kz_= z9Cs|Oc6>!~Rs1c;pcz4<95>Oc60wgJ)PnI!@sXpkr){>{Wk=}QpS0t7*N#?+Ircrw z^E=fWjjf?*8v+g{|0V&0LU404hmy&Qop;#UUN={gyoxVdROVus*ico=@#x#SR50$a zWv;mMnNTCpJh2+Qet}Kf|vCh%t1j8}ZbE!nHp0qa|XDCug zbg3!x1c;>d)!X?XNI6rG72~s8VO7Z;iq_*MH0NtVQ3>O-tD`aqhCGsaEeLAMMsSG5 za;0Aj#c2R4u*l@ zdJ1gyYnE670^7igMSN{&4|sIUy>PPDE_8xRI_KnV*yql%8)+nzbzbn?)mP%$u^0+v z(dw~zX7O@rJ`KwqsuyZAa*A1-jp30Py%3QqX|MgynVPVTUhD^utx?%Rmj-dekP!Re z;noXXSv#Zz8V4UR+ev`}5qUF(2 zmnQz~ZRiSOzfm&k^VI{z^%O9Agx#m7PZ9D`Zd;(xHrx(K>m0C+1c_z?Del*7YX4f5 zfd3kE5#og-A_$Mp9xWeriZD6B^y)Zj{=PqJoxqSE7YROC_peGCvv{=d=g%h^1;a0q zXanv;K*6GkJo%Pto$Ze`q)}LNwr9UDaMx|W>-1bc_Q-=M0bu!pfSJNp34TU58n#7T z&F_2duGye4@D{fEwl&$iC$(rWMXm8(Gg(hlkCe!T7p20m14K9t+|?YKw4+(}91NGP z{nHw4p=_Xlf!i-2Vli!)`r7d{!;dKkrZc?XR6N#iKOYDW7muQIgxR z9WXTn=@fReKIZ@_3Rqu1n_xrW{$h@@K{_B4CUIP-@a$8)1_TAM?*?B(DKaTs`pw4feJFO(nY;BXktS(61qyuJELhT{zJvUwEn z^fP1vKyZQg|EQJj)fVgOwJ;mRym)nbtXYl?<0(qUg6r8772DcIcPn;Ix9Yr-u@DNi zkpmWHcRm0(4UVVI4VmA%uSKrULOSy}Nd(rkv$7h&Ck?=m2eu|)_`kB5?Xri{1CRU4 z{T3$AmyIX@7e(EV#o2zG!c*~V)i3iv5N216-6b`+v>myz%*b3`8wP&`N3*rC$tfyA z1`hwa-1{B4m|G_IfX8n`@bx7aA`*5j+D3b0=xJwOtB;(0(cfhrv#3JK=SXNMIgy{a zDTCiSG77Tz+Vak0_s+n2QZ7r11&e|Gxi5cn5(}#w~)2g=`HPH zDR(4|2?(35$#8ZyNVs^EUcFpXQxW4!Z1b?2+^vD9a-lU_O4{Xy1LqffLESo-hzLn5 zPKaH%4uOCSO=PHxtZ))iUnNmDFO4-=pR3wyR_Rk@Vv{pBS1-3|W7UgfXR8Mk6`PnH zNY{`o-Mz|5%)@?h!H~9EmuU5>P%H!t&$U!70dW%|#Q{4#yS{`Aa;~303!{1w=uFbY zh!0yria2}e>EL}TjZ8wFJ!RyEv~Ck5*&v$+7zTzwxbMku&^T+UFjQ1dv~axyFdR57 z=#tSUnU}0t1wyv!FLkli4y5thK_HVrxd78M>sr-IRpyRz2CoxA_fmIYT%jUMVIfc@SPjii)_(sw6K=xiMZOp~p6nSL;!X{@IRvHJH77#^{ z2W&Q{`mgS@GbiwG+)F(idJV#~OivyzM8#-nrx(gAXGRqcCKu*JExmODg9#qkzq{Y_ ziG_1I?F0M2%=$4(XtMdmom3SXP@GsO{{V1^Z0E=iU@wT#dOrE~OK9_5F02mmsORsj z#P34}KLWvpz5Or$z!kfpfxXK+)hy2~11ChSg|MsI`jM9r=x8zOgez+hYiwEo(<6{l=JSsaOE9_Y)e zDGF6WO+jyUqy|56J{9%Iu5w$60QOILG(Ob!S(xqSuskaYzmN%}i_}=U15Kahml-la zcmoty?2C;otFiO7nYAP<9Z|w!=j8ym@~4w(;?GK?8=lM0u3ObqD-AT{$SaeUjfgWa zf~^Gj>|94B#{}hkSVxTV zao@AzjmNK*Ul(6 zvH1&#+E`Antm`iSH2_q^#WNFnw&qrA925&>S(`eHHGzz?Bm@_tHuCsyR%^%S<>rCo zHdB{wDJB71#-ne#QIykeAWNbc$X(h$g!B*So<&Lh{v_;B0S#XWXMF5TX+N!weJjZ0r=ocTZM}}$ni^u^lv2JOM5so}`8bDgfhMaQLIqt;hoEjr`-4>`^2NdpJzc+@lA(w9$Nxy6!F z49*PRK&96NP5kg?Mh@@}fA7d^`AmbIojcxOhSQdu|9-0qC!y@UH}?+m3$5IH&T^H8 z-C^fO!}e4)Q=^s(dtT^{9Zk->f7!-g8vVv134Pyty`3I()6eNDzb0K566Iv=`mZoO zpR`;xc111|+GM8f`ij7Motjeky5l=E{0*{=5fAu0GRx!{(D3tP=Puyq8$0Y2OcxTz zgkA$`s`vE_uvBtOdgmCComxeY&yyGLYeyuZVt7Trfrl1ya0ses^W-I~uj)3XVoyi@ z#Xt*^3~pZ}Iy`-3mpm;LU3H*|hATl~o|{P`HBG^{dy>G-P8Ix?y?%IFJj(6F=bk~H z?jDhawX@Ndr%BL`izvevcmUGBOwf5Z``!1Rn~N&PgEZkdTVG z`fS5+1Q#XL{ot_u3l>jBF8_=1K=;ybh8j`!$$F5y?zaNOS7J~uQHwe~e^d(YK?)dJ0Azcr(qKahu^6+Bs5dQAf|vDtHmH5&3A zZwxg4);%_+H8W#X_Z>xQPCpKkypF|MfBwyu`v+bn&1Ky(w7r+)6)q1}DBu6_Do^f# z@{br0v#ZGCKd^)ZFeYLnOJ&y8EMWKfW26e|YW2=aap`wUgjki9caXy8Z8Gv2xp_ft zXs)=BibtW%syF6egtx`SFlGhAse6C91OPoJ7~hbG zN+ceFOh@WyLIJv_%eS9JbuCi9sm$B zmcdIuI$m}z+d1|NB=BMHnyYRRZT)+I(_g17(J=__h${1IBor4MIkn_@A;X!<&59C9 z^5tsoH5)U-W@x@|JR5BRa&5|V{WhR+JgwG~NGtN5m|j$5o@Se-vaD9BKoL$Pdm|AL z!2@qXa`sku>v!jDOh8k~aDH_@mMWG;W`rO$;ERf>JX6b4j?o5#KtjP6PiMO`gEK5E zl}6tvp_KmZUmyesN+#?uWz|0bb0H#&zC2Gms`o!h!YT|-&V0|aZN*rNK?XFof5pHJ zu%s6eS;`W}tRj^gmTVxd!@}h^%TKWTVxowNPR(;+CME1(s93pkKF@zJs@O4IwLc=F zt=jKL3VVoXKDGxZ`p+_cvw6O=L!cOG1#Irr%+%?Kyy z?El+|KtPYeQL{U6)2}~sL@jt5hQZL#|M4hq(N~Lg6)X3Z^DXRGZz+C_LFFLPE{bYN zrS(qTa2>>>s+c?V3`5?eNx(ABSq4r1FmzQqU-;y3=@PG;DMBsi_*YX~o~CDi6_(ns zu`)WC^7C3aF6d|iDVk<2)XDKm`@<(xdjZg+wO;R@1 zU|35LgaO+oTh+UERRxX@`o~&ZOBDR8PC0a#YxsNTX^$|IG$j?cp0-@-gT;bT8c8Mjoy-Q;%tC12_AUfYsVR#DIXppe(H0uZ3@ycVn^xRK zG%J|F;DqKMjd6nMEy=?Vz<%1jmk!V&@PCkZsvVX`e=6hc>-ViI?kGX-zZ#XoUz~c) zB_~+0H(tC5Lt9JaRC?MzZJ`JaMuHexRckkq*#VjAAn%A|QgU%}Ql#K#0XL7Eo!~lT z3@oGTbWt#4%^QWI5d04t?H>=C=MDLJE^UIYe;ZA2bYP|?{Rg)JfGYu~11B07qh(V@ zL%_kV=_(0di?Ck)Y1E>6M=c8DxD*PbA>M5YJddLzxTA7pPrV0dPwVNqq& zY+1Bsc^_aCIrH1>j)J5_9ODtQbHkk&6RDtGhn8z)RtEH*DHsihiAT1-4d7b15O2*| zwc*c5M95u^*=r9=wS?R;vG!VTSOm)PGT*n?CHv8C2_%0jc|Afil-q9bi`JE|qB_*$ z?Ww4`Fybrj{~**CWojDF>o3W<@I7IsB0${DmD|mVi-q;Ks{*{m65F`+RKNGFZ=7Hw z5coXg65AxOGQMKEC;}y3Jy?G4T~(U%OOg-dSzd#dJQ|EcF;TGwk9y7pDk}-2_&qcZ zH`UxN(z<4Yy1BlVOlZC|s zAU0HH+vxc`uKqR#Mq3OS3gxl(n)r1Sjh1}rx*mPJTp`woL046S?HwG7!o)%rv@lFa z;ao%a@fWDHe*xOw4y2i3`vjiCiXA`=h8co-3W_QskM^k~I1Iy3C+~;7%+4`=tqyA- z*Umg(j=rO&tJmTCGy~uw6A+?J>B|d$1k%eugtW6Lmv-7f6e%Yf!9|rLmRV0Vm;4tA z(1ZLt5J9+`%Q=I_(Gol;rkKh=LZ;%N*K_w9j0`K7@lIc2>G4bdc@Jd^wSPiUMd?&9 zrn*!ZAyT^G+~|2!-kl_#M7PU-+XRY3Xt^nxTWT0u`in4)T687>5cmx^FT!4g$Y7)a(p z6cR^*b{8&Wp|tF`4qN)s`N+4X)jE_LN~2 z2V7*=UjzzmaK)mSYuhwcp^1q+m)f|z>{KFV7ep2f-(r=Do_sEIcu7FeU|q@Q_}|`S zLS7O*e-eePL$S?N6-w0YhBp@_v2Y(g`~u3 z?#DYzzL&DEP+_?0fs0EQLr{1?tQ}tOqoRXBl6yApoP5ef0MYIg&yP4MjQ%@&1&2;E zA}{*xQxTe%wjr990n(#y8ap^hY?LSe4(Kw>PM6O_U_@pA3aBElh)Fk4m*dj{5rIsg zj>L{L7;)*C5)T=^#mUzgG{b-Pn$$?7$ok%gG4>E#EFdr+h zKtpuM0qPzfw;?bD$g-3F(=faVhIsJyO^2q6C`=k*T3vHH2OW!H2&ibTZ~3AUPjW+J z3Q;IbIOq@*rl6=uh7z_Lw|Cc5Pe4H?e|LN1{m~89&<$T?4hxXkmCDp*IG6eg3#IT< zR8F0sx+Y*HFa>+z9y#Pl9s*e|(EtT91s+d@Ylp?&=OHw~%fF9rhKYRVMP*u74+vAUVA3ohkEk=hpAvWi(z@$o2p;)N5oW2%f$eK>em za8Y_gIxbuufGNqX_{$#sdZEoQJ58^srnIM67cT}DBS~2dOKbb7giyfvjsvHx4S6lo z`4_cIwpuENZH^LM+hwT;lrB301y&fN4SLW$AKt$&u9(>I@0zstr^{C^Jz+uNNm5*x z6?uEz3J?J<|IDvE)K4wDmbWhx@OXVCD~ZO4)qd|89ou1>gS3~7Yng)&Hcp+2cyUr8 zuFYV3d1ms3d?ua{E)Nq@aPpUbONFrumNKR^2osVNcD7vzjZW;ys86j7Yhe~}5HLYO zV;7cBS(#g$nsx!~1(j=06?PPsHA|6xZR|sGBQRYM7Kp_eYyS~Ph zf0?Uab-0C4cz|tUMop<$9ya#<`SVS#1*6!4(Q9gnUA}B6agqjxLQN(QM3A3vo{YpT zRn`nq{nSJtc#J6Cp&d*h5dL;>Fg^_q%2l%S(miq+U3ILZ?+|9;UKVlI87%VsTP`hpi4>eSLkI zAoUDQ;tUu@ZT|SAFilw)1gAv!jSHdiP*6vnHp556g;AolNfAsv!pCh-u15-@&@m4{ zaHdkrpa;H%w@Da#Lad%dVkA%O`(aMii#RF`$C@Br?{_JNHw5qWCHT@CV%}zE!FGEi zQ*-aZ@!(?s$_)bXcth>M9+kTrxsA4H1TukQ6Us;kw9ejGieUG}W96DoFt31q8&km> zf{fSa`{q?*+fw(l-kp>?`35+O{atKR+QQaZVnIn!(YGS*P#eaga4e06RY+Vuku0RA z##l`aoc|TWO9fBQB{2Y+2GHA7^;JgR78TX@(f(HR*x}Ntvy2i6q14hCvTS;U%(%e; zk)&m=CK&8&3o;yq^QcgRC8H>?Hn+5;v zRjJuK?}4TuucjA5VR{544hM$QO!*I-F7b(hl^|IHJO~5hyivNC&XzY6jNiWk(}O92 z@~sXRwp6P2+M(Petm;V=6v-Wn#erKm>@=%JLU{u>JRn&Twvhz;j;QF;=u-G^Di8xT zus1>E(f_oXxz`-|K`>bAdnPcNLZKkI2~8KLj*CVVm{7bLY{_B>Xymua%s+1|s5r*J z0gjcYKq0hO!GC*(-7Bua&%5GN6~Ry7z~umgV@;Fu@F!jPo_6Wj;+G%yZXdZCGcdA7FU ztFu+-2gavwW@4AP_)k=>r$@ZHY$ycmvm$>OLcx$^pWLQ<(BYZF$lFWP8YPA=$<8;u zMZo>2C>W~t{Z&WdP)33`)(eKPUO`DbW29eU{E{qn>90xFlz^?)*FWudxEPa6Y6t=( zRwaGd*eH@78mW!47eZl6A(CMGWB@%y8(ab$RbbLsgBGUWKUeGpu~zilVG}-(gv4I1dbXdUDQe#2PB2J>Kvo=8}v4thS#3ixwck z%*OO?0fxe3X$AY+q9a4KA6xupf4NFrmGnZ4{K6wL1i2_Mc^E=$?~AI{Uru&Uew19+ zvA&|g%Z{39>)lCyZacPE9F0nX5%e?mCWQSJAT1UrFH5hs1SDr8evtUI~0 zyaGg?j-q+ds??KjN;kj=X1B8Df>@vG;6kt7$B9i^KYkQYpv$Tgk`TSIA)eYtdMgc~ zs!Dlq>gpPahQLpa9e|N>G7JKOXNPdoJs4~|&^L>qeM5m|00LDH{l&v%X zc*X*6Kxf851AvA+@*nMY5@_x-OekvzG;_6yNOc7rLe3PM2Li{S6nIDla*QPMR-{Xv zq(Rao1+o*pH?fDn5u=eg?vQ1iY4$w(wn#I_qJH`>qJU<3aD7m1zvgGUKOJ;5wUd9C z-%_)E`HPRo!PpfIb-L`);-T!J?0OBIzWHQ`e*f5ieQMf&-fG)&+^T_2Bc>ep9!DI9 z?OD-}HY*#5*N$J&d5&aPb=!%%oST*n^fIC^{mBaGuwq~GP}8|)JGkCzj5vJ&5ao}D z>1PMOA9)9(E3k9H*j0{?^bBfMEK;3nFmzXC?ah z)o$8;(zs%MjdDugw$U3+bHC*$BC{fmGA+BH;OmF2hgP#z?^dQ=9@0-yGL(*o|v$r>+KBRIk$o2TtvIY}RaAP0~>sMw&x(qhsQB>yTs* zaYwW75KKJ7=w153_dU)-;xxks`v?8oOb3ZeSN6Z@E?nt0=5CICJdW{iv(DOV7|u@G z2>oq7mV9FVh9$q zon79?O@725Kbcml_pJbsO zef&{kp!wj90d}1p_;z4y3DxTBAhoBJhvL7^XXP%Fb!`8N^ZM13o|CWuICI&4-jG4l zGri>eLvqnWj=FmGujMz_zNg>1VN4$Nt{l>dzb~>xHJ>`QY^$tQKW`Ue%!0dlw(LW_ z)V+9*6|^eE?QqJZjHT`4X}bRm(MH*8#2l@vgPz zMZ=iIak_^_+zIc({=+)4;1_giabAetdk1Y;2d@g`xX8qw{!#sMsNZ=mmAhA4351x< z^s%ipKyUJP!H)#P%iR1tXKE?tS4)&{Nh`cnX;w`S`>tU0>`OztoBZ$o#63G_llFlE zpEGA8gMtQVj`RFFp=PE$d>j9LVjhAQ9G-g>DcN<7f174;i8k{5e*LA#4av4#1Zx<` z7hEUa&$F~bAALB7sK!!!NPNtW*%}Nip zD<>)~^Yw3`mByuQI9 zYwupTnLZAUelG%Gq*#HNgO~-~TDZu6JQ)uF$74878kAUdFk8ysIK~EZsLwsc@m*+3 zPtx*Qw>`A^R+437DR`fU{GoX|DG_uZ;McVICOMmA;}V_3`|QM^=S)EIhnhZR2g93= z#Y=yqi+#^^Sxoc}VGaY=K#jf+i>sWjwJc9O@M`Fdo&IYZo$oVy_Nwvs6KbU!4oo^G z=kAH0_QjPTW`nJD^XuQ-lwvJ>bzQ!hCTd)|ID;4PTzsuzp=zuV{I)~n{fYD>gEzrF z`|aH}t)3~9G4-7>CY7P@R{XyR$8Dr%o-Y>(Ul)%qeEi||#n;Yb17ZYkG)8>~xvz1# zjN`|66OrEZPW9lLGV`vu*Z8xxx99sElh0k?|GSw}n-nXE%SzeP3b|N3maKO7=eOw( zXFh+mxS2Ci#Pvqyn+&Z%)sT?`>R+%dhf9-qpZQil<7KRK6z)V~_15BKz0Y4|aK; z4rRNZq4wBRJ>IGt6*Rjg{LTLB`B=G$gJL(Nc!e_}FYd|>QTt1Qz2VWNf37#>pW{4V z)A-z8UHybKhs?fI=PY^_L zua_J{*5GO)dxMnk`0gZDKf5|VSB4sBeoRGd`W#T==Zb!O$bAs(^>K(Fm2ho`e7h!} zH~UCGqU^qEpuz0h=dMmgVTNW|`Xzv!A5 zSDMMp-90>2DAsBS(l!5b0(HZ;#JkezpX%m@sO{UW*AHIaT@3M>;A8A|uIu}wYr@~% zdHAkoAmTE@#nfE(Y{!|V!HkNG)K|y)-F^;o9BLw&;-*smdE>AMpEgeD$&7j-$2X?c zGNS?#V}2FnM!z3?*-DT3)BhIcd6b*$6_$C5T2=E)Wud8i>EW8#`TWBRl>;Sb>N?p< z2wz{@k9>^Scp7nArcu2y|eYTsjDF-{_5=V(Ednb}+UAy+1mB3x*u}9E`L-UNUhaM;%@ z+&BZKdtb{u-QYP{65nY6s!a`kVL#vA9$n8x?GcXt+#{lX>LdNv`nJbES1ZOeoQpfzUX}Ck>W4x34JTJm%=APqhbz!MOS=W<|KJ}6!r!L=AD#@ zp5^RK8x?4k`Zr`TwuZP)3=IQVK%M1WYv zbQTcVowIl!d zQX_m7o@mw9v$2qW?InzwT;Ixm^sWn2ANy^vv+N(5dN_Tjp0}*(@7&yPtzt*HD&I7j zLK97!Q-2>#O#0u=6besM{|jO_a97Lu^Fkc*ULlYwV0Pw30qZJdrX+Re*YzPEk-{@2 znF_^}vX(#KkZEkO-bTGou=U=M%~s$bxgr{{&@6kvQjWRm(S=}gE2u>)dTaSw{J6F@ zgNtgKx=Dv}suQRWUT&@DeV!DkJUSVOt7U8I(nNWr7#5#qQu|pVev6d+afNW`I9pUF zaJS?6-=Qg3OT2G#yomK@%l9lrN#;D(fU{*WeCh2mKKaVDo4lRLjX#ebhtLe=9C%$BKYEv^SNhqqs)P5l*0a|y_RYPu ztPC618QQd-FsQ!__pJOq*mmyhWbqgCPvUp-1xx6QbljQQ(U>3M2E|f`_1}#&>U?|x zE_f(!bp2E@?eW!Xa6cIujMCxF2CMh|h-+B<{wUL+FqI8s)x&9(Hoc|#N>o*XCavbv zHUZ!#xMq%HGIKD?xXQ$wKb>PusvggNs&KNt{Bwn|doayE(7yc`Ew?kLc<*x{R)9}s zPyd5QhJ;kkE5YenP04MEE&(*}P0@r#mUvYk!9G{kdT~p}~SBe!Qd)A2mwYact7ufM4CwgIbQS}ZV zJp5$A%+kn}f)8#Ow}goJ0oZko)?7+Towyvq#znL|NUE|jf!NnhWl6~YdFRr0 zIp)#R{FKlPqJ$oEb?nds$&7Gk z|Bt7kYN|3lzhuR!#{+gN?s3$kvZvj~{oP>#Rs+77@_z12OY%<7K)%(}2@*aYeZrv) zd33`aaE^O|Nl0Lj;pWyFThpP>#{GQim7C$`PS#{YZh%plw&}#5Ovy(V zxF+ip*zW6H_K>()d}q%nGQ~Zs_xFeBCy>#*afi=UKW@bT$;N&U%KXI2^NBQK+FDU^ z4x3qh|3T^5-+^B?VqOcYE`@ZYgv-4;JP=lFIW#SeXP5Yu;Zen##(fnputrCpYVs8* z|1yi7J#wxCu-6Kr4sC$Y2ugX`QpbeV)a5_R80H17t&u0QAUeObEir2eH~x?BJ8K_v zrHz>A)q#37?|X{1ZTn|)CT_@Ogk~T)t{cs`hJC?LW$Ev-EzEyB2Pg}jI4xDF|LMu? zl0{|1=rl@o=0HAG~_f`1S$p z;y6=u)Q_}Ch4_3^u2*NGRn>nDUzUA3xxT+{#p=`}AcwX9v+M^79Y1Iz-KanN1)QU8 z9rt#w=p$_y%%AVp-PE@eBilhG@4XZ%Z!C4<0t> z`Cr;OAO*Dfr#8v==e_`cuZlchW)EsU=DQ#n#?FiT?lJl_X-xa;S3$P8A9)Q2Ym_~- z$q(Nnob8rO*qujA4Hcui?p)7G(;lDUE77!zzLN2|x6EAgm)T1PMwtEHq3_%qL>??b+4XTSBs2JpYp zJxM>i-Pw9_4`g`XseGgVVx!c(SZfF;IKLc|81~P3E>%uK*TSFTn^mtLzMPb}#J0); z%v7DV5(PVq#Atmey>#Pdgfa2;S=uCok6RG2;?DPe$(e;-Q`&suPNhOkMW#c2FfI3$ zZ=h(_iLR3xk{=4496wp9tgU_jW%I#V%W5C^xs_z2P`X_UA@*vWt2pV=7?q+2ien<@ zDNJ*5T;_GVJYDW}ZY|A(JPqP56?^f+zu*0!_p(^M+-kEkvtbb@>0Q=n(o1pvZ&&@T zFMsQPtF8LQcumgIZ_xBn_uWXCF~7>qo|lc!+fF4Y?`FMoQ+cSkqo&+_5CY7WUGy>A zuAQ3!XW!42LgwV;=0mOX>QiLdCBwMCqei*l0tN)jJSSG>t_GUu(}U=3K@5$zJ-ZECQm&>tldeyQnR^# zH6T@E?#)=$kA{h_iT8p;L^ye(d5EVM+p9w_L$Zs#%&g5nxrD48{Y@BEEp#<5EKL{G zJcZ=Yul#IA(tong(Q!3^=WWp0cTN9PUnu|*RMqYGBiseU*|Np=caE{mzI&aHY*CeQ zOj1(C*GNNMCy6#CMb#-kI8h&P#2bnf^)Si{c9Z+6&ni_9Lxe#CYe1XYeUY%6mYtsG zxzCUP%)iU3W3q9F6DlCE4Ov6SD=3 z2V^I`(!8>J!LuvTZX{h(b~NuE_ZN)Wimy-M$n%_P&RLl!$l|6++|S*bLqnm1cTXW7 zp7_$GH~r;auC};6$cy_y|5JMF<5i0LD~Vg+S>Tm+c?R5|;LlEc!swB6sBPl;f*VT8FRm};Y;nK-Fl6XloNIXX(Ll_q z;mMD@+I_|vU&riRJqos^HPYDf?zb=YR$GZ+fQw&;zt@6`e!09lUo%=+&+|+4eEek9 zSs{qAyNX@cxhGLB@gonv3584h9WI`)9pk@HXn*Bz%lyxn>Qn2}9~8XB<5yw?q#yg)U5j-&y*l|5=D;A%Oi?I6 zcv7GBNwCw4``&rK#noPAom;k&)sf^2&T(nXvG9_?ma z7^wFm{4y*P=pszFfXf z)zzs;Z5jR5Zw|;b@;Wo(33hufB(U5U2ZuQ~o6DUArYhIr#J~yj=&XxZ5`ZJd_QW%s zhS>(97jk%@aWbko38jnOHx#erMHQ4-M^6NmEtr?>#{N9-HVX3yQBU}=YLb}QXnK{+ z;S{A`!&gmd?k$3HrP0$bYS8DSf>ABU?^kVOf+wv6pM#InQ6KI=mM&$C3^be;XYOyb zJt-+|YM=A&teU+<%u3i$%&`8 z`JC*tY2~Zx{>vsgR|C4El9lp}nLCwhRb*)87S_NEZc)h7o@>C!7{BEFQ_U=rTg~hEI34;lCRhiw_9pKUzs7~Vf!RJ5a)3lEJi{0*0 zD$*yGfX)iHa3yfzN>y&+=)1FKGcQ*b!~2uvpA1=oh?t_|{}bF0Bky4^uA#F~C_6IF zqZi{*`Q@1Y>4Px-=r`7^m^NM4)I_gc4|sPFE{G&}^1~hOUF_i{P1p_eUf=V=tWVHY@k|4J#ga+-&!51SkoNw`X7M z-QIXmgXW07n{a5u;43w?!$6NLLoN9U4(Jy@RxI*Yii^;#aB-9JUflG&+Z`pk=WH__ z5$5sZM#ayJ90jSK4oId+rjV;a2 zn?akKM9E;x{pIL@GqnjqLYlUI`;}2hJbDw$ zxJu}J118y|omL52CRGFl1-3pml4C59>bG)`nRFM+DxJ={yVCqhnR0w_VFr*Dm19TS z5-q19i0pMJ3bv&{a8NZoTa&Qa2Q=30b(Khqx2qf)4e%%-YlX;|B%PrTa55Mh>+xH8 z4tqOUGEpMj~R;36|+PD1r5Gv8+llrlhcXJI2r3pkzhn*(2uh10C$Fnm2c zptrCb)QB7H+5&#FU7UXapKXp_lTBCon*@k7iZx+py~x>RJsi7LR>k9m-+e6+C}%SG z?zsDVb5+Q=`DYz7%BZ>XQCnlBwxB`XjZZ-kT*SyY8gm3XbemG=te%K~vBYG(JJl45 zHFLKY3pC}t>~fRLrn<@n#>dKeT$<9@qzd_r40WHJv;-$OFDxO;w}soC z7WkFRcrA}Gm;gVn9hBe*;;&60j<2W8)OZCAhI6u0VD@Sp(# z+jIQ0XsJEwKgU<`ss3({bwqLmd}vt3sNlQ)T9Hmwo;u(L0=%)E(tV}CbVUBU%^lTH zzY~{mx!#bphgbOkIwO^1F$ckGC4vsfJk(ph7K%7}Vif%QpBne9@^tVypj9%M#wZ!e zF;nf_sjAcYxBXo=lzBcAn2S+>0b80at;%F!JVap_{q`r8?QiiBS#L@)0MFa7{LtQU?X z$hjhJX^;LnvnQzEP5+s(Z0QPpBj*LaHDBVGerSmxAfB_+Y6grg~%-T z+4?0R2$dG`$G*?%fs4c5bj&SGkqM-7E9s)Q?*b?PLCaMmL^ixOgK#pr{n{;Mi|Q{yd=YDpR5uA58(m;h27Y}3!V~lyiy$U=i(0vs&L=s zM?eGzsJDyfL?68`$D8`9zd(G>(JxWW3;!zQg);1#jqeJHwQE4LE~a(P`w)mph{j5uiYW}yjYDMQ5MAXHjY0%PO^yaXw4jrl+Zpfii3m9PrCliE1@c8;_muER`+?iILrFqlLP)Rt+TOQpD2}78cK? zl`3#1`dPToRW3y!t&VHmQ9Wko%}6SGg<*vViY`QJI9IxfwTM`raf9Vo!%$sa_WV_}QlTtOxSh3K3}AIFd4i*7&)UWhp(TcDFev36)29imPNvW3IBd!1JrOv$4UM<{wjmd%@$ zt6F%#6!w!+JL2H6u^^LKaL6E!2>qi;!mkpEkDIGkdUyUEf!zN)~) zJ8crdhp{K;#gpi8F}=t)20v`2Er}Nrz%Mh-EBO~T$>4FOwP;1$YDlaW1WUdXC=$=h zqVp2JILa#ZbFk%)%;Z!0kRuQjdXKmYy<#!7eLoUN!Y5RRIzF!@R0nqHn)28`^Oj$7 z_<%_T&(Aj<8@*O_wQh@2p&()u<-HZE8vHr==ga-}&aG_0Dr~1A0~k|{GZmWIsC|*n z$PUydUU1-ZL(sDzK%wA3uc@xfkrc=;6XZa(X(QX-D;QL2o-_l6mroF&)f(jaFTM!FkO%5iF6*6749z99)h|U;WsW92B(mj3rz{^)<>obj!az zb0T6@L?EH@E{zght8;|=X|DYJ06Z_8qSU?yoOcH~LXSydzjVdt`mKL?6Lo!sgKx=* zbObp>P-aS;11(NJl8A5c+i@=d@Q~ljlKxUdy~xZa5T7n*!)jQPB9XcDh79a7pF34- z%XD~=oSjsubk*7{q3qd`N>zsYH?TUVweUQ8^v13BuQHN5)Cg*Ay&?qmic9umDiTE( z(*2f8P9g``R-|20!Y?R$`K0 z0zf+qQ2Z7=bkB}oRk?)uXA_9(O0@MM6(Z*9F}E1)YL6t5ouSs&9NCmc3*q1C>w%DpSA5AzqWPlPFs{Mbi4&9;^XA!1E1F9eTs%_9vX>h5!e+Vs6HU5RWaIA? zRV<3)Y6VC77G+r8&N?EybGyV~YWtiVg z=NRwcUB2>`Ip}Q*zAPuMlV~1b;YdO@AmH+A<*eo73!q`@i^pr(Wt(m9s;=;RPj%Xs z0@k2DyVx>yyYbTTfXGf$ploaqaD@_Z`xCWt)r)??!XkIQA_&SpicDoLfT(5(XD{aq zy3?A|oCwi@$0!sZ7#g!4E!|ir;7M~_8$Oo9R;9C|w(Wtx8^HkKT`mOpw1jGN-k9+m z4l1wSn|BkXgXe`U{T|e(i4y`~F0y^=v7Zve;mCw|Om#u`Y-2)BF~^%d zMani`L|-|b-hJ$Fjv??Om;R9Q2r-;5c~A`9_tA>3YYg+G;IxMvZm1FS#n4={+@Jq4 zRR_muW8FG_4eamy46OFs`%^vX<|IM9q2~r+o`&`h;DO{yJ-xnL8@HGG#5WkZ_1g7+ z;-ajj*0)2aZ)ge#%1YE!jpX-@K%D%0JLK{#pcoUvvLD7vAU;br^v{MhHkdDaW!}v?+jZED5si&r#DiHMDW4DVVyD+4 z(TH^{UZzu~mTwv}&HL+Z_4AhK8`{Cda?seH1N74tKWdXclwhQxqgwmWNBaHi)b*GD zNDh1DX>@CJ^|bzmKPL5d&aN7v!>b)w$1}d|4LmcW`O0b6>DXvOLSD|ll))Hy-oPu)$%_MIEgtx2@+o<|;2V&#SIez`p+@9D6+>^hpY5n+*eOqE%`(^KeP|aU z$BKbu=Go%Qw!`nZ`+A)YntQVpynGo!)V0F}4$b@-mD|fR=Su6bDtIP$g>A9C6#u?= z{|H5iF?g0jOj5qX884&4IR7fw6G!6-*#wsr4ZK7#+msnA)kbE%c^3OM4Fj3hVOrlZ z18;fZ7a73L@V-Oi-5Q-84D2P<4(n9aj1p%c?k=}bkXrT#+3P?u;=?Ws!L3;09 ziqe!Wz30Z~`S89U?)`9Qe>3~vnKN_F?3|g|b9VI9l$9~O0DzH_yv}1Cabt1-03bk! zvOqur0HCIzpwkT`JOY5-|57la$l1lqLr+B>Vf@4dLAnG060ZLQOKVTJ|DykEN}xKP z{4ebof#3gkAhWUcv?kQrBSa1l0&{{)bOcOi_g~EQ4_o~gOZ~&XUT$6l8l8XG!$41g zfNcnv%kF<+tN(?q-8}x$#}R0xoSnS?@%k73^^Vfk#ZaGchY%tQz!RVcPyxvQ>p$U{ z5M1*B0P!OLfGF{Q@~qMTfSL#Z06zOac^o+a0ChM3@O9{a^8V+YxLJBw{--%GAq72u z4gl;I0suFj006YZ006n^f655S|3fwep@@Ybmn-4212_R}0SJH^zy)9p;3FU*!k`KQ zMCCMfRCR9>S{**b<9TYFkIq;O8OYm$kt_?gib=!!G4v9Dq;pmZK0@KW^KVgSK3zyi zq6;@tF2(BxLTr>9`J-|iGth_eIDR-zJ50&ia>X~829yBVRrc~A?_ltij!c(B=@LwR zj_Kg@nmM+($Pcl0+ZbInokyY4-PGp2 z+X4?h?eVN15lW)#&)C%DB?X4kk-BWj_vPcT2URb|)X8A_!yCIY8iD#c2~PrjZPgtf zwNAe^upZlZ1p+I+?R(>>t_GB6iJBaxaSyg->8(8zVtqdZj}LGDgD2m;-9t zG;H!L2|Ca}ixRkS?2Jnk9}JwP&JJ1|ycJHDh^5>~^;{hx<`AlF^<4)8(Rph4gxuDl$mQv*(WS77f-aY!<_}t)FDh*06w~ezjHsH#L(a4f!yb zmiWII{hC1#+?(71S_A@JN)MYCG{06S zg@(-ymCa3%2yYltb!q!=vASAobHZE@Si;?fMu>;m^FbJMZ+97*6ADE_$vNcl+@1B1 zaCh@?I@F7DvA?RC)zUgea|YKM2x92#R4k-m30#kU!OdhnX}+T^r2HK>IjVEbt_Bn& z7E~e^zAZPvP%i}xr3RS3&bFWhn z1vyVNc~b}Yi)U6%`o<%05+YTj+3?weZN|l>&oe|ETL!9H&l8AYIEV!YaiihQ{_;tg zbcB06C-5!(kh3PqwyiwZ`gQvwTYGvC1o+~o4Ng#%Detf*prT})v)^aCYbx?G8^!CV&w zZU#?Q} z2}S32N@(%eJSkFfXMYt5g;DO$PLimiu+VVC9t#RAbox8^L=K7tauDQ8RD_zepr zxN|EbeJ@s_4)l5rlXC(XAQ4UYQk$(-Tvii41P7+1X&G-BH=*!!Ix2pORQGhk*pov& ze0k>7fKaeNscRV#2^kF=NCE-|x?HaSv5HtQQ7Vb%i=V&cz9$8zultZPHhnp@A%6W- z6&99SZ^BGVNes?G%$MDuB#8z`w*XaP*t6p>MVum54pcB{BL0vxA6KQ3-uM)VgSma3 zE8?mTM-oSNKMf{}gXW0{%$H5Ex2oElhT4TI7q_6>l}FdS;4q`gpXuBwygFp z-o~6mFKc^`1R{?v^F7$EpJjpJ3UY3THu(4x36QWSL8yVC@BE9b(e0`nnEYx1SyHgR zMPC2T{KAdjuI95&+3%FPf9P%`)g-uj)|i8!q1zH5;&{BDzk-#G--;y@(QXi?6CT|P zf0>a%go9hZ{@psC+tl>c4a>#)isPLGN45(jvlm=kXL$%wCUF+LX3vI}nh0Mc?n1A_Z1$Wcs z`mL`AwgUt^ErM=`qF@ejp$A*#h4dN%R@H+XesnFU&*g{zm|+xuEj|r?iW6y}%sRV{ z8);pC{#-szuv2wKKoAROh6cE930j>rW%k7C> zl}Kg3b!J)S{;m1?l%ImiR`4$ZvZ*C+lOl}s>WEKZQXR;t~6YC6uTP=c4*wG>k2&RF>XJ>M8NxB3zOj6|-#ZNCv zn*mY+nU!+4W+zJF7s;p@5H`_}(S0we`5{1%d@r*^7L04f0NF@FRXO0LA%Q#5Y0T*- zKlJHR=VOtmRB#GAWGNln3jd8hoVe1XCJwpSpr%wtDq;v)qnc>p=J~>nFncXhU(P8a zhxH?w7q6zxWr~5|)8lGZh$2Y7MK!J+AxCJS?e&jGF*>LpiFLUnzOvU0q|i9Qkj+`@ zcrY8H)gn$2L_!v+{NN^UA{|?Afd#;t@|ZxB0D|eayFRN2sM^1UQ(8cgz%W4)0gHn4 z_uQzsO>zsk3w{|L0st#su1&-WTId6aIxP}0;I_ktR7FH3_t7**Yin2YUoK@_qU+Oo zxPTUdpbi|ET$h4^GgYup>ARjcp(1p7Q06H;X4h#5(K@`a`LjWWZ8&DE+Z|RK6-q45(dV# zd~VAYz!asCkPv7|iIM-BMYiiwnn}dv1I;a~pLg2RM++u6YoiXh?aLo-C(Dx~_Ah^G zdq|ST7M>8nfRp9siF0RHcGlz@Nw$yS2VDRdwX2rQDhn#^(D?677)nnH-+tGXG_2#n zg&fnsnYo#L47_E0UkaLduJ*WV3j)J=&LwN7Ly%4_MZY-WVSYQ^{~;f{cmRGzT5~hF!>JwBEd>nj z@0N*(avu!Z6YZHi7>$5gR)yZweuy2qb>9CHNl8C+`3{5f+CGoSWR$teT`$rQ<|~UI zLbAcx%Q`%12ZKP$zXiP_Y!NhUT~xuMk^(Jd9b*YlHu8+-5K9%9%u)M+NFp6e5YMt6 zA0iQyv|4?wICf_=bt>xfyW|3Zb^k$>jOhb~cchsUSMo6s_wDnJO!$(%wp0`p23fA7 zgnr0s)Zn2VkSB*=U0=2oS3q>ZSr@~081Yw@!%ya^k@+nLQ+$-s)sPkas02B3#Daiz z7m!6hX{k1IiUhZLZ?F9b9=@kL-wPsA&3`3S=;Z& z!%{)rvmX{#Dj}l{Gs0ePY!xBDA4JJS%|uf^EJO0)B;mNtO(sMH8_kR`K-X_9<;u1^j}?vD5Mo z7nGyiV4hCZ>1s1!NQ-OLjDs$m*QcRZ4M`GeM-`lPi)rbxoh|xx-QK_p2IXiJM`5%7 zx1(b%TNcwkdEpi&r)HM-OC@D*9FY!%05;-Hb|qTv16y`bE1_}-=|I>r&jn!{TdpZL z17iV6b$?uM#K?DNnmzoHm@pD&283eUL5B?&t5@^V70xr(WVcQZ0?M(3MJG|ZOViLZ>i;U1sFt|&gh^Evmr zAB}c@txQ%!cuP<@+}UKr3zS>dGbuq(ev2k01!aPbIf1W`aMoW9s!*we)7UL>j~DLVXmaqcTs&M6 z)BTNHkT||}#xm+kKWvo-sTzYI@Wf#duje0$=!HYV(5&!i@7iWrYF@PW&9^$+$4(~gzN^_>S)M8i-vp>j1(hPkU28H%x_Sf@?$WGNnaqiciBCV*>Cry(@_Ag<` z){3>hd=yi*%pvl<%;Dj#wB}PNNAnK_C=!Oyqpp#Dh2@g7>OFcSlE3u|#|;gq(~NOO zC?|Gesx~u=9S(!y`PHOB+OpSr97_rbXh*a?m0ok59W@k;i?bHg-;o@?KEh$T2?Hwf zdL98RI{8}T(lD1zM-ND{;DRWHSI+sH;%*44u9O57-GTa_|4l(kT?e93iN+5Ae@O$e z;}0|%OO$ug7WaTqxcT%YPufl z1D^Xt?e>G&)}v-DukuJUcS>Q3l@)VEI8?YQ$G#z+RSx{qi2c3Fh8TV^i<-QZpa>4a z)~M>r6GIH0n^k>A5n~TSTmH-)(QXoh%%iAS2rO;;b_Hb;fqzgY-VULRLJG=5+5C<+ z17+-?Rve@7P=TyXC?6!s<5EDMMhK2R~ zOt8w`>gAhB@MYQqv?`4pN|O%TA}M=1H`(8>Ak0Kb_`+3X5qtb>_5~g4TkRm&WKgi7 zYww?Jr=%Cz~G6rf5X<{rlVAN}~*BtNh{COnoMknDj5(5eU`^?myjb>#nowf(0 z3Mh7@D;^9WLmtgcHHn{GvK-+QBPsrFXrqsZ6{rP&zzJp)G`c}$h?foF7Nhp%ezfWe z&3mIvmmb_|vrrw%2~!hty)7Mhy!G>#DJ%){`FW?)Hn<&9E0x5;Nvvq;OlpwnLMDep zIemJZa=sKOdn;%!jMc^_Ot2HqjtYlBI~$wlN#dLYlla*30RdazHoWX^<^kjrjbmFW z%Y!b;PMYyoaZYfTI2dyG4>Kv(N9{Y#2pUUkI|F`mB=QIj1Lt+GW?vq*k}i@y=b$99 z7Es12;;I`+7cS!g-;Wh5paUU(54{P1N?85(rBfpO5LbSngWzUA$_wuoo6)rX(TQ4N&0sz|V^@<0Wb< zT=BYm@#7|rL~uF43%#MTfq3SVg}@4Mn+}=0y(pYR6^h)Qzg~dq@9l61v2u_bx*8MA zWtMnuqyjta_m$s47QvhVlfhB)?}3#6ZpZa`jHHBM%kgY^Jb97sihume{UQY67(u=FA$kPxP_ zW;Vq*`{SEsAKnYAJ8~x~TjNJJ=k7s65#Ugr8hRoGI2-|Wpw$0u)&l>-dn=O&2aX`D zhD-Ya)N$isC=_Tq@!e--C`cZ~)FwO|lMgVKf+&KCbmf8Flamq~f;XUG2*{zu!k(V6 zQ?ChBD>HF2g{fAxUz;TS1TrHa(3S#K78)p``?cw|0zw|Fh*U(Kr*F<}35d#}HXK0x zP#{Q1YD~T2R&*zwDi{p@?R@wxzV!|Q6UP*VLPbV$`&i3GlE4t4L(!?)d3R%Jt;u)# z$=tOnk~HLT!W384w|#{$pB?O#KZ{C@QDs&I>MOQPC$^riiTcX4kGQy|MwV1p6#(+a z11p+)z7?!FQ|KR@&oXl=vd_$#+5I4bqmZq_T4QtC*XKQ>zw6h<{1ZqJP=x04CQq5i zZv7n5HLY*`#)0`EF@WGZM~KrCeCMWsOyE5fFcBal2#-<7W6PzP?Fd2;fvd#aEaWbU zID}9k7*y3I;0kapS1fWWc`kQJ@RjTlr4s!mdRpLrmc1;7CFWRf?!_CS@5tzHpr@Lv zLL#o#@J9VHu9Bozq;n^2uKP{j(W)1KkT>WzS3&r$UC&MZe%S-rZPsmkUtl%Q*mi1)*wxvrzH`zCfzLx@6@wt$yi7YP@#_0+ExPny;nOM)fv=9ecYu8Fd% z=;7u`bP%2yUw>)dk1yArt*}a%&~BFB9|#S(xH>7+h##EIZbW*ve0;lwDfv;yQnzfz zz>RmMy1;BhII#CWHNiEX7%B)E7;bxnRQZI#-AOl zdR*)p=b=zsyEAZ5@Tw4;_Uo_SA$FuoNz%T1!A$99>D(_()@{+LXFXz;m*n?*>S~s9 zeCr;ky(JS`74)pTG2XP$LAPop17zxZL;fD1iZO9^H|GZPpXnG+5@nLdAMrZ! zAtPR>_9S^4PSZ$D_kC-KPjnfmaNs)|xB`yenviwUZ|0aqLLPpQePJ@~;aB)0GPb6@ zWIi}4&v5YpDpL;7K=x3xE_?-L{G0B5s7h!hgl!Y;!d~)uL{5Q-vP0eOdiIYZiNS4s zyT`ZGk+D|(NG2pirSQS2`_2%P){SqdNG{pyfQIAz1qG+)U;`m*%uMszlvUY^R;rHi zfV0=DQd1Y%*1^feQ>~V*_`AfxSt|Ymz}G6WkC`8MSld_I*$KaZi7_mHg-}y%}f#09;3@3J2el$p4f3{JEJNzm^e9mv_() z%G>PbNP8PAKK@AYNr4>Q`#hTAF`9>$teUasjsogtHBw%V-P4}4e}Z;L25yn9;_+P# z&lgSLw3n;B8qFjmgJ78Zvj#O0Prnw?(mo3Wj07<=nh#hd`->kg%AM$d2N|pk3O&dcbY=A z>Wzr()gHAn^%JZsNjJ4e&t>A*aB#khbVrl#R~mXwBiEj1u$;_h!-)-lzxsLEhf@m5 zHLk^Qsn%I+#}Y|@++4@Pv))_*M!O!;K<0Y#b3rEomXpH*$xfRuRn0$V=nWfRJ%wpY zJQui`k=#`q8`XU0T&rl-_x6-=xrprF$-K6KN3upA{L22^5{mAzz+7fd`Beeru&?JDK^?yrZcD7tin}_E>5se!(@2<}W@>uP5BC<%cs~;HQ=?r;p-}5G z$B3aP_77qCeKdD=$79Jv2E_VD*>5>=YWSLlze%y|lOY1h`hi|@5rmHX3FotPx-f`P zAG*Y^G0T}NZY8ii&|fjKxUf09vUYOdZJ9*=E}OIPr8x4y zNb0lL`n`i4NyW11O;=(2VHvvU_HKn9V3E{iOT&CYRp-`X{QbD-R=^ZO=m3j`SVJ(!$s19Y=iZw zlC%2}XV8t6Dx}L5HE1J$*Qbl0yydQQ0apKX>~SSk(a%8Iw5v?2SijFg!kQNQ8ypOr znA-srgNgU#(4kdVuDH%5k;{9(b8`A$-i;-?U5T9}cm2Ye#?x3X-f+N^w8+mKY3cH3 zisf@`zN@%M$xTS!_S^P;s`inu9*aY)Lp}a!;4#lrNVKA1iQXBBCrReK2VI}py>xr! zi}+(U^VIs*Mt_ zzB+qdUczQ1pkH7l8CA~7*Hobr${MPr)1qg8Mz-0+(a<`jipHM{Tknp+)Mwdyg2#qo zAL)%Hv!`D4)lihy^2mH-gp-K4tL+n9;^jY(47bj2A)+$mgRVA5-4c8%uZH^Ly<=~G zb@^4batsJ-3C(V|*n;!W?+m#=Fp^kZYF#s@484+{Q6biO+em#;)zU@v=nl_4`_5NF zs}l@lYpj?4(UJb3PRFm=nts0J?5U4MC8B!3Ve*_Y)}E7x(RYn4y(Nkx7Z?dOLpl-*bYtXh_K+# z`O_)b{;!k?2iq#FZw$p#v;XMSvF{_K0n8&k-ex(Y3*gJEehpK1(w3^%UH$FKHfk`( zJaV(|Q})rGrY3G%{0vOVJKz1J>wC5+8)}R!+>cD@ChFR*+}lI|s=)wzD-VS#rCQ^q z!}1_><2`Xh`+Oc3mjmKf?V(NXtu`)lCID-d$Qm+$iMH^2%%m%zp zR3FWX+m(h@clKeilDC9ZJfDC1taEmEzwBP?u_OLzi+ayMv$c9_ z;;BSugwR*2WvxsQ(_vAQ*Luf9*0)El(YCSigWgjn?a34pR7wneYHO+1Be@$42!;Z! zcRA5f?Nd3i=8nHDIr3d+wT{yWP4xj4=T{BebAx`waXKJxiLbD9RYRl#i30D{=8U6PvPs#(!3^q$?0ZGF`V}(z_Tpn&Fh6$m}Zi zXTGh3;;i4oT3#TtYau;xSu>>6vuzA<$~p{%Y(61gV`Lo7=zg21{;*F>^>#j(Lq#F- zO#)B;1Fnb1g0a~zxqpWL`sl@-a9`bj6KKeWC^jCH{4H4MxfcD3nu z^C)jPak=kgEQs0=4S1wPu*I2NY%zyUM>hJ!iBy78LxN%7qU>uQiz>;a4!pk=nWA;p zupyJdxhIl;8*47=e{8_XWYfYK2&P?E9pc9!l~!%_AR>~mPpF&8QUwj0Un(I<%?At~ zK^GU6>ual=fLbc23Tj;%(;rg`mnqqs!$iqU-{&6Xo#Xg9EgJQ{ww`Oi-dm5{WVbP? z=TN#?MYr}s^6yd3?@u)Xa#Rx=IuaMt1A#7bq*0z!f9UO`Wjpj6>DnauH}|47zJFL& zepw$w@sox4j<3>GWd41xMjqEkJ4FlupDX4$^Y z;ua)5>QWj8w}SPVqLqXS5aeGMv#Q%#KD_Yw^-{cXfqs9o^s&pfK@-nIq+(KbfyYe8 zZQt+bRj-Fwh4-CIUJKUQdIY@qRGpveJ7N(SRNSWMM>jmaQZ_aG&@UyC%$VV^ByHXW z+$B1oFG{Ee296n8h^qs(j=!E*!`u92*t7mvVfT&PeE)P&Qs(N;;IsiG7+A^tM0xHS zhu!y>W-k9>ov8fI;ElG}`wAa4C+)%_W3IZG{z0j%~rIb%F2E!&na8qUx;X`jeF9r6us(F+{DYzHUaeVrm#=V z;nebZFl{`-RY+13dNK0lGW@jCoy*LTEg}>Wb!C1!IW!vki$O}VImtZj@%EhW)fzfw zB-Cl1=ZUP!9hunXj-ADe`>DSkq{pTNu!;WO z&Jx)Y_gSp`YHzLIvyyW8&2X!#2iMTKdPq0Mp?rh`dBG`Nn(Qq#*zSGby@&4-A9rze zxXXrM^jIFQSHYhJR{?W=9RGL^Hq$1;;d)-&ySok=(<3%z;#R;`6nxH!!U*Wkw>B7( zD|=8a(&(-W;~y$;CsR?QJHob$o@E4x>c;W%eB<+mI>-J6FzsYS<|syNL;_0g#f)E? zJh;$EYUr99Nky8?(nSP_L>#S4AE`2&dlcKMmDC)HmRH~A>|!)Fc=G*_ZK`lH92j|b zKprE^)uH?Lt)YeZDY`*+lFO|epc5}SnGkWBM^@2(5bI&Yu;D%_;t(-y^0tCU{aNHz z^sk?<>=k%Y!$bF)4=L`HeG!Sp)c9#%&WTKYz9QPtuIsBX@qaw>&$i&zU8G(>IMy)Kz*WfNnY zfZs1mzx9sG>vIz0$C3cycQM2Dc}qCr(m!`HgbIwcsdh4rW%LuZ?W^WagSiwdS*OS% zzT2NWC6|18HC9ezy_-^0p5DB^@~Z1}0gc|i&+poBae238s^RHawc!-iph(!PdYQsW zFfetBH!bv`$#oJ1RIwBio)mlQz>HN@(2dgT!tcq$xD4e%`U_XD&&k90q||(yT?0%J zEOAWLF?*LLuQoZ-1m~Sj9FIRmkJu!5wh5;icbg^yE08}P(9p2nJP)wP>@xL_QJ!Q9 z``s+x`O1>>$Otv3mg;aX=PEvLJB%yrjD=4kLq{sNWo=nv97i)QM}`PpzQlaD)wB%6I|M8ygE!(8#VOOarpA2KsQw7s5c*2#1Y ztTj&7vflfHRtLbcX-zV^L5i*S5^|OpQJRc?{47mtrkrOSgnp+nbXO{3aD}K~lv+zn zQ^h{jC0#<&fAd92^=Ducb-5SeBov$?Dm*2l*vk7I^*qg^-$87X&wQ-1uGMy+l9S%q z*HiP1ezx-cT&4#i++wE1Hw~mvL4lX|7sD)0#-}wDgC4 zf)Xkng1DmQ)w<&EDPNhr-_XAZ4V!E9%TtrhZlV79hLckJZ2jRZFIT!z4v(RqvE8ME z-qTXYF-Q9=>Ut&7CPimBq`IrY%gw-&?xwHb&j<=8f4&-%0`CcVwy=V&viaKgayPb# z98(*=KVu`}x3YAd*s~5feq&wL%JoaTGfLykS?jbx{{<7W`a(G!y$|-D zX7%f%yI@^sPRSWk!1+?T>)$0YWANP5re(YLtdrxuu-5lUVNY90K%jeCxgF0NgA%uBxh^g*Or9&v( z)`W2z=R_EOu<;EQ3H96vgY)#Esr)Fpv!qnV@wvo8qk~p+`_UVkCT;Cl#%yZ*;oysb9(OZe%0AZaW)hNU`eiFMI6>k;vkgdaxWm!CEmac>?mUXlzo+8>j z;si)rIIhs$WVlk-_>Nn?{OtGR7h*_rc;kF`(vwp`%sT5Lt;2&u{~p<+be)=*34Dw#?YAmA!ejG%SpKe>7^?0$S5-@CTwuROgrmjXQ7QCX~^%fhoO z7FET6J?gd*5Zhi$p7k)YpwWfxY_C?GBA>%CrSwfMFU~KegCkd-M#vQ@A87hjSX335 zRz>{aMc+1wr+C1$`{(PFpOoV>cSl6lJDpCN;fn!XgoS#NC{9XWSu`P1S>rZ^KU-@|opSl{uPzlc|rMEW3P*-YC9meTOPQzZML7YU4XLR*(%pHlL?!Z}#+ zCnL`$4ToGqd6T&)+*$F{?#rgOl%SXVWlbk8TN;134YM{BCZhV}q!YnicWW`eTZCDK+l+vE=>>0)+GBN+K)Kk!HTiS&u9 z)?J{l9nM9lT<}9j9$fJQdwuuRIE7Ju^h z8yLTaatW^0G7c#5Yqj|mU&X|?Du?$R*j_jfrcp=^b^8lol^kSy615k_4Xg60-*3ul STCtY2X^u+f|2v-iFZ>_tQ7Oa# literal 0 HcmV?d00001 diff --git a/androidHyperskillApp/src/main/res/drawable-xhdpi/img_interview_preparation_finished.webp b/androidHyperskillApp/src/main/res/drawable-xhdpi/img_interview_preparation_finished.webp new file mode 100644 index 0000000000000000000000000000000000000000..47452868f55c39bd1aa47d5a69012d1d727528b0 GIT binary patch literal 32118 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 z�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%0A3eA;dkMpz>m851 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 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/androidHyperskillApp/src/main/res/mipmap-hdpi/img_interview_preparation_finished.webp b/androidHyperskillApp/src/main/res/mipmap-hdpi/img_interview_preparation_finished.webp new file mode 100644 index 0000000000000000000000000000000000000000..2560c8a0181f84d45c307021cec27b71f022800d GIT binary patch literal 58986 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�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 U3Pg?o000BNZ-4**0000007V?0lmGw# literal 0 HcmV?d00001 diff --git a/androidHyperskillApp/src/main/res/values/dimens.xml b/androidHyperskillApp/src/main/res/values/dimens.xml index ae92bf9c6c..892b40e6ba 100644 --- a/androidHyperskillApp/src/main/res/values/dimens.xml +++ b/androidHyperskillApp/src/main/res/values/dimens.xml @@ -146,5 +146,6 @@ 16dp 28dp + 28dp \ No newline at end of file diff --git a/shared/src/androidMain/kotlin/org/hyperskill/app/step/presentation/StepViewModel.kt b/shared/src/androidMain/kotlin/org/hyperskill/app/step/presentation/StepViewModel.kt index b6cf2d02c1..eb21de822b 100644 --- a/shared/src/androidMain/kotlin/org/hyperskill/app/step/presentation/StepViewModel.kt +++ b/shared/src/androidMain/kotlin/org/hyperskill/app/step/presentation/StepViewModel.kt @@ -42,4 +42,28 @@ class StepViewModel( ) ) } + + fun onInterviewPreparationFinishedDialogShown() { + onNewMessage( + StepFeature.Message.StepCompletionMessage( + StepCompletionFeature.Message.InterviewPreparationCompletedModalShownEventMessage + ) + ) + } + + fun onInterviewPreparationFinishedDialogHidden() { + onNewMessage( + StepFeature.Message.StepCompletionMessage( + StepCompletionFeature.Message.InterviewPreparationCompletedModalHiddenEventMessage + ) + ) + } + + fun onInterviewPreparationFinishedDialogGoTrainingClicked() { + onNewMessage( + StepFeature.Message.StepCompletionMessage( + StepCompletionFeature.Message.InterviewPreparationCompletedModalGoToTrainingClicked + ) + ) + } } \ No newline at end of file diff --git a/shared/src/commonMain/resources/MR/base/strings.xml b/shared/src/commonMain/resources/MR/base/strings.xml index a00ec3369d..598b4df996 100644 --- a/shared/src/commonMain/resources/MR/base/strings.xml +++ b/shared/src/commonMain/resources/MR/base/strings.xml @@ -525,6 +525,16 @@ Oops! We were unable to load the challenge. Reload + + Interview preparation + Oops! We were unable to load the interview widget + + + Good job! + Looks like you\'re ready for a real interview. The + next problems will appear soon! + + Search Find topic @@ -567,9 +577,4 @@ Wow! You\'ve reached level %d You\'ve earned the %s badge by reaching level %d! Amazing job! - - - Interview preparation - Oops! We were unable to load the interview widget - \ No newline at end of file From 3cd3d4e6c892ee1587c3d41755e54b02b21280a9 Mon Sep 17 00:00:00 2001 From: Aleksandr Zhukov Date: Wed, 3 Jan 2024 13:54:05 +0400 Subject: [PATCH 3/8] Shared: Interview preparation onboarding (#821) ^ALTAPPS-1092 --- .../home/view/ui/fragment/HomeFragment.kt | 2 + .../hyperskill/HyperskillAnalyticRoute.kt | 5 +++ .../hyperskill/HyperskillAnalyticTarget.kt | 1 + .../hyperskill/app/core/injection/AppGraph.kt | 2 + .../app/core/injection/BaseAppGraph.kt | 5 +++ ...InterviewPreparationWidgetComponentImpl.kt | 1 + ...erviewPreparationWidgetActionDispatcher.kt | 7 ++- .../InterviewPreparationWidgetFeature.kt | 6 ++- .../InterviewPreparationWidgetReducer.kt | 14 +++--- ...oardingGoToProblemClickedAnalyticsEvent.kt | 29 +++++++++++++ ...eparationOnboardingViewedAnalyticsEvent.kt | 23 ++++++++++ ...InterviewPreparationOnboardingComponent.kt | 11 +++++ ...rviewPreparationOnboardingComponentImpl.kt | 21 +++++++++ ...viewPreparationOnboardingFeatureBuilder.kt | 43 +++++++++++++++++++ ...ewPreparationOnboardingActionDispatcher.kt | 26 +++++++++++ .../InterviewPreparationOnboardingFeature.kt | 33 ++++++++++++++ .../InterviewPreparationOnboardingReducer.kt | 34 +++++++++++++++ .../cache/OnboardingCacheDataSourceImpl.kt | 7 +++ .../cache/OnboardingCacheKeyValues.kt | 2 + .../repository/OnboardingRepositoryImpl.kt | 7 +++ .../data/source/OnboardingCacheDataSource.kt | 3 ++ .../domain/interactor/OnboardingInteractor.kt | 7 +++ .../domain/repository/OnboardingRepository.kt | 3 ++ 23 files changed, 285 insertions(+), 7 deletions(-) create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/domain/analytic/InterviewPreparationOnboardingGoToProblemClickedAnalyticsEvent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/domain/analytic/InterviewPreparationOnboardingViewedAnalyticsEvent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingComponent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingComponentImpl.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingFeatureBuilder.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingActionDispatcher.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingFeature.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingReducer.kt diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt index fe94a6fa4f..0482e42a08 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt @@ -207,6 +207,8 @@ class HomeFragment : navigateToStepScreen(viewAction.stepRoute) is InterviewPreparationWidgetFeature.Action.ViewAction.ShowOpenStepError -> viewBinding.root.snackbar(viewAction.errorMessage) + is InterviewPreparationWidgetFeature.Action.ViewAction.NavigateTo.InterviewPreparationOnboarding -> + TODO("Not implemented") } } } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticRoute.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticRoute.kt index 05c1bef264..e57fba4923 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticRoute.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticRoute.kt @@ -15,6 +15,11 @@ sealed class HyperskillAnalyticRoute { override val path: String get() = "${super.path}/first-problem" } + + object InterviewPreparation : Onboarding() { + override val path: String + get() = "${super.path}/interview-preparation" + } } open class Login : HyperskillAnalyticRoute() { diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt index 81ec8f1199..c8bc613d8c 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt @@ -109,5 +109,6 @@ enum class HyperskillAnalyticTarget(val targetName: String) { TOPIC("topic"), DAILY_STUDY_REMINDERS_HOUR_INTERVAL_PICKER_MODAL("daily_study_reminders_hour_interval_picker_modal"), CONFIRM("confirm"), + GO_TO_FIRST_PROBLEM("go_to_first_problem"), INTERVIEW_PREPARATION_COMPLETED_MODAL("interview_preparation_completed_modal") } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/AppGraph.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/AppGraph.kt index 611d26f714..4e10af041d 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/AppGraph.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/AppGraph.kt @@ -18,6 +18,7 @@ import org.hyperskill.app.gamification_toolbar.domain.model.GamificationToolbarS import org.hyperskill.app.gamification_toolbar.injection.GamificationToolbarComponent import org.hyperskill.app.home.injection.HomeComponent import org.hyperskill.app.interview_preparation.injection.InterviewPreparationWidgetComponent +import org.hyperskill.app.interview_preparation_onboarding.injection.InterviewPreparationOnboardingComponent import org.hyperskill.app.items.injection.ItemsDataComponent import org.hyperskill.app.leaderboard.injection.LeaderboardDataComponent import org.hyperskill.app.leaderboard.screen.injection.LeaderboardScreenComponent @@ -173,4 +174,5 @@ interface AppGraph { fun buildSearchComponent(): SearchComponent fun buildWelcomeOnboardingComponent(): WelcomeOnboardingComponent fun buildInterviewPreparationWidgetComponent(): InterviewPreparationWidgetComponent + fun buildInterviewPreparationOnboardingComponent(): InterviewPreparationOnboardingComponent } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/BaseAppGraph.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/BaseAppGraph.kt index 3adb7c84d8..905bed3667 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/BaseAppGraph.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/BaseAppGraph.kt @@ -33,6 +33,8 @@ import org.hyperskill.app.home.injection.HomeComponent import org.hyperskill.app.home.injection.HomeComponentImpl import org.hyperskill.app.interview_preparation.injection.InterviewPreparationWidgetComponent import org.hyperskill.app.interview_preparation.injection.InterviewPreparationWidgetComponentImpl +import org.hyperskill.app.interview_preparation_onboarding.injection.InterviewPreparationOnboardingComponent +import org.hyperskill.app.interview_preparation_onboarding.injection.InterviewPreparationOnboardingComponentImpl import org.hyperskill.app.items.injection.ItemsDataComponent import org.hyperskill.app.items.injection.ItemsDataComponentImpl import org.hyperskill.app.leaderboard.injection.LeaderboardDataComponent @@ -469,4 +471,7 @@ abstract class BaseAppGraph : AppGraph { override fun buildInterviewPreparationWidgetComponent(): InterviewPreparationWidgetComponent = InterviewPreparationWidgetComponentImpl(this) + + override fun buildInterviewPreparationOnboardingComponent(): InterviewPreparationOnboardingComponent = + InterviewPreparationOnboardingComponentImpl(this) } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponentImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponentImpl.kt index 5592d290f0..28336e28d9 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponentImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/injection/InterviewPreparationWidgetComponentImpl.kt @@ -18,6 +18,7 @@ internal class InterviewPreparationWidgetComponentImpl( analyticInteractor = appGraph.analyticComponent.analyticInteractor, interviewStepsStateRepository = appGraph.stateRepositoriesComponent.interviewStepsStateRepository, sentryInteractor = appGraph.sentryComponent.sentryInteractor, + onboardingInteractor = appGraph.buildOnboardingDataComponent().onboardingInteractor, resourceProvider = appGraph.commonComponent.resourceProvider ) diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetActionDispatcher.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetActionDispatcher.kt index 1e5618a622..d504743599 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetActionDispatcher.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetActionDispatcher.kt @@ -12,6 +12,7 @@ import org.hyperskill.app.interview_preparation.presentation.InterviewPreparatio import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.InternalMessage import org.hyperskill.app.interview_preparation.presentation.InterviewPreparationWidgetFeature.Message import org.hyperskill.app.interview_steps.domain.repository.InterviewStepsStateRepository +import org.hyperskill.app.onboarding.domain.interactor.OnboardingInteractor import org.hyperskill.app.sentry.domain.interactor.SentryInteractor import org.hyperskill.app.sentry.domain.model.transaction.HyperskillSentryTransactionBuilder import org.hyperskill.app.sentry.domain.withTransaction @@ -22,6 +23,7 @@ class InterviewPreparationWidgetActionDispatcher( private val analyticInteractor: AnalyticInteractor, private val interviewStepsStateRepository: InterviewStepsStateRepository, private val sentryInteractor: SentryInteractor, + private val onboardingInteractor: OnboardingInteractor, private val resourceProvider: ResourceProvider ) : CoroutineActionDispatcher(config.createConfig()) { @@ -78,7 +80,10 @@ class InterviewPreparationWidgetActionDispatcher( } if (nextInterviewStepId != null) { - InternalMessage.FetchNextInterviewStepResultSuccess(nextInterviewStepId) + InternalMessage.FetchNextInterviewStepResultSuccess( + stepId = nextInterviewStepId, + wasOnboardingShown = onboardingInteractor.wasInterviewPreparationOnboardingShown() + ) } else { getErrorMessage() } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetFeature.kt index bbf3187363..d5cc11067b 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetFeature.kt @@ -42,7 +42,10 @@ object InterviewPreparationWidgetFeature { /** * The success result for [InternalAction.FetchNextInterviewStep] */ - data class FetchNextInterviewStepResultSuccess(val stepId: Long) : InternalMessage + data class FetchNextInterviewStepResultSuccess( + val stepId: Long, + val wasOnboardingShown: Boolean + ) : InternalMessage /** * The error result for [InternalAction.FetchNextInterviewStep] */ @@ -54,6 +57,7 @@ object InterviewPreparationWidgetFeature { data class ShowOpenStepError(val errorMessage: String) : ViewAction sealed interface NavigateTo : ViewAction { + data class InterviewPreparationOnboarding(val stepRoute: StepRoute) : NavigateTo data class Step(val stepRoute: StepRoute) : NavigateTo } } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetReducer.kt index bff12fab6e..9418d3bac6 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation/presentation/InterviewPreparationWidgetReducer.kt @@ -114,12 +114,16 @@ class InterviewPreparationWidgetReducer : StateReducer { private fun handleFetchNextInterviewStepResultSuccessMessage( state: State, message: InternalMessage.FetchNextInterviewStepResultSuccess - ) = - state to setOf( - Action.ViewAction.NavigateTo.Step( - StepRoute.InterviewPreparation(message.stepId) - ) + ): InterviewPreparationWidgetReducerResult { + val stepRoute = StepRoute.InterviewPreparation(message.stepId) + return state to setOf( + if (!message.wasOnboardingShown) { + Action.ViewAction.NavigateTo.InterviewPreparationOnboarding(stepRoute) + } else { + Action.ViewAction.NavigateTo.Step(stepRoute) + } ) + } private fun handleWidgetViewedMessage( state: State diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/domain/analytic/InterviewPreparationOnboardingGoToProblemClickedAnalyticsEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/domain/analytic/InterviewPreparationOnboardingGoToProblemClickedAnalyticsEvent.kt new file mode 100644 index 0000000000..390e77b03b --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/domain/analytic/InterviewPreparationOnboardingGoToProblemClickedAnalyticsEvent.kt @@ -0,0 +1,29 @@ +package org.hyperskill.app.interview_preparation_onboarding.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticPart +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticTarget + +/** + * Represents click on the "Go to first problem" button analytic event. + * + * JSON payload: + * ``` + * { + * "route": "/onboarding/interview-preparation", + * "action": "click", + * "part": "main", + * "target": "go_to_first_problem" + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +object InterviewPreparationOnboardingGoToProblemClickedAnalyticsEvent : HyperskillAnalyticEvent( + route = HyperskillAnalyticRoute.Onboarding.InterviewPreparation, + action = HyperskillAnalyticAction.CLICK, + part = HyperskillAnalyticPart.MAIN, + target = HyperskillAnalyticTarget.GO_TO_FIRST_PROBLEM +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/domain/analytic/InterviewPreparationOnboardingViewedAnalyticsEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/domain/analytic/InterviewPreparationOnboardingViewedAnalyticsEvent.kt new file mode 100644 index 0000000000..0d83dcf26a --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/domain/analytic/InterviewPreparationOnboardingViewedAnalyticsEvent.kt @@ -0,0 +1,23 @@ +package org.hyperskill.app.interview_preparation_onboarding.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute + +/** + * Represents a view analytic event. + * + * JSON payload: + * ``` + * { + * "route": "/onboarding/interview-preparation", + * "action": "view" + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +object InterviewPreparationOnboardingViewedAnalyticsEvent : HyperskillAnalyticEvent( + HyperskillAnalyticRoute.Onboarding.InterviewPreparation, + HyperskillAnalyticAction.VIEW +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingComponent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingComponent.kt new file mode 100644 index 0000000000..e9e3d87e4b --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingComponent.kt @@ -0,0 +1,11 @@ +package org.hyperskill.app.interview_preparation_onboarding.injection + +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Action +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Message +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.State +import org.hyperskill.app.step.domain.model.StepRoute +import ru.nobird.app.presentation.redux.feature.Feature + +interface InterviewPreparationOnboardingComponent { + fun interviewPreparationOnboardingFeature(stepRoute: StepRoute): Feature +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingComponentImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingComponentImpl.kt new file mode 100644 index 0000000000..7cf84ee46d --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingComponentImpl.kt @@ -0,0 +1,21 @@ +package org.hyperskill.app.interview_preparation_onboarding.injection + +import org.hyperskill.app.core.injection.AppGraph +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Action +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Message +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.State +import org.hyperskill.app.step.domain.model.StepRoute +import ru.nobird.app.presentation.redux.feature.Feature + +internal class InterviewPreparationOnboardingComponentImpl( + private val appGraph: AppGraph +) : InterviewPreparationOnboardingComponent { + override fun interviewPreparationOnboardingFeature(stepRoute: StepRoute): Feature = + InterviewPreparationOnboardingFeatureBuilder.build( + stepRoute = stepRoute, + analyticsInteractor = appGraph.analyticComponent.analyticInteractor, + onboardingInteractor = appGraph.buildOnboardingDataComponent().onboardingInteractor, + logger = appGraph.loggerComponent.logger, + buildVariant = appGraph.commonComponent.buildKonfig.buildVariant + ) +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingFeatureBuilder.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingFeatureBuilder.kt new file mode 100644 index 0000000000..e8ef471250 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/InterviewPreparationOnboardingFeatureBuilder.kt @@ -0,0 +1,43 @@ +package org.hyperskill.app.interview_preparation_onboarding.injection + +import co.touchlab.kermit.Logger +import org.hyperskill.app.analytic.domain.interactor.AnalyticInteractor +import org.hyperskill.app.core.domain.BuildVariant +import org.hyperskill.app.core.presentation.ActionDispatcherOptions +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingActionDispatcher +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Action +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Message +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingReducer +import org.hyperskill.app.logging.presentation.wrapWithLogger +import org.hyperskill.app.onboarding.domain.interactor.OnboardingInteractor +import org.hyperskill.app.step.domain.model.StepRoute +import ru.nobird.app.presentation.redux.dispatcher.wrapWithActionDispatcher +import ru.nobird.app.presentation.redux.feature.Feature +import ru.nobird.app.presentation.redux.feature.ReduxFeature + +internal object InterviewPreparationOnboardingFeatureBuilder { + private const val LOG_TAG = "InterviewPreparationOnboardingFeature" + + fun build( + stepRoute: StepRoute, + analyticsInteractor: AnalyticInteractor, + onboardingInteractor: OnboardingInteractor, + logger: Logger, + buildVariant: BuildVariant + ): Feature { + val reducer = + InterviewPreparationOnboardingReducer() + .wrapWithLogger(buildVariant, logger, LOG_TAG) + val actionDispatcher = + InterviewPreparationOnboardingActionDispatcher( + config = ActionDispatcherOptions(), + analyticInteractor = analyticsInteractor, + onboardingInteractor = onboardingInteractor + ) + return ReduxFeature( + InterviewPreparationOnboardingFeature.initialState(stepRoute), + reducer + ).wrapWithActionDispatcher(actionDispatcher) + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingActionDispatcher.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingActionDispatcher.kt new file mode 100644 index 0000000000..6f35363064 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingActionDispatcher.kt @@ -0,0 +1,26 @@ +package org.hyperskill.app.interview_preparation_onboarding.presentation + +import org.hyperskill.app.analytic.domain.interactor.AnalyticInteractor +import org.hyperskill.app.core.presentation.ActionDispatcherOptions +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Action +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Message +import org.hyperskill.app.onboarding.domain.interactor.OnboardingInteractor +import ru.nobird.app.presentation.redux.dispatcher.CoroutineActionDispatcher + +internal class InterviewPreparationOnboardingActionDispatcher( + config: ActionDispatcherOptions, + private val analyticInteractor: AnalyticInteractor, + private val onboardingInteractor: OnboardingInteractor +) : CoroutineActionDispatcher(config.createConfig()) { + override suspend fun doSuspendableAction(action: Action) { + when (action) { + is InterviewPreparationOnboardingFeature.InternalAction.LogAnalyticEvent -> + analyticInteractor.logEvent(action.analyticEvent) + InterviewPreparationOnboardingFeature.InternalAction.MarkOnboardingAsViewed -> + onboardingInteractor.setInterviewPreparationOnboardingWasShown(true) + else -> { + // no op + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingFeature.kt new file mode 100644 index 0000000000..f28afb2e8c --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingFeature.kt @@ -0,0 +1,33 @@ +package org.hyperskill.app.interview_preparation_onboarding.presentation + +import org.hyperskill.app.analytic.domain.model.AnalyticEvent +import org.hyperskill.app.step.domain.model.StepRoute + +object InterviewPreparationOnboardingFeature { + data class State(val stepRoute: StepRoute) + + fun initialState(stepRoute: StepRoute): State = + State(stepRoute) + + sealed interface Message { + object ViewedEventMessage : Message + + object GoToFirstProblemClicked : Message + } + + internal sealed interface InternalMessage : Message + + sealed interface Action { + sealed interface ViewAction : Action { + sealed interface NavigateTo : ViewAction { + data class StepScreen(val stepRoute: StepRoute) : NavigateTo + } + } + } + + internal sealed interface InternalAction : Action { + data class LogAnalyticEvent(val analyticEvent: AnalyticEvent) : InternalAction + + object MarkOnboardingAsViewed : InternalAction + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingReducer.kt new file mode 100644 index 0000000000..5ac4361708 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingReducer.kt @@ -0,0 +1,34 @@ +package org.hyperskill.app.interview_preparation_onboarding.presentation + +import org.hyperskill.app.interview_preparation_onboarding.domain.analytic.InterviewPreparationOnboardingGoToProblemClickedAnalyticsEvent +import org.hyperskill.app.interview_preparation_onboarding.domain.analytic.InterviewPreparationOnboardingViewedAnalyticsEvent +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Action +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.InternalAction +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Message +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.State +import ru.nobird.app.presentation.redux.reducer.StateReducer + +private typealias InterviewPreparationOnboardingReducerResult = Pair> + +internal class InterviewPreparationOnboardingReducer : StateReducer { + override fun reduce( + state: State, + message: Message + ): InterviewPreparationOnboardingReducerResult = + when (message) { + Message.ViewedEventMessage -> + state to setOf( + InternalAction.LogAnalyticEvent( + InterviewPreparationOnboardingViewedAnalyticsEvent + ), + InternalAction.MarkOnboardingAsViewed + ) + Message.GoToFirstProblemClicked -> + state to setOf( + InternalAction.LogAnalyticEvent( + InterviewPreparationOnboardingGoToProblemClickedAnalyticsEvent + ), + Action.ViewAction.NavigateTo.StepScreen(state.stepRoute) + ) + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/cache/OnboardingCacheDataSourceImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/cache/OnboardingCacheDataSourceImpl.kt index a81cc4ad16..903fbd6226 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/cache/OnboardingCacheDataSourceImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/cache/OnboardingCacheDataSourceImpl.kt @@ -40,4 +40,11 @@ internal class OnboardingCacheDataSourceImpl( override fun setFirstProblemOnboardingWasShown(wasShown: Boolean) { settings.putBoolean(OnboardingCacheKeyValues.IS_FIRST_PROBLEM_ONBOARDING_SHOWN, wasShown) } + + override fun setInterviewPreparationOnboardingWasShown(wasShown: Boolean) { + settings.putBoolean(OnboardingCacheKeyValues.IS_INTERVIEW_PREPARATION_ONBOARDING_SHOWN, wasShown) + } + + override fun wasInterviewPreparationOnboardingShown(): Boolean = + settings.getBoolean(OnboardingCacheKeyValues.IS_INTERVIEW_PREPARATION_ONBOARDING_SHOWN, defaultValue = false) } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/cache/OnboardingCacheKeyValues.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/cache/OnboardingCacheKeyValues.kt index cbc01553f1..10c8570bc0 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/cache/OnboardingCacheKeyValues.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/cache/OnboardingCacheKeyValues.kt @@ -7,4 +7,6 @@ internal object OnboardingCacheKeyValues { const val IS_NOTIFICATIONS_ONBOARDING_SHOWN = "is_notifications_onboarding_shown" const val IS_FIRST_PROBLEM_ONBOARDING_SHOWN = "is_first_problem_onboarding_shown" + + const val IS_INTERVIEW_PREPARATION_ONBOARDING_SHOWN = "is_interview_preparation_onboarding_shown" } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/data/repository/OnboardingRepositoryImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/data/repository/OnboardingRepositoryImpl.kt index 30b819a45b..4d1776d1a4 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/data/repository/OnboardingRepositoryImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/data/repository/OnboardingRepositoryImpl.kt @@ -41,4 +41,11 @@ internal class OnboardingRepositoryImpl( override fun setFirstProblemOnboardingWasShown(wasShown: Boolean) { onboardingCacheDataSource.setFirstProblemOnboardingWasShown(wasShown) } + + override fun setInterviewPreparationOnboardingWasShown(wasShown: Boolean) { + onboardingCacheDataSource.setInterviewPreparationOnboardingWasShown(wasShown) + } + + override fun wasInterviewPreparationOnboardingShown(): Boolean = + onboardingCacheDataSource.wasInterviewPreparationOnboardingShown() } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/data/source/OnboardingCacheDataSource.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/data/source/OnboardingCacheDataSource.kt index c8234c7a20..2372068d66 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/data/source/OnboardingCacheDataSource.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/data/source/OnboardingCacheDataSource.kt @@ -14,4 +14,7 @@ interface OnboardingCacheDataSource { fun wasFirstProblemOnboardingShown(): Boolean fun setFirstProblemOnboardingWasShown(wasShown: Boolean) + + fun setInterviewPreparationOnboardingWasShown(wasShown: Boolean) + fun wasInterviewPreparationOnboardingShown(): Boolean } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/domain/interactor/OnboardingInteractor.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/domain/interactor/OnboardingInteractor.kt index 05974c5dc7..05c1e43be9 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/domain/interactor/OnboardingInteractor.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/domain/interactor/OnboardingInteractor.kt @@ -35,4 +35,11 @@ class OnboardingInteractor( fun setFirstProblemOnboardingWasShown(wasShown: Boolean) { onboardingRepository.setFirstProblemOnboardingWasShown(wasShown) } + + fun setInterviewPreparationOnboardingWasShown(wasShown: Boolean) { + onboardingRepository.setInterviewPreparationOnboardingWasShown(wasShown) + } + + fun wasInterviewPreparationOnboardingShown(): Boolean = + onboardingRepository.wasInterviewPreparationOnboardingShown() } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/domain/repository/OnboardingRepository.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/domain/repository/OnboardingRepository.kt index 58f47331e9..ded53ca078 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/domain/repository/OnboardingRepository.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/onboarding/domain/repository/OnboardingRepository.kt @@ -16,6 +16,9 @@ interface OnboardingRepository { fun wasFirstProblemOnboardingShown(): Boolean fun setFirstProblemOnboardingWasShown(wasShown: Boolean) + + fun setInterviewPreparationOnboardingWasShown(wasShown: Boolean) + fun wasInterviewPreparationOnboardingShown(): Boolean } fun OnboardingRepository.getProblemsOnboardingFlags(): ProblemsOnboardingFlags = From 3c1e539310183e687b1c44d5872ea2e1001ba54a Mon Sep 17 00:00:00 2001 From: Aleksandr Zhukov Date: Wed, 3 Jan 2024 14:00:33 +0400 Subject: [PATCH 4/8] Android: Interview preparation onboarding (#822) ^ALTAPPS-1094 --- .../home/view/ui/fragment/HomeFragment.kt | 3 +- .../InterviewPreparationOnboardingFragment.kt | 76 ++++++++++++++ .../InterviewPreparationOnboardingScreen.kt | 14 +++ .../InterviewPreparationOnboadrdingContent.kt | 96 ++++++++++++++++++ .../InterviewPreparationOnboardingScreen.kt | 48 +++++++++ .../img_interview_preparation_onboarding.webp | Bin 0 -> 22184 bytes .../img_interview_preparation_onboarding.webp | Bin 0 -> 10210 bytes .../img_interview_preparation_onboarding.webp | Bin 0 -> 35086 bytes .../img_interview_preparation_onboarding.webp | Bin 0 -> 70250 bytes .../img_interview_preparation_onboarding.webp | Bin 0 -> 114114 bytes .../core/injection/CommonAndroidAppGraph.kt | 6 ++ .../injection/CommonAndroidAppGraphImpl.kt | 11 ++ ...InterviewPreparationOnboardingComponent.kt | 7 ++ ...rviewPreparationOnboardingComponentImpl.kt | 24 +++++ ...InterviewPreparationOnboardingViewModel.kt | 11 ++ .../commonMain/resources/MR/base/strings.xml | 11 +- 16 files changed, 304 insertions(+), 3 deletions(-) create mode 100644 androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/fragement/InterviewPreparationOnboardingFragment.kt create mode 100644 androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/screen/InterviewPreparationOnboardingScreen.kt create mode 100644 androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/ui/InterviewPreparationOnboadrdingContent.kt create mode 100644 androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/ui/InterviewPreparationOnboardingScreen.kt create mode 100644 androidHyperskillApp/src/main/res/drawable-hdpi/img_interview_preparation_onboarding.webp create mode 100644 androidHyperskillApp/src/main/res/drawable-mdpi/img_interview_preparation_onboarding.webp create mode 100644 androidHyperskillApp/src/main/res/drawable-xhdpi/img_interview_preparation_onboarding.webp create mode 100644 androidHyperskillApp/src/main/res/drawable-xxhdpi/img_interview_preparation_onboarding.webp create mode 100644 androidHyperskillApp/src/main/res/drawable-xxxhdpi/img_interview_preparation_onboarding.webp create mode 100644 shared/src/androidMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/PlatformInterviewPreparationOnboardingComponent.kt create mode 100644 shared/src/androidMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/injection/PlatformInterviewPreparationOnboardingComponentImpl.kt create mode 100644 shared/src/androidMain/kotlin/org/hyperskill/app/interview_preparation_onboarding/presentation/InterviewPreparationOnboardingViewModel.kt diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt index 0482e42a08..7c2813bea1 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt @@ -19,6 +19,7 @@ import org.hyperskill.app.android.core.view.ui.setHyperskillColors import org.hyperskill.app.android.core.view.ui.updateIsRefreshing import org.hyperskill.app.android.databinding.FragmentHomeBinding import org.hyperskill.app.android.gamification_toolbar.view.ui.delegate.GamificationToolbarDelegate +import org.hyperskill.app.android.interview_preparation_onboarding.screen.InterviewPreparationOnboardingScreen import org.hyperskill.app.android.interview_preparation.delegate.InterviewPreparationCardDelegate import org.hyperskill.app.android.main.view.ui.navigation.MainScreenRouter import org.hyperskill.app.android.problem_of_day.view.delegate.ProblemOfDayCardFormDelegate @@ -208,7 +209,7 @@ class HomeFragment : is InterviewPreparationWidgetFeature.Action.ViewAction.ShowOpenStepError -> viewBinding.root.snackbar(viewAction.errorMessage) is InterviewPreparationWidgetFeature.Action.ViewAction.NavigateTo.InterviewPreparationOnboarding -> - TODO("Not implemented") + requireRouter().navigateTo(InterviewPreparationOnboardingScreen(viewAction.stepRoute)) } } } diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/fragement/InterviewPreparationOnboardingFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/fragement/InterviewPreparationOnboardingFragment.kt new file mode 100644 index 0000000000..9dc39ba76c --- /dev/null +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/fragement/InterviewPreparationOnboardingFragment.kt @@ -0,0 +1,76 @@ +package org.hyperskill.app.android.interview_preparation_onboarding.fragement + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.platform.ViewCompositionStrategy +import androidx.fragment.app.Fragment +import androidx.fragment.app.viewModels +import androidx.lifecycle.ViewModelProvider +import org.hyperskill.app.android.HyperskillApp +import org.hyperskill.app.android.core.extensions.argument +import org.hyperskill.app.android.core.view.ui.navigation.requireRouter +import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme +import org.hyperskill.app.android.interview_preparation_onboarding.ui.InterviewPreparationOnboardingScreen +import org.hyperskill.app.android.step.view.screen.StepScreen +import org.hyperskill.app.core.view.handleActions +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature.Action +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingViewModel +import org.hyperskill.app.step.domain.model.StepRoute + +class InterviewPreparationOnboardingFragment : Fragment() { + companion object { + fun newInstance(stepRoute: StepRoute): InterviewPreparationOnboardingFragment = + InterviewPreparationOnboardingFragment().apply { + this.stepRoute = stepRoute + } + } + + private var stepRoute: StepRoute by argument(StepRoute.serializer()) + + private var viewModelFactory: ViewModelProvider.Factory? = null + private val interviewPreparationOnboardingViewModel: InterviewPreparationOnboardingViewModel by viewModels { + requireNotNull(viewModelFactory) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + injectComponent() + interviewPreparationOnboardingViewModel.handleActions( + this, + onAction = ::onAction + ) + } + + private fun injectComponent() { + val platformInterviewPreparationOnboardingComponent = + HyperskillApp.graph().buildPlatformInterviewPreparationOnboardingComponent(stepRoute) + viewModelFactory = platformInterviewPreparationOnboardingComponent.reduxViewModelFactory + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View = + ComposeView(requireContext()).apply { + setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnLifecycleDestroyed(viewLifecycleOwner)) + setContent { + HyperskillTheme { + InterviewPreparationOnboardingScreen( + viewModel = interviewPreparationOnboardingViewModel, + onBackClick = { requireRouter().exit() } + ) + } + } + } + + private fun onAction(action: Action.ViewAction) { + when (action) { + is Action.ViewAction.NavigateTo.StepScreen -> + requireRouter().replaceScreen(StepScreen(action.stepRoute)) + } + } +} \ No newline at end of file diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/screen/InterviewPreparationOnboardingScreen.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/screen/InterviewPreparationOnboardingScreen.kt new file mode 100644 index 0000000000..2e2ceaead7 --- /dev/null +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/screen/InterviewPreparationOnboardingScreen.kt @@ -0,0 +1,14 @@ +package org.hyperskill.app.android.interview_preparation_onboarding.screen + +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentFactory +import com.github.terrakok.cicerone.androidx.FragmentScreen +import org.hyperskill.app.android.interview_preparation_onboarding.fragement.InterviewPreparationOnboardingFragment +import org.hyperskill.app.step.domain.model.StepRoute + +class InterviewPreparationOnboardingScreen( + private val stepRoute: StepRoute +) : FragmentScreen { + override fun createFragment(factory: FragmentFactory): Fragment = + InterviewPreparationOnboardingFragment.newInstance(stepRoute) +} \ No newline at end of file diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/ui/InterviewPreparationOnboadrdingContent.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/ui/InterviewPreparationOnboadrdingContent.kt new file mode 100644 index 0000000000..55f4d07a9b --- /dev/null +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/ui/InterviewPreparationOnboadrdingContent.kt @@ -0,0 +1,96 @@ +package org.hyperskill.app.android.interview_preparation_onboarding.ui + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.rememberUpdatedState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import org.hyperskill.app.R +import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillButton +import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature + +@Composable +fun InterviewPreparationOnboardingContent( + onNewMessage: (InterviewPreparationOnboardingFeature.Message) -> Unit, + padding: PaddingValues, + modifier: Modifier = Modifier +) { + val onGoToFirstProblemClick by rememberUpdatedState { + onNewMessage(InterviewPreparationOnboardingFeature.Message.GoToFirstProblemClicked) + } + Column( + modifier = modifier + .padding( + start = 20.dp, + end = 20.dp, + top = 40.dp + padding.calculateTopPadding(), + bottom = 20.dp + padding.calculateBottomPadding() + ) + ) { + Text( + text = stringResource(id = R.string.interview_preparation_onboarding_title), + textAlign = TextAlign.Center, + style = MaterialTheme.typography.h5, + fontWeight = FontWeight.Medium, + modifier = Modifier.fillMaxWidth() + ) + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = stringResource(id = R.string.interview_preparation_onboarding_description), + textAlign = TextAlign.Center, + style = MaterialTheme.typography.body1, + modifier = Modifier + .fillMaxWidth() + ) + Spacer(modifier = Modifier.height(24.dp)) + Box( + modifier = Modifier + .weight(1f) + .fillMaxWidth() + ) { + Image( + painter = painterResource( + id = org.hyperskill.app.android.R.drawable.img_interview_preparation_onboarding + ), + contentDescription = null, + modifier = Modifier.align(Alignment.TopCenter) + ) + } + HyperskillButton( + onClick = onGoToFirstProblemClick, + modifier = Modifier.fillMaxWidth() + ) { + Text( + text = stringResource(id = R.string.interview_preparation_onboarding_go_to_first_problem) + ) + } + } +} + +@Preview(showBackground = true) +@Composable +private fun InterviewPreparationOnboardingContentPreview() { + HyperskillTheme { + InterviewPreparationOnboardingContent( + onNewMessage = {}, + padding = PaddingValues() + ) + } +} \ No newline at end of file diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/ui/InterviewPreparationOnboardingScreen.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/ui/InterviewPreparationOnboardingScreen.kt new file mode 100644 index 0000000000..4c070de335 --- /dev/null +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/interview_preparation_onboarding/ui/InterviewPreparationOnboardingScreen.kt @@ -0,0 +1,48 @@ +package org.hyperskill.app.android.interview_preparation_onboarding.ui + +import androidx.compose.material.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.rememberUpdatedState +import androidx.compose.ui.res.stringResource +import org.hyperskill.app.R +import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTopAppBar +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingFeature +import org.hyperskill.app.interview_preparation_onboarding.presentation.InterviewPreparationOnboardingViewModel + +@Composable +fun InterviewPreparationOnboardingScreen( + viewModel: InterviewPreparationOnboardingViewModel, + onBackClick: () -> Unit +) { + DisposableEffect(viewModel) { + viewModel.onNewMessage(InterviewPreparationOnboardingFeature.Message.ViewedEventMessage) + onDispose { + // no op + } + } + InterviewPreparationOnboardingScreen(viewModel::onNewMessage, onBackClick) +} + +@Composable +fun InterviewPreparationOnboardingScreen( + onNewMessage: (InterviewPreparationOnboardingFeature.Message) -> Unit, + onBackClick: () -> Unit +) { + val currentOnBackClick by rememberUpdatedState(newValue = onBackClick) + Scaffold( + topBar = { + HyperskillTopAppBar( + title = stringResource(id = R.string.interview_preparation_onboarding_screen_title), + onNavigationIconClick = currentOnBackClick + ) + } + ) { padding -> + val currentOnNewMessage by rememberUpdatedState(newValue = onNewMessage) + InterviewPreparationOnboardingContent( + onNewMessage = currentOnNewMessage, + padding = padding + ) + } +} \ No newline at end of file diff --git a/androidHyperskillApp/src/main/res/drawable-hdpi/img_interview_preparation_onboarding.webp b/androidHyperskillApp/src/main/res/drawable-hdpi/img_interview_preparation_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..c29d6abf51665085794eda4423076587a437fe0d GIT binary patch literal 22184 zcmaI73p|tm|2M93NJ~gfA%_$lHm8Q1L+OBYwv9QAWosd1n$!BoF@)4Gr%F*d&1?=i z<&?u5lgXLbBt{H#-2VIgzW3wtyYK(wci-1s*ZZ~WdhdOHz248)^L4p()ynG4Js~0c zOBOfo-8c{3CnO}KB{yL#7D{l}88(9U1!X zdneuq2}yu;9A;{(T{#^^d1Xs_dNndkrdTdTnsJq*d?L;V&x#&)5Lemtut;q~2vat7sUb~8Sv+cegs zaSg-Rk>z$CTOtO>JwQg0FS8kem-~j^(!4C!Y_Nl$+NcTX9evsfrTa%k3uF8p7?=_* zS1<$8vVRnJz6fWe$96k;-yk5hMca2=0+x^WW&c38PMdxL)^mme5Y-U4rrH8L#Q&FKjHi2YS&iOJ32C)>eCCRyOH%@tWnsD4LJ4}E^(_>l^ zwqrYc)mVyidQGh)KP;KiV=6}qNJ}!OBY&59JsSyX3vz@et6xrKDKdtx`gzxU4c`Ba z6vaMdB?_ZU$yjAML31x-*-{X$xQr!`<8IWekj|QVgs0#QpMm01Q(a8_$8`sD7glaa*A z7BmH|)~(mA4`Ih3u;rq2WzYo~D`GEX=I3e4wNDJ|Jlq4clqC_BX6)3(?ind%4Kg5- z=YXV3ehM%Uy{G2@F=*|y-VCd4zpJk^QJfgz4{ufGXatF;`89sG$-A%9DyK7~QWf&0 z+<`TsgN!Hk>cEmwc#12&xRXQo0axj|!mY49=<!E#8LRx;|B}uM0^H@L}HrgK_D$;ONN(ZdK?NL=!&G~wkZt9i+1MW{k&V@ zSgMT`7G8`6&4_AuuYEtwaqokG0ND6c21KrNuGB7jo?+ZYWw_hgEOa&)q7s|ko2vD= zDt%~3XEGfR2g+dG2j3p+F-6I_FQi!|W6~JDSx`ASh+qv>tiBqRgQNvi5w~=j(4BpA z<{Zq($hnr>UJ{w%g|Dcd`{_B5g_X)N59&w4u(meXo>qu^-s@{|zH=+u4wP!@x-+}}6T5xC`G+ZWGoF0;y^>CrES2^gNfd_;u+Id#i zra-q)mmA0G3o@+M!NU7UAYv4|rw5*lif4ERA~UT($*2W3;{ZF?R;w^VH$HcC=u^l8 zbUBW$W7|i9f{4w&-ti209|gqNJ15N$?sJ!e<>wV*g{&aN}tzIVaT-%c|q>PEebTtOOO>?hykZUwM zkys-`dFCviKC~@19t5a)Z!VbhR3Hdjl98UL4kZH_)ZAVj(zhZEh^q_7rnN|P=D7%# zo*+9IM5jO@6dSBN91Eu7U00gInki%kMKJYgqI6#+cy7{LOsmwEg}#Z8mn{|o?xR4V zHVa@?!8pW$h+Al6J)BNq2u>S6Cw)4yp$Cn2GRuC)X7nVYY-^@}CdRb6yW%V4Ke z0$n953{Y%xb*Yw`FsPs>FKnxHJM!H99-`57*x^v3SwaymTje$tXuy87|iMp?+zVRS{voBccbgw@i<#6?1FY+<$YTQ z3F_z73Ta^hLY^Vq%yV?X^ai=vOYZPFEo6y;tW2&mhwkNAH>tFo%%3feYNiy>h^Xax zG_DYq<;b8wAHLNEQZ?O^qu9B~gOQ827T z{MwI7Se6rjP715jl78oWPzh6w>As+b9gd${!#w&uxD+o7dm6 z*?aZn(ChZQALvZqyNF}OXO1E6R2@pffy10i4$PGm&=@&8VT3JjKHn^(d6}%sCDL*c zn!jDl1uBqcm4nfS5qGNU>Ql^C+nGMVWr5E7*n+qqze>&bG#s?gH3_A`y#mLM;&!6P zH|#d;d4EzQKlGv{Y$FRWg%Q$$;`CCOS~5zR?>uOhxQ^K0ld1--xDK_Vqx*dr4m07* zlfCXkn67Fsm65Twi9*RTJPT1em5YKUhI1Wdz|{bhSZ2k1!>{g*bkqG1Dy!|ac~>8W zT+ry~=Y@v%p<91%nax=~+#7}fo(&sGMo(w`j40UaYxge6ZypYn4j=zjx3wV2oV38Y zKOR;oK=o2BSw1$&GzLYDb-A|GANsR-x)#bFq7kQ-r!_#_W(uw_0t4%+GOqlIV#5J_ z%gxR^1j3Dc)BsWx;i36E%6{xc$Ly_e#GH{~|J+@bVBAf{Z| zuBA;&e#D|8-uD>e_F`b#YLh|t^%n+3>I-M7WHoFrMGZ9by1#)0njb>hLc7l9U)p*) zREQs0w&WQm5Slf&7LkQC5VT+wZ8C6O0$+^xbUI3eR;q`gT?-weq0%wH-gh)F6(pWt zbJ1;7(L=Cw^F8<<36BeDj0WEk+GTd7Kb&Q9J$E>oxgpR3xQtrb_k;M=@8PF&sq-%f z$|NsvRvze+oH?3HE5%!Eez6r+V9cSCYI8ALO>%RBU#ql?GzPw-xpZFg?KTnMgt@Z$ z1`RH#0hwa2L653{QXMS66*;eJa<*l6%=r}}*b)#RnfcS2f$4Rb-pJs*;5_uT%W~4U zJ_wptG*=Y0K3JfBJcv*Ok;|{t=WZW%+Dhk})lqfpDK3?Zfhr(+NPR}{c~CR~@dvWs;o*NYLRK{f4*+e(CPl3@2IK^5)Fb-`SeMC|GWVnz|jz<_67 zN4dh(h*NN1XS;9_8G7SMr9aif9pyV6g38Pm9O_~s8Sq>h4hy#dU|}7)d+`Z$e7SOh zgA6irfo<`V>4UW>=&M2Ot;(>+S_Bb>FqtILael&1Zw+g>NV5&z2alyOJYk@gW{Oq| zvxeomK%YWT>7{dJtsw>)RaX?heF0OTVJKN~mZhVdjs$6{ZtE;>ePCPDdF#Uq0k{Ct z8`}h1hAK`l>g3iCl~$iNjc$#14%34X2q<_48f`pi8h*c?0+AUE;FS_q&W5hl{q?uS z%8~XDZ=ovou@iz3J-f3CZpTMXmTufr6?J zJX`&0wj33*?82YtulPHQc4E`#*T}kPxFzSnv(=H~2`TChHpNM9HqdflpDIW=wrvWS zELm#uMZfb4m_M$`>r~oS9beAherlJCM_F3-c~U`r%5w+>PH+~YP(569F0G|X!J(kX zrO<(KVBXiMpeH!B=68=5bg*#HY)1@HzPKq*_*u+bK8i1 z9F)@5I3oK+8fc(C!>sKQqs)`N=x6ykN}KtUvV7Y*R&hzlcL6$c8WaF5bXG?YVsWBv zb}m!4o(J1TgMMpxfm2X$bglmA46j!XJZ!EOZj=(E4t2;%^sy*P&S#^ zyrMxY3!cEIu3lUK;G<$`1r7`J_QsPf&2Vt5$(o9LRExEr^WUBE%{`y(io*QeU}Hg+ zIW-SzqM~9Mo?t);V@_`95|nWe2A!_PUI|AT++Xw#Y_1v23Qjv4iyD0an5##+nn1H0 zyO|YZZC{$(P3n=%imZe5Mr9Dl?)pKj0c&!3Qqu;+@b!jvVPUbTLU}-PbJ(i#B4iOF z$=NPC>E4zvL&t+vtR)*PkOsvk*LJzv9g`2lfLl-k1A~QufY?HDAP@v(V2Rwy)T|hV zlz=Y|46v^w-dB2_=pPFj+H%P9g7%CIOfOM#nYBa|Tu~F4?7L}+>p-Cj7A)h3kD4=?cI^V+1A-PIVZ_sOWyW2}gUni+K^j+I z(w=i&mX0jMM7L2uR{DTv4CJyGXFKpug-c0z4}6T-;AP$P0L=9#d!3y*j7*aZtVy40 zf&=KS5SR=OZA+x3lE>8b*U0>r}G(Zu;rwSVl_51Zog zB`IvwFnx`}=BzDK1maA2imayQu+ti4itePRsmY;uYNprxTx+0LSFeQO%PPyuj%>Iz z8fI|F{^zt)Jd(FG7)amj)L54!DDW&)tD8rzW0u$Z&wkGT^5?ULzyH98TS>+pLF4op z?(#-Wb#SPrre^lIp!}5Xph2g3W-~n?M2lNJrQp|nb^xB3=(kX*SyF%i_;%EoEMd2E zYM%zw{rK?Zm37J)M4M*STyKMKcOVihPMk7?x|h)LR|`y_vH0x|gxG|Y4Eto4B=sDT zv)um2^y9*3;b>oHa5vx7bopO^x1+&T_%}U|DWRLRAcWby-khXz`V?(A@P3LLgYvIr zVTm)aqif7CCs+NI@OT~btazq^AOTdiz#&Od>|WWO#Dof(LW=spIqrYKEJ{Xz01MHF zXuw?NpwjvtvtQ8>8M1iP73+d%7wOoDy_lH8_|3DyO*0kHs8pwaF8MivxT#GVGpJsH zgKV<7oM7-DL{!}U@)P1k><3pAnED?$WKv2MEbFJvhn?hBQjJG7V6k}B zZ`T&A(K;rFt>=&XO0wRa{7r4ThV~AN7?F*k#Uh-l=qB9e=O=M(oT?E&=dnoFJaQt` zDRb+(N^4k+8aI(YL3HuF0}O>72pnQpux=Sd^|ZLz`?2R|JcE5q$vjmPg1gAZxH}k)chAz zVJ7@&6>wS0y9J@h%9yb~!TmRNH@|m+>wi2*m6|#tTcD0?_(DrHu95<&B{%#67ytZL}Kqj#}d&*QNYGg+gCcto8JHk3uH36eQKq21pZW*sEuL>-Zh%16isdf&)bd}*W5j{t z2mvGDYA#i87|yKlBG!n60ng6eZEO6^&_UHNpSQa|(5ZtO7!!h8piQ7+Mxgn!ivt<}WIvXiXGGSa^n?BsNB%Xo+qMY+JH%P2vYcEF#f;dN#s_4WAEt|F#i7 z7GAHT0#qr9MF9K^G-Qy{2djS4M*JMryxS1du8Nxf@#c&>8n4D877P}S3kLdgernu4H8E6oL{v(w@ zK|!iEY+pw#25JlFM790UXledVrU2pQIQ9_p=h*Hx_n4+veqji|F5y9u+b^nwt8mKT zR(YLaX0@;%jBX+wJ8!j6?}!6)r)zt>yj%WT)oU7&%?GQdHxLWQ81gFfhkys^`F`W4 zg<<4@>Dt?CdM?a1H8q$($E%m;n=Gn80Q!{iL+^01SFEyRDOTViC~AhgBq3rMh9*v9 zVFKIO8-6vHdeO;5*Y){n*OcnA8gV!_4`K7nC50x~V`s|%RiZE)tcp2F@}duGwP{~0 zkC;Cg9x;97y?hd4`H_mjeeXR$I@WJLa6XJ_A|QqV#Hgw@tG#&RQ2{X#o*8@GqeQh8nF z77P^uG%M%tlk`TV8(+m&_G%`Q%Vm;Lz97J2f7xRWzDeCpQsBJZs}!m@`cCoPjf z(tp(1m^(}0o#j)URevkz4jbS?INsbg^=um>g<<(vF?hc!K2m(YSFev zx)AS4`gH*vShv~DFEsmJsUl6J@fTy|NO2v*=K*vIR&I{4UBw$x3JDCvd|2e~kH3$n z)c8=aXi8-628O_LUc-*vlf2hDJ@#f)j#R#&+pSOkCC`f+XL6sr90&M%lUNlKY?&b$ z>%PC9gysakj9-_J!F?U7s02G+CNKtvR`e!t%6YHB0u%EFCh)vDtoUz+##QU;ysf$g zx=EZD7)~EaZ((~TJB8T<{cztN=1-VyTaux%BArHA`d(GI9K5dqf5mLdoA(E&!rco` z#^}h^gaqDn>xJ05)pzg6@ZULWauEg1?{vAWw%i(53Km%7J^<;g94zNA)eS0z0KQk4 z^3x3TBm*SyOT^A0T}TZC?>kw=-_+djQ&ycEHuZ>SP#rY!d!m>l6o;ykzvVmAbv$}1 z-DjM`Cmcv)P_2Ttepr)&att&i;#a-5&k^VeYAp!OtpGoQ z9`e-o9xRe&4Cz9%9(Dm3aK8?U6^GnArh^j@9H_!Rq<{mUD|bxwU-zDXDrx}KxXfBL z>?q5%Zz%9w63vVLuGbn{0!?N4&`B)Y5KkEPqFV_Nn-&KJVo5E7&(^+S;7}-Cz#XN= z3Fz>sqf{1nB#|RvCk6BZMyGQswXFJs1EWVkbdiAoH9(avM1q~RR+bbIfr1sF(irHj zQ5LPRx7stnRx}*NeZF4kAy)&v zctlW-!tk^5g(6HI4lPH;VL|BMAH>jE-e~XFPL%6&j~*)OQ@@4b9)LjbbFO1W$<4k_ zP)RwtSe%i5g1n$ATo_GZhQzddh?av$a&fLOtrAeT9(BMS1nru;xrW1FD-&Ff0qH&_ zy1mvA274BtUxbM#PPxN6L%{4$qVbm;sFyi7M4uqW;#vehVO?Db!(X%~l=Z@MdK0I@ zX&LH6aA-juQF2LXi!#ocny=!mj=Kt?MJ;HE?LuF8+p?E@5MfKEcEN6AT6Lb8&Fc(( zsCkUU@_EK+A}O@cnw!3Z7|Zpcea<^(JNN1q>=AeE`&VH^@1Firv}t2+KX4aek3if_`IEw{t6MMMC`7Uu za`8t<4ARH|#n`}=RKRS^s{iKVma6^mh#roM9DXS9y7Y!wDLhU7S_-ewY_@U3jQ4yl zpU|NGzZ|G;Ix!_R27Jz~GxT@ydVc6^&lhmF9)vod7^6#4NO8kbC4U1Jc!hPG;!O$D zSNz}E8-KE!rlF)e*i zD}0Bil#s2UAUlm>FOUwbuQdcrL}g};A4ESxDFZz#e#zpMFdz9sD_559Z7?NKtnBIgqg*y;aZkS0VXX~ zefaI_cR>uQK!iSp0;98Dm)w>?Xk^8Twx?bm_ZSXC7wGzG-JZC_R^ z9MpHayUdE-)Bs@-Uw*uG zr0DGQdme~jhApT%_``Xu5B!e zlx1*VK*PVFU;aZ_vgb+EtyQgeDgB%&&TW=MvSY+$3UrTV=Az*AMyJ4BT_mh8OeA)7 zY0_gmhOoWJI}qAy-{zCHA8P`A(MhsW!?jb$ME_x$SUlqm#uWwyNNlzKl_0DXb7xjR zXLDXx3BrU6C4KNCR1gCWc$P~mK-K>y(|gzz#DuB32?rjlyM{Fr(!6#Qgl%|ptcxyC zc{p}&9~DT%^d69a^+5!I%{jfz^GjU57=Jy*gc~xxjVhu+>BRl)7?gm`A>wreQyGis z8<9T>0b^nGM$xS!OG-N%{E-3E)m5_z>mP8eZ7Qo;FpY4mT%Z;ehz&!HlH3?nBC}eJ z!Jc|-#*y4POQ3u3YP;FVX9b)(TCVe*t7}Pa%-baC3GnOOl^d5QS9kCmEs#R;js^l?u2_J_K9`+1L@Aby93=`)Ni z9VtO?{5PsciG-F*W8w4?HYpba$7;iYbB{+ZUyI{!b@NYWZ}H~7n7ZL{g}s8JA1G>o zKrIpC^t0)LcM@n&Xu)jEnvV`OxKXpB2q3^dSTKXiP>_vnc6ZIo7@$DeRFZ%)PmZFO za-@gl0I`DDF#H*-y62t)RO@kS5OE3#Lkl9G3{n9K7IkSWy2RKC1O)>8ydfaF1Q)z< z{W6)x8jGd@vG~>Cjxu!+Q6wjcX4R)KfaxVi9*F;7VquBZfs=_I>co(0n{sg=ofH?x zkn^Ms`&1?v8wmFW?v@Z3VgaHVeNi**hQs43H34+EYEJLaWNlAYFB!t_kt?K;p}7$# z*JJmUbkzzRGzBlPz!^F)>;k(?;qqJ=2tqG0C}#))rh?f>HT5ES$O7qp1MTA6tiq+b7+j}Q1y}+yN2WGra4In6RtyqZO%+718D-@JC~82( z7)UTkwUpv;|CkhKQ`8n~+lSO`VNQig2r!hKjyu}P#1IUU6HGdch|z(+kjV|%F6jG` zDGSO)+4dPf6kv?BJbCLJOe+aQ_c74m>M8Zg5IIzGE`|hhGY`@-+561KuS<&VgRge! zyu9@LTSIGu+)*7{H`+Yz0B8C{DVk&hpf~AcDt5K_8kv}A!%~kl;UoqzztcKQa@&-1 zW7>S3$~T^59q=3l0&^qGS!2fYYx59@4i^eYjzIZlU{e$R_&apTByTmjLr7XS-82ya zuH(kp*a+f=oFo(1co+90@%ttEM$*?5*tseYuBSlW|>RYlk0PUv|xGrS>Z!k1$hL7CKFc zUhi17-AY^c_$#^T&9&PkOo#k3>mfAp&n{$d>2H`ZG}+_I&fRsTfx`sWn)-@354Q8H zPm_OntNWSe-1t0Uh5v4S9}l&I-N~K_XcgOWz9G4h)#Uuu#B6RyqJOj4SBL&(=%ae>HJYUs~JQw+lE z#?RScY1Xq#Ss5X7P_fXKs0)d$C0Aw|weLMB8GXi}d<~5)Y#tws>{+~WfA8$3oS|Rh zE>fN1d*H$pNxUX+H`1*jDD_H;%@MeW|D8u4ROpixvDV#F5WH=9nA{I zKYK|WUQd~u^foo%7`!?BI4z@HS8V_u7=ml%h?tJ3|hLoQhCHV<~Q z;rheRSssnw_Onwq-_r58wUuBxu;u6ef&d?I%83`jq(n0ZMD&^Os3g#k5v}UY-?Rj`n9xsM?37EQ;l02#(;c&V#*yM~8 zj(PK%TmF{}?R!T{MHa8wFq!*tbTM-!S(CqMY#o@Ci&Es&hlwQxur$5)k z9OWHNyYl|b|5?4_F$Po-k2=VRe;l*{T46m^HTgXIaX`4X+5!+me{)9a?(~&NA-TI! z`69a%)NO;f?iYme5Aq3-JRYzLbYCcNHI> zeCsw+rxoRDx9>>ey82ky>jUN&9=x#Jzjsod05qPljXB*gJ`j+Xu|MiknWxmn8|OE| zoUc{aOpl!1{T^-KIj)bTT>jTA>Ax2NTU!RohkH@icg?1BGt zpLu&l#POcml(=)xx7EMjK7@EYDtnp~ABlI>cO!I{_PE*0oR>Wv?L{vO)u6V=J9*w(%Z(b&J>2mi5mQQCsnfy~ z4|y41)UWvP_)}xdg9A0SDv??0N$sWzHWzDi^kNIapKgphtYM5EXW6^)&tP*RzwJ}w zIYUL)S!MjDY@qptJNstpALyEvIfcXAPR2+Gp{x1>tkh)=b7{+-s2@pUuVRA32iOCd zI`xN*QtxPLJe*cWzdMo=J6-u>H~(Hi`$r#wi%mv&N`xf|C*uSmJ+OmW@Ba$QKic^1=$?M`xyx9Yo~`91X#RoI z;qT*_p(no`F$}J5J%k=sk-6~7Cwdg^xq*d`OJ8HOJiz50p8Ir2=uOZGLp#fO3#RLk z=Sef82X|hT#65O7xIB|QM>>fZPaRO5vmWRS*1uOy%{Fp84R)0L5QRtQc7uP7R5}aY zU55_fwJ)Emn;W}25CV1SDvxLxQ|)fMviHorbH^<91>6zc$wDM>7Q(;j`CeN{GC!xI z$-5vWdA#j_Qsl(fR}fB$?*(BU;497R-r4)#`L4q$QD4eu?>{=t#ydni=}R5@F*$1Q zA@*Yb6PW3JjMTX{uPVSBnc#k_e|1nRZ|>ZaXON&K`i9 z`SDpp(d{(P$Yx6YSVye-HSgt?K$JMlIRQVhvvbG=d7?8_JbkR}pD?dCds24|LM{BQ)+0eb z=U7cwt7XT!blQ4rzbp1?fyBJC{HXErIwgmK{qPm&$U>n;HTvmfoIYz;NtNNEV%f*C z^p_=x4^&&cJ%zsOI(HlBc(z|w@}!4OMY&@ZZ@yQ3Zoizyj-S`P!~03A5}sS1NMk9I z32&Bp1Br88hndRkBgV42UGQpsvgyuT%2Cfnm)={HoJYM@~WF4IbAdz1D{9eHj)9%ojYl1pCD(LV%VTBQ??LBitSeXpz_DI}NC z5C=L-|B92J=bQyJRJS|#a6PdEeutZyrXxh{`s)Of7PC!AK&+4CEN>rBvN4kNw$Wy5 zsK5jc+(P`BG4Z!iJ4m>3P`wS&06?93|HAIi9@9b{jMsKM-$1t>eEy)P%IVfMho|g2 z8G%bus1x&NN?bv!&Vhtky%f&dm<>oIB{JaBJp?tYOe>(1s54aPFH}`Vt0kylu}ufAo{=SjoxO)%btL1BG^$MEAu85itzZUCv!K6`&#P&jZL-TD~`L5Ij`F|{lNfkHcKc>C?=1?ShYvaaL zbm>d6Hw9OX3w@usjpay+M|Lb~-<}Qj6k}N~h~2{WN$F$9n@8{51zh-*V=S$(G}*H? zsVdXWc!BeME-WT8F_=tNx>qN=!CX&=+GJq#oK9OfXt+|WS!48lI9Ks_%Y(b#3j>0h zM!k1Qf?gWI-XY}7ZzWU~9~%U^ZdPE7+B^U?9{Vh56+JdE4F`+DDe>^F7cpk1%SsV3*&(HqFsI%9onyY~}v z3>CC*AN;7XNq&n_YqwL?l-WW?zH|jMZ!hEeFI?X=PC(72rRSfK%voA|vK({w%V8Vv zqel2Y+T~gLIgJ|XgGZ@CC$gEF0NuPBdBzuf@R`z{pKQV32pGv|A2Epqx2V|#j#aaV zkDif_!}Y3Hk_PgZ_KHyt*r*Xs;rg{J_Pr|OG@Li``1ZN)LeFA^#H?3irqUI6L9h2KTwFx`kIx)W0;f!+`|fBBN2oCfm7hk9m#!p4U$mlEUR?Xb*cH-R@$co zY=2#l*`|-oio&Uyj<-VmytQSASGt#=hr+9xl;n)gnp^+4WycD7wPrCWfBA2tT*jq# zT<=u?{~YZyA1CCGh6aqDdfoMk>}>| zOa5W`s)NsE-cYZ<_?SPXWbtdtcpEOWX*M91aS6U|xQLr*H-JRk_?;+Z__ZLhfw=)&_E_+^Z;#F?Gv<|i^+*ce$ z$_jmOU;fnJmqLCINs9@am3k#s{oFveW$f613#62CNhj1T`C|@2;j3(wZ5ggo zV}Et-qlB9~Flofl?}lbj=z7hTNk|}M#AW`WX?P%aBz)6uD06D%+m&~JtIV!d+yn*~ zyl;x`y|gOm;}WeEsH^*|*O#<0EJZ(e*+7 zfsh)#8c_aMi6bK0Lb%5Ur+*#SG<|&}=-u;CsTHc!#M;rU%4B7#i0k~*dwZT<5yBhY z|6#0tyl?kiu`wADl!ECS;b(&h=k}=on5#VUF|z~t#NNXCIO*g>*PeizV6}J>BYfBC zMVa#^FLq8&viA+7i(}7}oLgEY#XZ(hay>Vw@N@j&mgA#y16{#BSD(%sGCNY6Pd829 z!D(NGJil5q;XTE$)jB$vh zo6&CP8)$v%AT}&s`Wbkxu=W^C?{FCSBy(*-G~h;tOqcW}PwFmN;c(l`6utp@R9`7+ zgec|l>x=}*cRJc}k@YE$q*JLJ8sz&4awg{Pg;$HQRljy#=((l;Q*GpZ#`v{~JWkY8 zbHiV>d9qnQjsL|a{P7CH_3lN{cZu%gVbL5zyS{2;W%bWbD#T)nAUDLCMs@0{mDJ7d zSu{T!u?|uQ-F^5kRUMfVc$#-3o_X|jVtl&RkUk(K+;K|sf@#v}^>@r0u(XS^8%{lv zyDCtoou&9D;C@E=6Bm=a+@2jB+&`a;Wzt4t+@gItD|OvproJ|eG*SiaK0>ZnY`b zp5W-K7oXn!(_C@0^P@a3fzMaVAJn$~IJln_hiLz%U;*UvSc8kMMC)g*rTeCwC*XGL zEhT5|@+vbA=E?J^EOHx3%FBrOMS9=9(0G0&p}LNr(O#MTczjBsM?|PKKJdw%T{c4P z9GFO!yhl-y56aR0ZO@1Ie@<&i=byChxpnC5VS652f!@>_^XK;GOA6oD9zD~TbQ=8= z@x&diob2}gWJkbeLtOjcRz1JL{Z|1tRkt6R+59~)Kcmooo#m4z>Zs&d?vq-6#yrrs z0*y!`W`9|mv=MDP{NW)T^t5qFvR(PAyf|d_o2k;v+=rtY&0)+pYQCHwJh5u)$$qO) zqRVNb694X-ONF*AI=dXq#-D138Oz8T# zCDli!7d@wc_KSwm**>F?{!c%l_$c2h4};C8SCOeg!arG>|Ad`ofZAez z4*Su(Vd}wnR2n0O`o4eva<12HvoufpM7qL1r0M`u7~%ciW`Fr6-zzcdyr+)g zudmNSF9wH9w2j#w55G3zG+Z6vxliqo?}`j>Q@a8@mOmJeE8KUB z9e$9IW^m>E;iX;A5*dI%H9r5&mvamIlWvT{Zhl*kwlym~bU*NJ(yJGZH^fcN4l!=~ zSxVu=0~f#SVcdmQT=Y9|CI3)plS_Nqv3}~|&i3=wItv%s;tsdHUlT=8N2l|HZ6XW4 z5krz=r$d4#tThwH>UieGhxaa>idVIP{LTDr_-R1DL9tb|cI|4e%#t2iYXGNyAmNDZ zXw~z$gr8bwVSkgqLN*2t*-`ypm;Xk;nf&JZLsd9-f}9d%|0@oz|NTAC7qN5H+&1@8 zEpFZ~*3U4Y3;unNREUSibZ&D3j2vT*o#35uP$rE^ z>nXz}4Y>U$80U}d7QE+f@EZr{FeK~aKF4JlmQ=2|)53?az9AE0I-@6Fw@caeVvAnU z)+>(R!Ur7MF|pf4{FEtd;d4DPel*n*(Z2Z_qWD8TQYOmp(dFIKvD(eH#k#3S_imKO z9r=CK!C^sUIT-mWG*eqwb@b8Nb%c>j;zESdcPEYVW3~tO-5MT_uG#bIPOR2_@WHHG z0TwCUqiG&0S>-C#+ol?JzGo|hJeJZQ%sdF8$7Ac4BHsV5jlPCH#*4h;WCZzOc#X=@ zsecn#!yZ3(&TrGhwBd$T@ZF>Bo8qBmo>>zkvsv#Q2I8Hh%5O@z`pjHw%dY8ien3(wKSjI4{vBfJ#45k3 z5=?ve%v@rqVXwg$|KPE2-?93__Gw=}e{1Rp-j(-g#BaB!pXS6`zu39^(;1@{r2e8r zo?Lx)pZ+gqMCF#*T^Mq#SV?s-v2lIQd$YmEu(3k5uqjLkc;cCejPkv>_!c00VyhGH z5PtSO)cbM1t5~g5Vx?Po%=l7Kp;GY0c}TlTwao8gd4D#qf473odnZ8WX#hzqpIUtl zqXzihaA@XGa1rK;hE12*hFriShl$8Ccg^X?$MZibKki`mt9;1piEEuVkWN}^$jjy{ zf9yUZGOdgafc4G27+ecCym82-?q(fCo zZBXa_s$V%E%w4hecq!wnx#@1du_K??W4~=kX21p@sJXGBJJO!}Pbp2` zgh<}po1&W|Kj|+FyS}Tt?Dq63R z?wCSkdMKF97yR07wZSp@RtexMJ&L*0*luzlkTUD%fT!2BPt$+~FZ zJDoSuq$QU4=cl#T-<%jy^Z(>x^IMi+5i_t`vrg;42hY_-MH*Y#mpyRQ*drdAzgB#I z_upRwk5s+hoVrUQp7Q|jt5giXb|~F;{AqL4x$m#uYh^y!RF}S(b1RfroVXP`uhmyi zlNc=C=R`e|oBcZY>CUra#``wvg6L?H>6nC}kn#0ohK*V?*IpC3_)n+hDR*k$WL;0sa%+G%QuF5i_Z7xJVI@dCs5ay@QOS|GgJSUF-ftaab8 z>;B+{CeFO&CWUp&Y-T-ZmQ|8i;MSh;KhW|m{j`P0tIQi{JFrB|kMGClXqV2qHoRO0 zu4o7Gvim-HXi38Fod>qlf8(Op+zsqoblV{QmNM4Hb7I%>+$|gin1De8&{>!tg&?zI z<2|Jcs8R9QW3Yj?0vC9~Qavk>D_#sR9d!Jhtd0fyFB2W3wW`D1EbeCePx*R%4WfZ% z_d8JUT>)m^DIYzH4MQ;Q6MZdl!lg*M5O?iZ65r`LF-jP{Ij{P)&Us0f$L*Cc+IY0G zDG>t_Djoy29-%_ajX1KUyl z8}EG)9wmqhTEM21S66zHdWFSz5iQH#FssrBkUY4&R7>sQX4fPn0r5!Lid1z)RRV=s0G->SJxgV}La0KUP z<=s5KS8--*f%DmFVHd3VXEQjbliR_Ux5wmaDjLOk!p&VZ3VNKXJbXXYPOHOO#lq|3 z+z0n`2L{tM$ApTz>aNo>h3Kf2oB2#&_A_tgnhba)rU8ysS1k~s@eeNqFM>4>!MNMD z;NYdyfQ=>qy)epb5to+grfugjpG`}p=xQ5I>{KeD+1#`vwveT%_!c;D@e#bHAdQr5 z7Gm*Y<^6o$L=z{@y|W%qCl2IR@3jbRO1nB#nt<4(jYz`;2He!SuY#RMznW49Fh}zU z&s>$M8bFM9O*mu;=H>on>0mD^e+v+>r7-d!Q_QDM?%wAaO;yKKnv*Tp{9G-EJc=V0 zQJPiQA4$irdjc86d|>5A;*}fsp1^Ts)Z85j=DV<@w#lwLlbC#SNwQJ2lJrSl-uHJ7 z8QtRPbiwmnw6_(&(P2*BU!cuvg77p0kXT3}7p?p5Q>f>J%xm~@M8W9Eg|yjqicsJ? zlBZXKA_+)fl)h^n(VCx+Azx>REZ|gnD{?&h2=q%`&w6|YcGBz%Oy5(fM&@LTisV(JSIyL1F4}xA^veHdJh)>vPJQ- zH~<;zNuvh+K>SxM+&j|ah-nY?7(oqxqgcXMx`AO7WnOH+9?bS&Z7ZH4FjZJO25E3{ zKm8`il(1&pVjHp>l3Exh13d`k-}lQMXUK7VONkY6OFcK*E{7k{)v7&(ioELlDfzq@ zD+djUZc~iTnvz8>%QV_zUJW;p1un}d$15lhW0V5F>_<2*8DqgbsndO(bTwuz)7$j} zJ6E7v0vB_2p;$YjzS1dv==^^|zQ}6OY14(`_#LRtZcM1*!nd=LKsM)|P3}z<--9m% zTgf3`Xm~p_gqq*X;Oe}E2vv&g?tIguUuAsSjFf!ddr9(E%>{41viq{;Z%I{vxH6al zRxup7X>FSwBkR`fdLFQM(au{TwiOmBFvm;D$6xHly2`}j^@f=|(&ehqN;WOI#Cj(B zc4>0wmPeD93)Y70D};U8+QQzaC%}FIY9r5U4ZYi^mR;S(D~1R$m(k29Or`F`I61{u$DFZqk2drqv<6UMFp zp$fI{eVm!rIx`7b@$VN2G0JLSQ+Q7BXkutdoz3)h1nA4^ddJ8ZVnZmb%18U^0f!~# zm@*)b?%?&|efHEZ?PX$IEJM6Nl>++PO11EdkKT9ViV+k~8 zVu3yRKm&<}v;VRo(Y(jtkS+ZjB}J=xjjJ|@Qz8}cUcl(Wa~b5!{?!Z?)r+^+zKa0B zN%vB8^kNB;>hHq21NTUIJefxFD$@TLZb~T(sJGEI<0IS<1xd}imzMcvuAT+`#m{=Td=yE2*AwMqUK(ple^El&-gZ18`0W0fvJgpe6TCRF<2|w^ z^mxzjkqmd5Mi?8TW+Jus?AG?UZCMaz-R|M~6Xvj-uQ1Xw6GQm#f|tDs-5D(UGG`?KarF= z9itBczEPma$Oq<{`T|NYmNQO_?;`Xy#VWS18|}9(O>Fb3tT`$MkF(0zLH*SyA`68HeP#Rg`z7TozU-Ju46=n^#tEyTv8c>Q z-FGdgD>QYz2AYTlY@c-=hdSw}HCc?Ow6_IIY8EjZ`T-mkwK<(j{3qPabUJCDm3v}i zB2(Nlc1}&Tb6hg7+}wCHun-^b)UGXCa(J1q)O(7Ko&ulZ2=l@}YYXa&kIN0dtN%Ki zDJ2_32O2qfhAC_(z2~tgd{8>40$#&3|NN81JUPFxxg@suf}|oMKlm{hbvAPR79{_M z)du!JO^35K8G`S$;9gm&s@D@|(ZZD=j457RpPWXJN zyNx;d_&SKDag|0{E%?`}==8d`hI1*oyw?0)Oa489RE=>FtLtWFe#)W4xfMg7dTq;M z`q}tov3j;L;cm3`n<<2GL&MEJFVb=iKSLKsMkB%WUSXP5zoWRKZNZ|AXg)>+q6iO` zQOxUUz1=X5x>N=8v=?CJoGOS5Qo7Y`)tJ(`39(FmHF5KKfqU;@iUTKVRw$0kOpguv zz2ick(?bjkATMvJuoD@n=o{Ka^GN{~fU?~+Pb&S_O5q4_7txqu;wN@V zs94`+ce_Hg zcp}F0e<#tKT9pYF@{$kmPb%fWP0?e#6q^`GJfDThS_yh`GWA`oN-s*hmMfEw98(P7#=a$b0t^ZL3^bF$# z5FHSILu=M>PpK3C_}h&m(sZlLmzB;}yI=qS06r4IRbbw=utpBRhM|IQT7OzBJO$z^Q4`47D#!@x%*!g3fBxfkaXbPuKh{h~G&CTy&L4 zZ(2mTf?`3YZXwsWxh|h78co;4wto*JCPQiGdxK-=pzsQXO%O^g{BZCMXZJf@P$`Fr zV@gEe^sk1WB$rp<6&b2<4-Bc0#{nuu+T*uz)PGJK9r9i&no)1M^e>sh0B+$%31l6m zpzGoLdK7;9UgdXxkM$yzTfyeueqR_vMY=!%!U|7^fEES-A-ZXn5{(eaSJnCs}#n8v8(L{EdI?CDmfgcXhR@AJhz(g6VnDL7a<+7WGG)nwv1L>+7}di*jwp^ z;K5K>+M#Gf@!gn@Dka*rPq~6!y*fe`5gc+mCy@@VsxJAd#YhB!}%?}<^!2fxq87VLsj)ih)> z#@ytldd~ervx*$HEsmn8vj#L9=WM7wUJU?rD?A^EzOzg;dY}^TFQjk$|Ma6DZ+^Eh zFf$gADw^s7RC#LUs@RxUkoCy@r<0MVjQ2*^-F6+(8GbPs0000B$YxthAMyMw;-nu= z-ZR&CESp9>g=r{x`e41dggI!)DZ-|hp)P`rtD&yi;~AE1_=_xv$(d+;RDPc*dGU}9 zve+C9l3^9n^(AN_f|J{UBJVqawP6FnZI(enGZm z=&6*C*Vo?gSb6mH3oG!r;sN1EZj&w-pPjo>{7+mA<+CPW3;hHnjcdHCrzxys>ByFa z&GcM3BD_8YHq; zWJ5Q-nYh%URl)?X*8HDmrKTK^2oO2pok>ucSlABM5m9p*IPek0^xFmoIiRvxFnoy= z+=hwLqnS5s_@&AYk{ul)z{n7~-V~P0!~8~1@J8tX!-=H7-&15r#!8KmA}I}RrBY7r zj~I3gd4o5yQ;;7O<#T^1FyGhK z4u*w@lV}qRI$MRG{Y%Yc2b7INz3VyG9C7&_&~R8h7di1ppG`@{s|R4=1Pj=kh(r=* zK(%V0QjqghyiQ%x?N!uKJ(lbEk9#oA4L`e z*KPT}&I)}uKFOt?&A%XvQ}R_Ygd=G+>$tC&c0;}rLLeLA+!{Y6DU-@L)ooqhw;f@&Y1 z!PVDRNSq)504dXP|KR{b+%-F%X#%X=QrAyLRxfS{lckEql5BlVXwaAsFuBXz4@R?h(lo#1SiKi z7)7(~<9I=<&=0jAKp z-MsbZbt#>TO}!D|6h71#Y9!pVj5<$IGeh8_>Ok5K+|BrDIno|zXxvVB+uuKxWFR=s z?O(O7P>TsI+S*Za7*?=bU(iG!E~edhIbBIUCY@JWc$)tMO$;1GOr)X4^lmlRgZ!In z0jn8QR!s258o;=XdYA?kN2p5xpxGgs#tR$U~9HpU1MSLvhVXxf=BmM79spb6#HHpzOBUj5kNB(tH@0EHAdybrvl$f&BDf(SA zuJSr_E+$Kqo0o1}vG^oI;i<85K$FsDlV(DmkuZ)os>3HLglBkg+~gKaod<4-GC+|i z(>!|kIvWxUXY#1qsVGR4xc*pb^@1N?r(uM6>$dfk2_)`H)0rXgS zsiqJ#8cNTFaL5a_reKjqL{9cm_(?30Qe_WkqrzH7`J>>XI3yGwPeH>t<}nB&E1pfk zlB#0JS-c zLUbH@UW{&a`6C}Nd>lza!&q*eCSer8;Kf6O1SA9ke`#;_&86u(ieBBqz7nMymFYv&rSSu~@TqK>e(%jP#!z40G}c*T!LsPJKpj6q74u}z zz#|csA*qV(m{wK{y@5v$M}={;hpwM%8X2GWWc1N$bXb#|dNI8wr7S_X_1lN9c}lgw-c-b<*fpuY6KAZg^H>y;tAN!@VViHaA}0K7?>>N1FiGk5 zJT5N2sRyNY5v3Zg&42p?ZJD#2b$|!e{)22Pgd+Hp#Pr!35#uVV=@_^1CW7Du7s){a zJ_P~^;=ae%ybd}0`S*u-Q(8LGHmP-#s=gE0n1E!MVEoit`>fCkzRf@xBf zJqf0KUM=!&^WLA3)1#tEWEhY7NhqE2ccEF6Wo#zmptga6W~HK0sGkifX{?zMj4*nV z?b5PD3fUfrL=aper5@^4cf0UqPfLDQRLgiH$TJ~l#gv}U>&;NvWzO#oTDI_BTHC3v9%xOQ7 zOB2jkcy7Bgbd3e$c-uv?x4qr$c>StQ<`=pB-Q=28KQHch3%r7&B3Kb+raN-3teVlp zZpSRvIk@mxUB{6ouY!Rlsp=-p)ApSs_BsvaD(;a+=|B=R*Af}!gHfpZZRHiTpqG3G zCka7KqtR+MycnMT-|4cH#dfE_Oc@HALP0t4w7^|(lJ=QGZ0P5$DX9=v4twfiyXHx1 z2aE%x;HYE(R-{9DSILzG77z=>2^Zh=OF9x|xVwMHJjluYUEfXjvhwo&;bD9k?%ms= zN+JC>Pq<-~IG=Hg;1>28@5)~}atSiAr?6#3@BG8w{obH|Dss26E3PQ=53{ivxH-_@ zf9k63z4%U@Kc`0t`WAew+#vmntQLISi7)q`R7^^)qz-rqh&6UhzVsFn3+^o$RoX9O zGS$nr(#K`?HC19FHj`8!%sF?}Bh1kBCmAeQo{c;IC6d)=e4H6I&X{Q1i5T|@4>usx$4D!b?bEWh zW{QJPXWf|*QEW0xw%}OYqA|4WysHMon0o>axA9W3XcA?gG4N$}FWv6fSm~J*gr$Zl z9frF<7cs7#K#?J?neEsbyX{oGlBbduIbM8M@tRnWd#6qL=h~x~(VGbmy5E}s>-&B~6Mq8rtl!5YkwwJvUywpPZb6y`aM4VX2Ff-euQ>-0q z5ESpKLjXua%|Qvv!$XamqY%<_2RcED5HJelJ3fjur`oQ=z!)@!0t~f_LMX}p1EPkD zW9)wbFoukVy@{e6TmReeYoFnns(5FBpwxS1|I0 zC&|qn$=b^F_L))L&|q$OV(Oh}B-3^b+EwLmvd&0yNJ~yzPMn;a+`{B!j$B;ar%F}1 zPX%qOe+_k}o9=em3~&pu>T;ill~gmwBf{Q{(9yiO!-W}!pKTqLdz8E%#oWp%>o4oS zX=U}MtgP%Xux@*LTD!mN-xzBSZ_u#$0*Y9%WUlQDSiOHZ<8h<&ne)mawHDB_Tn^c_ z(&VmV#RnL}IS?#pbWqUQH(UF4T$&4O#kRv`UBR=x;t>MpFI|T5>&{4sePX3@&Qf^k z6uMKU$S=WzY36oXvvq%jdPFb~yLcQ0Q@}tGibHO2980S%ZF!l|U7<5aWlZ;+$!T$c zMTabddmK4mCs)IBbjkGo#t|OS*t^J;pH&rom~%14WOX073PrU|G*>F{vIqZ2R#qerg6yXDITusN-gOp)e@b0>F^`e zm)pkUyTjt;-bWCehi`0;${sTeh6HPIq_5G)-kRfUb?h(SXP_IDFs*Egty)AZ3mc9_ zZNB8r^43AIcSK8qPPi)4lfnuo5Ot5YrU+BXDI^#*-biFWi@^}T*VMnPeUBT1B*S^H z3*K*ttZF|Ag?PlU)?=xTgG|Qfvtb!Sam@YK$H=6USUgeQ94RIEqzYoh(mKdZ9N*8~ z3NIcZhA%!_J3~a3@gW;JP3oK~N=?CNqw*#A-~F>;o$T5vA ziB@cINi+r4jIsNBg*kb}>tKgHD+2*<>V%T%DUt>b1OnUfNElAC`P{(x4%gP%HpCi+ z9_fYz!HI9+F{o4%PB6;E_gf++FO^J2C_AOR*8n*xVUfJhR#tq%?amf7I^K=?b3ukg z#yUzvoP_?_gNt$T@U)OIv#Iv*CNC7G9u1QL>EV&&gu`fcl0-BGP{~F_R)Px)B+~wH z2NHkBBq<1&Vox|6OeB_rlzM1Yk1C%!EH94)@hE`nF+>w8mILjih~R96CIyMiL0h3R ztsp#(gA7yPJ=`aoAW0MnVHOnHNRk9Xqah$R4kwmWH$uwca(CDIuoEgei4HiX#kayg zxUr?6_NIPGVsUT-2doRvAkq|#CYj{%Oi*BksvsV`LpvqjNh5txi6la2<%kjHJUnwF zZ^8k9Vh3b^q+5VWKwBOjqnCrqMxnQ?e6VZ~2e0vVmV12l13JA-k?J95n%lwJs`#$d zQhrC{z~0<=7xgW)I&MAOHa(dUx5vI2v1K>OaAypLAeh{HvVTCk{tSuT@l72)oiJMm zW?F;~Gx?zRNAtn8J+76^U(8ZQO9+Xn&M5xv#;6$V+H2k!CuGfJ4SvBeS0eJZ)fml; zH%#;0Vv^3R_<+trxNj&iVs-=AkYIrNXZo+La&?Q*Y6jP|cf9h&;~C>i;~&RBW2H=S zdX!rj%R%mL)P9#yOqLU9zk0V~H><-tE@FQB=0V#5dkOoR_)^50PE`mxqJvS~W%ylZ zSF4tm7GceFWAKjH4W9jT_Wi)`An#JlEG&|l=xvYJOusGmZuU$@+UBVo>nAM|%lM84 zr^gw`p5D)U^4R0yjl38RS=G44Ik{FxCGZJ@rtj9_2jq^oR}*%fvVhESjCW)Bk`^0iN#8>VIj|t@2rEpgeQ8!j;0+|{gh2>AN=L^`iB3RhA-VS!ODFR zzF$_}o{ToTDEi0=Clc*=_P)>;o5xG8@LB zZJw|gxG4B&4a0iD3p#(LNt%q|t9NuP`TAqWr@%_PO0I6H0yvI%j}zYL6UM=#B+gI z6~hMc2cyj~USe+JLK$09{xUQ>No&&>qGE>_%MZiyR~yE|Z12PNf}u5Ub|a>qy+`oHwcyvAjk!j>4Cj%n7t7O2H3 za|aij*zmLTS-Ym{oo5BVA{e_EU7s(|AKpB2 z4um+pW`7vn9g(-2z9uSB6FeaV&wAVK7&>kGnOvY9dPz5GAY3YrC($j{)70S0u%#cq zHy{ON0Vr|2lv^2VdS>qWmxq zKCy9Ebp6}5)tP!6MItgF%|eRJ+xVSIce5mE*1c|wuYh>7L{Qc)EsIuu<#n@=e3dAo z4_G#6yYnivj{ae7foPy~)P?7IcbV}q^f^zlIhDvF{at{N_4O7+L})1aFOT%=lmtTh zar00@<#b^jF9|X1EO#`s_?77SqupzhgJ~xppXu#wTKXkcY|^IA!Jbd?9~bm_Qfb4- zR-rog?w1Fz;DE~9!K!Zw4q_U%nnYlaXif`hN5iQHJtR(8l_eV{bhdFW>z| za~r>SB{aj%(Pc$$P>R;fp_n($)bsGK`T6qPEDE`kmfpT1hVCjY4Q!TFzdw1j&brYo z+1xHY#4Uy?ovG&vWC1|(x167zd-H1apj092vc^%8wf=(*fw}!ly?O#5f7pSBW^<|D zxhX-P0b{98b&d5fKc$XNw-Jx(T?)q|t)1?h!>`A`tZ0AXQW1?$KQee%3ZW|SgCYN- zH03=xL&UL!{7mWipFl^+Uf+#~hlY;IW6P(I{(+s>Q(`!ZSz;nC9}U1Zp`Pz3_Z!w- zJ1vGkeWvBWpVqm1nbw=PZ0(R$C6c-s+>ntlm7~T|8_6!Y-6~<3l9(NC-IMyQo46p$ zo#?LZajo}<&e*z!@hKqW_sFWJ?3q9Apk&!!>Qiq-UkutCX zxOU8aEpz{YE2;x;?s&#G58}J+3<(mfW#gN15HT#Fo;c%DktJwu)9ZDjJvU$A{951@ zE{gO3Kr^LB*TbVRSt7aqIPtR}n#|@02}72qn6`#tJyq>0olhSwcIWd)&iv%XB)0mS z*Lr=n`YAKhGn6q6&4%))=ca3?O>&GOX0ZoOS&i&^)OP{`hT9V&tL3Giz$JW&j#Ip~ z?C0aFzUE#@qvlB~kE>UX3tiW`GJ11`{q$YyO~_<;Ph`ynjD}kMfiV8Mz5l!f|RaqG3;$HvpT(j@4X@)P#@EW1R zlOUd?S0Qt&#M8(qk0)>LlK--X#mkiV+4&)d#L$;}YyQzbkJI+VmYJ8sywe*!?h*!3 z>RNIbwe1x3;V=DIX(27y=l7lXbE9}Sn4E?$uih4{4$27fe0AV*pk}gs1Gp3TBmB+X z`Od>*u5R{9*+bSh!P^dEx(NP?b?)#bc{lSn+i{+jw!~Q@+pc44H(Mf^wX;z(nFgq; zQPRX~Iqu@V=ZS@REb-Y^C%)2tpL{pbx$hu6 zxU03Kc-B=$d)9Al2{rM2lNYu~j z^8&b&&N=r$P{xGP)m>-lo!{uGdRks;EJVvP#)bRwGr~Em05RCp1R&tGh=eOI_%uP; z^<&Pru8XprezS!>FD$cR(Tm$^Id$ll?BdrIrtUfG)VYLq9$b6NYZpVSXRXd)?tLEQ zt9y!Kc3)do@muIjw`z#HT82dE9B8#O_O^DH4+LqT3wbDqUb<`1pv8Bnm`lc|5G@j26D zPVv*k%%I+jj#|=}dyF4vysNULo(GwE?A~U-z%lc@(Ki)Eu63TRFVoMyG_6}iv*&m% z8*m|md*#i`#9NC%>hjIKk?i4CGz)nqSa&Pc~5Ix%L7B}oxZk$ z(*2tg$ETx%mcw6sC!P{E+;Ui+x-!!HK|-RVUi~{p-=OR5tdUqT4Hq`>I)+cqThtkU zVb;d6A=Y9TF>_lpKO#TmhL7X=h0&cdz#*WQM-2)Fw~BfXlR}cfcgQcfxd_W2#-__i z?q1abn>9}?3VtJ4q5)n%+++Iea-^BDwVYrF(lEBSopnOp`;)&JO(s)#6_CDft5VeJ zZ!>f0+pFqzkH_*$%F%79YgY@vJAtDPH@Xu$gaqe<7hb(w2-zk!>70*>WW&Y9pXGbi z=$P^0M=}2ADQwLXy|Y~?&G`mAf|GG!Uw(z(#tK(RkZa$_nA5~?zIl9Y&R#|Lx!VhD zBIPM-L86IkWa(7O$57?ZV-L}dn`N-}%_!c$znvs|$i%^81$#1Jcssq-J}XMFA;N=? z3e}$4ywh3b5pVh=hjA1uWV2#Fg=+-Vi}G#NW)P2VPYy>+BRr^4ybiCo`761=3Km-o zyA96PImFexRK*a+_@XRRR$rvGbA)&QURr#ah(d0J?#kB3IG>EumyfBY2X{OA8t&N| zc%J@K`uWAfPWP~36_lr?4MaR-{MivD-uF?@I%3}KwkfDr-7cJ(YS-`etLzh0=ml4~ z^)8zTOHFEvtNzlc+$%CqKK3-Xs3_XKSyUs|Cuv91$oNL<-VdFJQS+39>NI6>3$w*k z;owEp(AwE<&jD7?%fzj9Ze1&;osqPPGb2&_d=3{G8~k^Pk%cU9PF!{9alY9zwPs=7 zy+4|t{V)i`gdgSS=A$(ydyx6*H~9E%+xr715IsEG^|JQOR^MOYLl$SeR%9ph9*f-4 z2XF~4lih5rg-+BBtgp4(%E{jQEEi76jN8=HYAV_{V#qfHTF*RK|LYOLenvWB)epOK z{3>^*P`j6kC^Kv|-Ro{Juic-D0gYcb^{>zaO*MX-(T<%T;A!yDcU@RaK44a<#Cp5V z_Cw3K+u{usI?t^($;^At-Fr~io);K-VgLTs!B2dEdbL|Ci{IVe#!>H^>y?{!^RA9# z63-&c_vH84SEugffAy8_w3B+Lay&FFVQag+?XEMan z*5v6c^I~YXC5Ik7okOsFdsEWk9!X8xvntWp@HR#B!aB1s4rs)Nu6L;@*_!rGLE|m4W=7B8t=Qwc41)HeXQN^lLbKCkWM8xr* z)w>zJ+u9;m%5?+G!j8U-*uQsHmvg1aVOZ&2sjQ~k)jkIuf1ix5iLS=b^^a?mk$c*A zo>~&cmnIh>aUE^x12*K;nI9vQd-X#ZvT>4cT?B%jzb3q;J4z<*T^cG~P?<74_Np|{ z*!qSCYia>JG#9ZaQTVv`?2AdV=UdkXfa%%t`aHe+S7i9r1W#Sp=Z#3SERsZ@ z&bZW~A>#?{ce8)-_0EG|cYBmB+h|`0UBdlcE;)jnrEPOIhv37PTePYGBMM>gTJo1G zVPMbeMSUF?O8q3fgoR)S$craDX@k{QRMY>wd8IG$!rELE{+1_4;!nL0^!PgIWFFR@_$bO% zeUwAMDPo}|>{d%0a|GxKr(+zL0vtIO*D}_PZ)2W%tun#_7p0Cj%6lyGYu|_iblzgR|YT}jl z>95r6TCv7cZ2eYS{#HI(s=nj-dm|?bgP|_*!KY1HXrAIscZWZ6iP3xH<03cA#saz2 zT$m?h7*_Eu^sH~NgT?)5J0F8_51FxVQGs^l#o&X(i&YH&=pWd#N`R+Og4gR42fSEHnPxTL$qoLZ$d^tle-Xc`HYiC$qEBsLEyF^oXbz@uU@<$n{ zx>_@H(YH7MKsDrGuCE|q<4A^qRsL#qrH3u`V?G0H!6p6uSu-XoQB~6vHV`R)+sIE~ z!rkDBML(wp?(oyy;=5eGfMW3On%mZD`R!6uiu8xy=W#qi-9^548gm}iTUPLs{+VgvWBJ680?PbFO8&3!df(W@@g)*@`$6#l12sYIff#v9m( znwm_?JoBPxSRvNC;Wr(^y>EgPj=iv43BbA3q{TLz({}h0?h9=MoeoLx(=aaW%P}Q* zAibZIijH5HcZnhl97GA(=T=m)CTvV+f_`-CvC+b&Et%PLzZo0*Mm6lkGQW!)?WYBA z!FEZUq3i9>iB(_MZo#g5+~;~Qr898jn|y~7^87E8OM&4ZlBEK#!F`2!SxWWgkdRg_ zo$EpBiLILf(dpS{LH$oIS%Pf^RZh~CGLy2=2@UOxd0rYD_oF^|yzP}ZRko6}O!%Jun~iC%iGrIgADuFv zzrMwP<~ztRJoAJ%XxKB#eQqh7h%cJ4*!OVleNn^{6OF=Q_1u^MXvl+Um zP-vrmw}dUEbG@NZBc*8R>u0BQ#oGBPr_=A|M!BIUjy~zQ-OBZqoQIUsg#IR4Z)zUen{u(|NI&GoL@=e`b zM{D=|iJm8%PAA5cnVJ{z*JmbsMx_6^&X(MMa+Fp0&eyJk!Pw1q+u{!Z;18~X)SS$7 zcYLwWmB`KB&~_`oX>-r_7Q2?vu|ky%tI?gTx60NpC54&n%voc@JPhG?==>k=gV14j zyVVOW($)KNEw{|MDwEC&OqkVGxl>|?_JA3K0GD=^cr{Z&RK68$U2#p&n!G!__mjA zO{GW~6t|7c`%zE@@{Oe!$he&H#w*+7O(Z#!<>{ZmSF?vjoGRDvB!307K4iB1g${DRu>RWBq)_RqZzL$6apAOu z*k{;LISI=MT{|Gtin$-($UpFw^D0)ZTWy+{ERrvUQz_Wquy03<;Qyst+k;8INNEz%FZUgk&? z+Whc)kOJ`euMHECaPz;V|KkzJwJH4Xyc5v>V~+p#Ni`fkAp*$q7qDBCfWm=i`WBGC zz5d_w-@eM&|CZgp%E`BG-U9M`|5Yaa^9OH0#sTu*uKzDG_J5HhZj!#{&j<3j#Y885 zE$i#{wRRf#*neFCzEy$!7$^bs1IQQT^|k&$8rb5VfIw$9K%hg#|8ovo2?DidgFuE; z|8vgz5eTH61p>8<{?EDpc_%k9B+P%^P6;?FMn-}_vU(6m69oe4kAXnn1pU`F;P8KW zHgn+8G2pr4fX{VMGzbqe2l<0yK@lK3Kym^a)e+?4iTK{n%pJI^b!K$c>cM30{rk-> zO8-i@`1X-zcT3FkmYC^Fh?Saz+6t7}ON8CMQQWBoZJuutiZqU;4t{Vvg@hDDH&0C& zCOk|LEk|BJWY|r$1WwbMg-hJ9Ntf^Ld^Zi;qUBV@h{j%v5dugAVeZ6VOQ}d;q^@>p zZ#i4qyll1hr&{~BWG~C*eD!M6e-2xUraC&qtgwoE1$PJxatC5PxvbB|LKJsEOP?%u zciFCONfq6G>np6)n2vv4Y}aG0jSozpe&%d4F@JTbk+R|bx*r`{wD&eE+Lu;ntoZxS znA|$NFA+VM3f0d)cnQ0mElwXDkfjw+x6V4fys3LQ#9E773s+xl2ywgiCMvhwN_sKq@B~(rrQz}DZS?A* z{|doZsA)wXk2itWyYH7r9WNuFQ;y=u(msl_a@8!pvHUfIY)Nv6!!uPO`!_LI* z(uHWf3Mm|6QLFGuZD*K6V7Y~L#QX_;9%wP# zPsJDF`id4BO}31PEDLpgE75@KL0I%YPJLy7x6ms) z0Nu!`(s+qAyE_WgU(6;-ZOLD4!8E#jGoe zM(-_AIWQwTTSYJ{l#lCp>zAo* zn&=CAKWA*OmZm*>C39m;>wxJ4Bs={jV{@qo4_8^aJQej5pEJ;zUlPUg$+tluM|3Cj zrEK~frkdOL!*Ev_(Aixl5%U(P~T%FdYELdN3#X32u z-KBeH;ItN<4r%-~mI?N@LO^_MChkY|!ZJT1PcKe9=A=E^Xb!C|OK5gLF?}?Y*cw?% zJhkW}KfWh5Ma;vGf{m$$fj;^Z_p_DDw$^9yVcV&KR9Potgx`1`1sPS^4$Ro{kd&oFpE7ur4OQ&g z+j|=+ZAq(IYTJwNVLPA@lqknQA1_`t-Fvg|q6_=V&LaFQ7(0>_HG-h1)eSUPxY@~n zWZ?Hr8QTZFS^UIGL|K#*&)OnE(Vv&sVy+?8B3I{2yRx7qHKFfE-onAyYxVyPD*LivivAt}FzQFZhdrDMPc`h}j*NFwG z!=rP2CTL2k{-tLu$J-Y^yGcht6@Rbbyy9B82lJ8&{g~gg;vxFsurQ z5Etk(F;m6C1V2%D^#iYM=;Lr#?PoqIg!b0_DGEISb7X<3;$Wex@XEC4GMBb{V>MNl z#6r;VJOWT5)iP`Q9uVn4aNh=Q9u?|>3-GoQqN&+YY#VA~_3kQDh!1m*T%UBa1KS9= z6;uv_h|0-Pwe~RO4NP54dU>hczG#K_$kWQ(>Zux$4H1wUB3O2eklvl+!U=)63yBcG zP(+##hJ&d)=viIMEkNCWrepJNu6-}{4Lv71O7mopCbWX8T&7G(L^PD`m99jcbHG+2 z!4M%D7+I0d*1LI_3=@KqUVw#zM#2#r1Vk8b7ZY_Q!KDB(VT^?mNp?kod6D*~789G{ z`T7Ag#G8mB5|*k9jSXM%UvXk#jYo}PqB>_7T7ahGQ8p99uE0#O<4N1?ZHL+b)$y5d znj*R2NN2b?ufz=ol#M6c1|YjJiq5IyAdz5wNb^D>ao@Odx3{;sdV)=NW;hr42%XYl zdVMd!Uf~%!gE51>_xaOrwXWWyKOQGE(=Dh8<631K4k6UN9M(ia1lNv^4;1#I1q7Jn zmv_A&eubvmA?sq~ZS!fzUXop1_QzgVCYsn#S%+tE5Y(t1cI?ir@O{OYOra^&y+M55 z$+*DB+uPf&6hVsLexq>n2*kcT;qkfP=^G6UXBs`51GElxw|%7}V0TBeYPX@$l<5E! zVxj63KAJvGU~p}1ja5|i!qpdyFM$QS8&8}ApN^x61wxuIQ&-rFbq!szJ+=}l(kjaq z2Q#Uh9Gj;MoAv9bhL~y^8XCnOPE=C@4NM(qMk0|b$T0%!Ix$el7SfoV!8M|oeI;5# zg1x;h5;%o^I?ijpn36nJtnsoKbV%(`y_PBqT&D&mVpvQFHH8>xRf`s2duep#vP9%y z*MvRu(y$<#1N5zYB$2@pg3&>8!n^}j&oE=`)}L7=2`Fm!>4LiPYT%t0XDe%hVd=BU zX=AT?WuokCju1UT7}+$KJ|$F9F;r!J%iF97M?nO=XklQG=5u(Jk3iKMs9$AgSS}|m zW3xa+an@wuVGQT%69nTGlL|}*#?a8q4|GXk>F<&YwZPN>z8X~iwmOiADvQEGkwO~K z{=xxQ=E1J%G&I5yS~ke>0eZ*vK9b!ejvnZw;oa+@m}QfH&)X0!R2@bG{Z{yf8GIBq zfhIEWPy`c67idrI5t`^6u%H=Gj~+*r=O``UBA|Eg>IA427oYJ(Qk99@xti*M6U{kw zK&zl25|W(|Kf9wKT#3O3((zCU4(&Ywj3P}zlv-qDhEb_Ug@uBhqJ{MZb$vl5K9I<& zxjF&Uq=AL~Xkrgri^y#eL`dE3cSn}UP!R__ffhQ!L@JspIYx$&<`|VoJyiuKTLIGs z;SeYwU7{y4Aw<{EmO8O3Fi1ih13H$a?&;*|e;bI#(ex-yO`3dKMFoik0bNL{6n(ts zzBAWeBGW$VwDJZ9B^txa6IfuuLOW6(1MT4StpnqXMU6rUXmwGvO(s1%P%S*eDC6#3 z*3bD1WeMb9uc<12r5p z9QYu9aq&%A-QlfXiR9;gH#8Fhrb@Br=#lWF!$vj&G?5H95hR*y?G0Y9Px9_VgY&^< zQM5YG^%+x|5|ZYhfyu%6`Mo@J{(T_%;;6jKEX^ofRf$+or>0I32ZJGN)A5lsFeOh} zz_u$=pGZfCaj%cT=*ogjpj+Z;b=*duv)~RDL*gNgh{~75^dE0ZQqKLkvbvt0w($23 zZ&+OU?v3&~6m3(*2&giaC0uL|XBDO#Oi0`wlV32Ycm_U@f;Tq)#E-BtFtj#oivMS? zZ~C`VifD(|eP_hXb7G;N4FM)6_1%$Op_3De2-Kg2L<;7o9ruS3XJL(^9#R8v7ZfnK zV4JfOy$RyW^rhgjeqg*)sdyGdC~Jf8n2qj~VW7FE`J{)hy1ez*2d(e+ztI>%8V4*KoHpsp z?c5q3-O0YjrVfhZxpop+i}R+5G1jPu4H1&;($~u52b(HiN4$_-;p5}8#G0kOiuN%+ zta-?Rx;1+V6ubX@w^(#Anwb|F0_ZG+sj~CqGe>C^bx~|O9)ki4u-wA^;a}k`SJtC5 z9FIokWGShr{{AyWf0;RUr-?lD#a(W4APYL!ahKJ8(%x1lX_qcr9zXHy=N|?h1T@_G z&y$k_&;DtBT<@K-Zig1nl~JFFtOxE(H;^~F@07?totoZoRM({W_Gz3trJ--GVNqEI zzpIqbjS6iM9;;fKl<%a=i}vQW5`shR@|lRbWv{tN3~MH6LRAn9Btlo&Ok}RGnTT;N zKhaTKp8kBW>#gt1c3+yL{n7Zf*1`M*8zZ8>>Rpc|B?of@^{K~j7g(cwU;eqf&pyH; z?w*Ea|4$s@L@NI^{0YXu;wq7`p#wp|eMdS}S!l|}&Gd)z&ll&@Ltx8OC%UjOrzb%&Db7Fkv%-*i2*d4zV6Xc!)D zj?wc{zP6_p>51drq(M#wL;1lV9p zuY_|2> zW-#%`<>KtCJo5=0l$U(gt;K8U%nDYCB8IO8<%L%!d77_nRZHKub;cblw^p+#2H_qS zXfB4M=UO+%VpkrdGs8M5_p3!K@U1%W`MjBXA272cvs9a+041((FFG_Sh<5DS1<>8r zeXc>xyw~olrUZYzR*_Whm zx0n95(ss3u&z=!sNWsDr)LrySvGv`QuD_P4<(inyf@hBExJ$N?k(oy` zU$N`M(e$8lNbLf3y%&ufCWZB<@wFTDscUPp>Q)S@rW{aj%O#z|@#Gq6LZKjG z?z`(PwDOgUMj8E68jUj>59}Rv{G6^G)_?iS zbYxC(>uo?6mpL_-wf10F*n}iE2CRU>N<1sX?zD&ueb2Id+tYDdz~{{UM9zMKR(z40M^Dlt&N2KCa@%p4?(m zckQ0vHIHA?-1%nZxA0>>Ys`xmP+gL(ZkWZPQ+z9n^(W+a;g~4!R7|mms7ztbJN=OPr8Vd`yV@X4q)ds>cEq9ZEOuPk;45bXnTr7LoI{kp^6vef_@1gWZ zXZ>_S6Sc#rDKPmU^K4Vfgzui*plZyTpGLX~w?h`Ht6K@R_dn}p<#B|U>Eap@3tXmV znRQGgyB7tuf!?PF&Do_#M2}5jT!eEQ#D(|7nC=<{MNCGPN4P50zmJVXRvhzf6rQHe zEyff#Gv~yI?;Z30g}<0czZS5{Qt~h3c8>g99(7$9+8OItIJfgG{`2bE=S~k*oQa;f zwZm6^QXC(JAT-K`_x{Qhn=bALYfBY~QBZJQ@d6tOztqYU>QS;!EVgN#lvG=f+?h2N z#z2$R5bSAp+rsYM(E}4Dud}2xs(_Y^q~o!@xLZMK`%a7*;L+#?mBntCpeLb5;&_H? zL9v9}3_&}+UO>ZL&{N?t*M(z`X3=MhU&$Vxe{f~((}BDo)&EgMCI?Z6hw7`BDXZVR zlagw0Srm{}yaiqJ)>q=%vyz|^q0E)Q{wfEgj7^DSNK5L{&91u&uLgEI57l>zM)x=# z;fB0CE_DD{?N|_)&&c}IZSi(CUwd^5SV2kJ!DP-DP{&E8n0JiY?cWDn_rH*W!8Q<>#nxmD>sWa=)KJP~3ega1R3IduX@;IhdyPnQ zvE-_Y7v?Tu3`m8LQPhRSm2VfTP&LQlTiJ;>Osil$hi`Hl6IyGnUxFTI`y2jv6ut8V zs7;hp|A%_nN;p|VdRXUVN9@TWf$N1P-d51N#30maiU{I9^}6ANcqiJH-ZxDVb^UU- zdp;plOV8`QrFUuDU^8_WFlVUc>rVwm4Q}?N&_?j%>|>&zjv2r&HG(a+bckYd$--w7 zi>BaQP3cAAWxZRY0e>VOtd1Uc(4iqzUn&dGNMaz^NB=3lb)#S}I;E_Y{BV$Ja+Q{Z zgl2`%`z%KVJZ4td zad9!8wTxlYLn?%tjEhQ?5cH-4N@#}=a5-8ErR%k3(XGA<_|g6M@h8&dPX_gfYC|?^ zV@_-h6kxZYsE?=9{#K;E9jnBZq;@QIfxU3EP6koBM?#not5Rku(!MT|lj; zb|cc{-l6+W4F_w}rV7A{W@LLEhw>%@CVKIB)U1$FzWq)t))KTwiS9xKaL8hX1W%ez zG#8Mx)Zt6yf=3~Rnx*S;NWw~P=;!4kS@S{PgK3bOg9D)XKjNO2P{&~~&4MAvt-U`t zer^rCFv6I4Z8yl_t>0HGi4aCzG&LZbI$DsUO%PlygUYRyhv(Lzrnld?yDyw?)e^pH z$nsYu5_nF${$>Qir(^#g>!cUOyE2l=DqJGIu*w3wkbUb|RG~h1kbRmy-S7~#KD$(L zcDr;fZT`x^_WZd&mwKi^8hQGsMgxUBT!Bx{Qsa`{{OCgP>MWJ>$aZ_x4l*R3i$N8) zKuDphCy^C`*%Nuvn~xs~)uI*L)?>_WE^F6p{&`y6kf>HV5hP&FR3$v+7n6h2E3&I? zA&m(&l;tUL>M9XysY?GzA!=WS-H~Y1OwPg9`aM9-~`Mz^pH#UPo zP3o_fKm@c3A;H*b>O}fvIE#1A{U{}AyXS3#rvp@wKyMD1vwt2!32}g`gR_2?HZ>xr zy!((xllKOTxYE0|w?~NXtABztm?no1ewq18srOU@0V{JMEjo40P}a7_sCuxl6KYMp z*xY-oiBugc9lPIeMkmK>*+C4CS-$B=?ZCu(MQhWU4s+1v&2J$(n5o1IlyxhH_)d zVy(}onuSC#=W6* zM@l?*`}Xgr&wu7L{-$iBVzFq!d@GxM8yh$Q8xGrcTdF!a$fSmKUQ$1KL4c;Fn3k7M zM2&xQ*FPy#cx8P;t@BHIn$uscms1!bSWCRJc@OAp@v-Rn8?>c4h9~A1~Ug|xUbt3tyN+(O_)}~Cy!GXX7>KE-XvAt{{2DL=TrCJo=6I!Td(z% zDt91Pbkr%wEhXJGV`Gn0lR1a{{rt?etrthgn0;PCN>ke6MsIueM#jgW zlZ~RCyBrvcsm{(kN6)@EsZ5N*VhnJ~A6yAF_0OQjc`GF^O|lKVH_NW*JNP}HrHkG6 zdAoamnvasJ202>r%K|%h8kMQuK}{)yQjRrwQ$togCpj|-u#ZDaZDUNDWX7MWd@r$- zuJ0wRtYaJ!#*l*>r=E8^+RWz@8frc0N16qvt%ef43rhfle?=DP>H2&yM;!0EYpaPPHP#fat2@$g04hv+%#{+dJ9Ba`h8EM-y$g}i$mUWg6 z5DZvs3uS6S1{1%G?~RN4QqL)2OsEgy8mS>U**aMqrVhCqeYMX^RmrKbXmcsvls9u| z#v`dLQPDcLe7wJxz4v}+t}$fIX0gr7^coUw*MXeRqaUF`t|Chpu&7oJ5~m9!itksa zbTG_*i~%WJQnR)e==kv*Eb3bYWO&2IA4N4=f$BuAJ@GcW`^LjLJ0!hNd#Mvrw7tYO7fe@| ziye`3c7qQ%N8z^D=Q^X^i$UDd9Hoic{f%VKCH`hUYCu<$v&`@U}0wDlAcF2nG?WNmj zZJsKg+`_GE#^( zHK0bZDwq)WO3B_IdpK9ZSNGHS7GQNp5b>zfL|tktH6^D4uBj=V z@yr2Xa;n{M*g%I$W`*$bo#g#Yvtcs-90@@UYZH+Dtw;!PLS;aGxqw{$ttx4?BQ<#+ zq*iI2VB=wEo~7erWSsfcBLbmvm_mDjS^PN^WJQ>n7~%XPXu=yDpwGawnd}QA#M?aV zYj%nMR8;!**8buB{ezZMVVj(7c1&2ywu}=Kb_a06FAGGQoB`q0nCQ1xgP$>4Ca0b- zrv5$k>*P-^KeUsz`u<-K+@t}e{m#stO4tnu+d8ro7{b)-`$nqO3DruYz z?$E(qv*aB=u#%gkCtH^{kp9#DPrHBF*(Ltt_3`g@b#--=Je8DiRKcvMt7~&(V?!(@ zh5-U+MXot zx=PaPmh>ZJu4N{k)mg;6x+s<%^k{dM1dTui%`@v|0(6<1ods2F%6gOtc!2{<%Zp#6 z6s-8zeKo`FW3q?hrv_BPfU(%B*WiL=3#es3Mj%UtTVW9RM&_M9j z3&m^hGL^M1g5Bhmw43|}=hxHXt{EU6=@`&#vu2R8ReZEP>c&M%h`K=A#;*fBf#b|1 zb1$z#r5DtvILpPrn>rTv->#(tiE2aEb(B_hnBwHSOTh$kA<&gYDrs| z&8H0vPTx#oQJ6F3$LY1Yy>>~uV1y18K}8bDTuMmRz@2ZrDaQq=<>k`D)CdAA2?guu zoDp}KV;%x_yx>NyB3)=Vc$}runDt^xxClsP=ZuWQr?hlyzbTBC)vu| z{KYO+3XTB=D|Li(Z3n@a@$;&f)^Lnk=AC46NG~& z8CyB}9^q$NPkkU9y+Fuv8-0c!Fa3w9=rwEnjh$rE=zHkex{G^zb&x>nX733O@cU}W ztjH{mkzWX7%Eh_sZ2_SToY;=)@`xHh9>ct=f8P#4M3r#wqyu)x0-O0u_L6JXWX$ZG z9X0#-uFlV`fDLgt*+RmTRe!ZBJi98za6$b|`f@wN%}yG$o%YpQ5Tvfr#J*pRh3#)$ zywu?hN45_>-_Rv#v#!4;MzHKPO?l215_iEx;r+$SG#7nyb4+2?Au7n2M<&4Rm^yJ;uPm{j~;4% z^0LFNpw$4_L%mIGeTZSEIA-GUwxNq;Rvga^HctU3sI(Wv9MmS$d@!EdO7!F{OevonG#@;%wW&*}iO60wSUQ6;?fZs5o&C09z;2MAc@eq& zt=7cwH^N&%^LhALcJE?Wrt_>28epA-YNZ>N@4mk7IG;}yPgAG~tK=7@`0dq9@v;7P z6Vc(jiNsmIUp5Nv*GmR&l%)KU_~F|>KDNzVqulv6VQ8WEwe~8zOV?5|OW%9nu)(}q zSh9OwslddiLTD*HO0gNG%;qzzo9d>WplIpOOm&~uO(Vn1w?3L&NfnBg?XP>l&cgI&woet4OCcy0pf|B#XFmK;0*EM?KDN9!8oPcoA7^ILnT! zSHV)3q?`&!Qp&7CQkW5+ble3$X^7%V^8mzM1t- znahO>>Og+3Z{f+sV;%Reb`Z)Rh#hMMNS>>>^VqfjeN_@Mm%YboCOJ%j;J?-(me3pB z!8Bz;kXcA5Qafrz<`@hEylz4#6H6A6TnnpYW@UfW$qNzej^Ri{5~emOuEcx`&&o>t ziJ4@vm2+gV3qtKI0A%}XyBb6BkE2*glNVLrpy?dHLShtY<^(nYScO^^FncoHC>En!ca(E z&-1yCNL#~0kIr%XFBlvB&9{7)beX9&2pOk!hAp4U(8;L__p-W+d${oBgHsNC(1iQv6F3i7yUT5QP>ay#>DYevK0dugew z>F6n{DweW`+|;6afHi91_4LM{SN;~y26<&>nCE0=EPq2L@XwW*M>!eDDo%WD(J|zY zO1ukHKEzxaJQlucLFX*C&3KPU!^=~&E43e6*yh*-<|(Nb7oX^`Sd+YAPnTLC=??~@ zSX#~6o-|wDKNPGjN>Jvur{=|EH8#=WG(N&o;@=n|Z?g)29Y$GBS*|7?3pm#@#xeEN?518Dqt63q7aQ4=e zd_BSAkRK_ty3{)8xQBT-J2o8ET3wD`X%5e#?tVkfZj^r-e59Mf{{eSRhs5?5W_nnS z$@cFj5?iaS2#>`FVOuALUMcyN4xK2@fIKw!_gZ?D1(7m)y$WZM!bQMF38Bg-2R(TI z`tIJW(mU;}?{#n|$mo&?FyNZGD4TR`mbq`+-_Zc+7o&t&UUkNhmzRxNxW#-7+-}j7 z!nuT2Jy?_L)%JbAS%&b_DHTMUYnuPI4n(N%CF`WH((DsOK%^>9`w2b5VcJjWu|mZa zRSQ+~JjkGUt|3vqr+p>!K?LNjVHN`fZAFO5+4 zFUzI!*xEj`FTXwy3K}nEw99zcQrDBa6#3DQ&Am#?e(|`pwKpoCkZ;Rh$={K4qbr4k zdPIlwf%|z%vXa-a7Ymou7X}Z$9F2`x%;F!*wINf%&dIh$ex&sdjg+S;Q__{w zy1!5!IX8-~AIG;wE#~0dHrBcpYjVzFGA(x10yk^-=J&;f&u?QM?%b&T)?1Hv!my-L zF5m6?SaUDcQ_t$IjzZ5)>%lXL#!CO4tFLnSGQ;l%F55j8^8Q{wy9RtBBS_wK`HmN{VC*bwcndbH|B^>>{3(uQj?j>aaD8a z_a5V8u)(B?*wpQcKO=$b%Bn+q)a$8z_jL8mZp}*()w2S z`%jGnT^?REc5vbFxfDX-x?_xvm3ee@#GzC5)%UxQo})RUvi>bi zv@)i(e!|(`>9T@eCaZG0R=(J@TJ9wHfyxL;h`u}(V{-oAiu~&OAD*4rw z6;+kR?}-7#N5TZFE6=Pk29 z{x%lnh8b7%?f2Sq)7c(22Xgsv`fhi~Q|O?I^yk^7Q&Z+1r5dPQoyhk}*4E5(+gshM zkF9&d#aGF8A_Smw}r`j;=qF4Im!9--)rD51YCVis?RNby?Y+!7Vk!f z5TzB$vLkZ0)%fcI_Qkr#P~HB98ty*77EdW zG$Cziir1e>CC84e{DwUL{Vb4th$CuFu|7^Z%BJ zt@KHVgqB66c9oTT7X}guBbvsv%OCH@l;N>}UxuH^5;`$B)C8awa|8f}H+2|y)KGwJ zUYhG2qk+Ky*sCzT-OWW)eO-YQg#lDQ4J;-w-_2f~VPecU2bCR#b%d zqU)kavFP>Lq#NgdDFtxmjw^clHZ~IArKcpsg|Fl@%cpx!RE=IB%vR9bSxw5;5Gy>=IokTI+Mp600$`xyaY6iMc1> zFqz?S+ex>U=}hsQ))Z#@mdhXe0KhfpVl6XV)>tK^t=ZALrgHlNk(Y&zP`bElPulPT zm4=@vzr1`Qh{(Mptoj%g_JSOoTW3Psz2jH4xzzqBCxsy;`}3S>$T;D-y`oW&B3IE=G5GQ%$&r|<>ztq zL}Vj+_ZIyWp&&=-=0a#*Fl&wLjBflap5PYz21I0Xs3Eij4CV!@RXkmQ7ljTFP6VQt z5))zorh%RMN@VI&=+;u=?vEby#~jGh5JCfVf;K3uUKwjXz4aE^c>XcQil}MKFlqK) zZ?9zT+(HVgE(V=%sEVjUJaslsbv1^rS93S>TGnEXnsZ;>n16S8@#0peYjXwNSp)!r z8io_-o=pJor~^ui8$53!ztiYRAEESsK2AVW$ObG5-V;X_9s%qv&IR-oCrqL@VSJT71_N4@xJSj+2+OcM1khiyt{c6 z06xUQt`ao?7+uR+{q!wl{T9))W8lEtet%!o=Gd{Iy!9ZVpDpB}iKeFrBXuhR)gYt{hl3}``(W49AW>}TGxcC_bC=cph|3T zyiUP0qL2{5I(i;8Wk#u4Z{E7|ASkx$ zS13eyfc)#a98fksTy_~8dmQoaP=_4XoO_PPel>9Y&GFcuH$U9Wf9!he-`*yFjy=|r zINo}H^UIj%&T`w_ZO>o5bN@Wkda&ABn>>AX&b}DnzQ^j3?D#azFXMTBTzn_&Xn@Rf+ zsWznPldo~gqJBstT2C>eQpLO^%a|I8fr@kmi@}!@Tx^hng6anVlh~)2lvi_9>wD^F~~%Pf77(f2YG0 z>s5V9}Xdx{Jsje=?czQ9W6B;cVB+6g<0WK3xS!;uee z#-orLP<^^{C3Qw5Yuouo9o+05viJIW`lquGy$#2B4plxjU?H}Lz1$J-G^$dPGxVnL zEleUi(@OxL&X6Jii`+b2`z8J0->ve+su2b6L%qM@U`8m1@%r;9!t?F!N%}&2VRm+Q zNuKldz&g$`5r9w1-8Whghq;=j7ZH8JGt`O!a3&J@ncp>?OlyKdraI2Ur(>XkUMDtK zpNcnv0JJbh=feEK-W9W(45vf>s_>&IFr5Q|2-?TS_Q>Su!6=`Lm)?_1aLNTig-kOe8o22ke2{27cVx_QI2&=qGY_35<)K`AlKXGq< zuX;2+r7@6J$#)X4Az*a@oA7*`5Rfz8_bwJjZ>cWJ#s?ynf?-q+U2I$KE=~VS+3eta zsQP`BdEPhxrR6UMH^i`zmD#}}V`>s=v&iAg9>aV%o!dV6;O%`r02OdqGI2yhsbd+C1ELgDqj1JS%xcJO;z ztQG1ykztV#6G(lA8kTPy_inO#jv23hei^_YN7+!sE40wz+FiM9S-v+WXa^Rodp?n+ z@6h@a_#RTo)D22q6k*LNps6_mMWFN9b$m1tA_OQB?q||B)Bgyl`Q%#u`N`_L0cx@T z6K4j#GI&~(@^%20l*&P_2Bfg|w&nYmzkJ>@DsP(Y8}`&w1(-Nq zeE>b=M)Nc1u-DqsRA=;@oq%0I9RTomRB@ZblYN!H_C|kvdfBM_)85JCLwA*&O88DR zDxTZ&mO!8mC4TT&Z$kp!RVF~{ zYYQh25z3iC>lKU^V__zTj%VcY>G&Qtazqe^1?{(*eQD3F-K^iTDM9EF7@P_Mz!;zs zr;`QUaW&;W!1M*F8+gRE7f2JEnDZHl^Rl(tcHm0v$>l{#X-+Xd5L?bXm2@PBo2ScO;$^(n0NBCBa zR4fWPhz3yKUpW)c@KEaD#}=*iqucdn@*cCq_{G|qJ7O;#a|QNzvk+}X#bcdm$^mC9 z?1nkxz+^5)3vdh|C@CX7?5f&7|CemEd)HtleXX(k^B-PI#Rvie<cm@Xiu!)S$FN z7+fw{+Q*{k&NN}L$O(#^N2lrQ|M;f%O(>Ak25oiKJ}L_r}4WP@}VEp){pZ3KxZB8CwKOddSg_PegV$Vke~OdUP1B|2~} zD_h(sNS!4$gxJ8YH-%#u+4uq>FjKZ6azAeFM$uz9mzH$C(zVdwG7g;&XRX;$#&0nz z3e_mi!0W>|*F`}lem_0wR6i47ZtGWsva-2{Ksb_GhXI;24%SLc>I)Mvdxi&Vfuk`Uia)+YTMvJ~ym(ma5}b z7X=F>X7L3VBfOSUlPZJj2YR#eqF}}_;C)1#-KY8#dsJKjNRF;e2w~Q^Q()P^g?k^h zy=wsOhfTgA7NFEIi4aNRjc$vCS2G0k(GJbwcgBoy7|Mof0U4FH*&zUvu-PX^gSIqt ztX!P@4k@{0c&ReSp;t-Z1h;iUgtpW>V;oTkLk!Jlg7;g@_V|9wq87K;ys}CI`qY_i zBe~Frlet}&dfXGc_GFddoeF&VdOyFIzjiuV%SK1B03gpep?w_svE0VDW0KvEE>N(( zfM5iD%7?+0cV5fRxFU7~;ngSo%smt0j8RsC;)MRp$IckWcrO}(sN>`a$D9a8NvYz* zgpu<3-=d3xofZAIGy=T^JSUt}KW`eaxD#+##z4PuC2=Ag3Yd-6OUZ9F6T~_C@Nu1q zVm!_fmG5>bwBc>+WXUcT<5-EvS(l=Uj|%nw36CLvF+Lt}|wgH^$>($J|_OiYEHfk~M-r zT+3H3D`UJzcpki8sZ6r*=P_5Xm5sN+9PGWcPdc`8I(LzDRM#7k0}up_l=O+Mo4=~1 zW?ATaS2T^A_kCto=Z>dcw{-jYq!Xd$D9m`V%j&~K!3K6C53fV95bF5c^EqiR`cGoj z{OnEJp(DmP9$`$!+h^!p5%G4oCh3w&rA7hO^WM_o!98$L2EFfrA!!L-QOy#@tXM4n zM_g^Q)LxOmUUGFT^3L6Ut_1@A6N33)z95j!66m4A--{J)Dx7yT{K@-?#bZlrqZ_Io zDr){QtDUI_8xpPdZ=28Ge4rjP=YJ3;JKGl9M@&jZPt^FiZ5_qP45^qKUj^cQlYzZCYGcGl*)M-J~bVn#o8ugJfoWTyY^ z;Kjk(`oe;*+;;c!y!?q=+P#wgIsI38m3-lY?RL>d*p|Fze)S;3UAB{vKCo$jps?Gw zYQ`IR-#w5PL>6oVel*5j=Yf2Ed|SR#W7~DP$4pXtzuR$tYs-Dlezoy^oK(L2qwlWm zy4mJA&vg5P)C1ygsh^Fn%PGGZyz6dAZ#o#=WgI+RwEuKRuZdy-WT` z{yX3xm&>(Zq{~C!%VWDgr%(?X#$;P`H!%wh@#2Ga;0>`c2J3gr)<=F(m!j<*Qyf{f*xeVhvm~uOM&PbaS@*!Sw=hi zVyduUi(LU*pL}1FvfA78#?hD?%urhu>_>omG1d(hQ`J`=1$~%98BoR0&+wy!Ku~rs z?7>O7jl6BaKC--asPAWPvlOtnp}arI8!lQ;z?OmyXqNMIH{fl;L6| z5y{LMH#Tiv)Kl0^;F#nOY+_$#XYewLI1SP;No%hUrO^Cj1YH}RaVYFDoom)po4FF3xo31R2Fc#3{IA@5KBKnl-y+h0kI-WUOkNhhL zjMU_cDXPt?&-(Y2!#?kQHorviysoVQwh9cErA(KWi>@q|XdNL#;icmQc6U8KmHbV2-H$oMpBh6V<&eMs{-%^77}1Kguu4B?AqRBj zR2$fHz5kUPYL-N&oL6($IEPZlq8L!$8KGtJ`U^;M#Jn;A*5o>eq+|KYk4lB|;XnOs zDNQH;J=K8muhjHB886^kiQLlLPYTW6hqaJNjOQN8h@FWq=0z>oRigxCRkGeHyd`YqJ|Kf)iqxI^{7ip& zD$4qw>_;$;`|ptvA6Ok@#KSb=7y-C{`vfs5mwSIbHz(&#xZ#k6IkaLdm>ykYl3(c` z{5F$AMv8mG<+W5C%Jxr~%^Rf?&cr+h$^P!5FMI}4 zrhjsGoS&vZ?1|^Dx=uzD)k$EN2iJ}0mnDlGpu$-Zib~Qc_Wn{5JV499gmTB)>!v{O zl%TGgcJdqOd<(YUz|$P0Ov4H8Z~~F>3p9$ zXY9$K`}(HxCjrQ;nw`c;YLbr2h1-7t#^X|p@&!aziC}|;JY#YZ32+IjOB^Q-KIAah zhGWEx;SU+BPM!G#rXECto1q!6Gsi!7Ep%f(u>z=uO1s3OtXBDNq05jE4KN3pa5|V% zVE-k}!jtdEuN&+;It2e5b?;GeApdyii`%4XX66RfY#y!Mf}J%Bklby1*>V$KTz8`R zO%)=yA1!CXQk|YEkMfZ*_1FV?mN7m6E6U}&-<-a3kNr!|+(2#xAK0cL{?DujaGBsv z0gar6lOT3OgTZ^>y#W6zOx<}fkyP$QArhl=pwYv<)}9ch#Hk}18#cW$FOd$mJrpay zljSSdYOd#FzrH~T(r|h44_V~6q|w{mIYylzeXLJs&ojgJy6KQQL_2u4^62_Od`$W1 z+gm47fr749QBr>l(_Lmo#u~VfxaByysoCVt7ysr>;fbzyGu?a-7INVj zZgImaZI{`b8gx$F+2Vb)Abc@q5c+6%KTZJ|4e3-B)EnALLoPXFDW z{N?uNtLbRiJggbN-W`AYE!0R?@KU;CFE-Cw(_6vATiyd_ zTJFnDU>M5x(}m0))l7m@X#wAcB{^~6z-APl4F44 z_2`5d-ZzBUMP8@+0rwg)$MH~a2S5qLd2Hnd%)&fM zm+}jWj*bRjf3pBq<`Jn~&~f2|mNOvh@x4jeI`ec4O$s#ximX3pr(2kh8a(BFXxblI zG2%HZwuI}wsUc4=`h-j0HH0cAU)lj;2~@Dom%8-hXCB);tuK>U%5)l;cc5Cc$E zmw4SP$M|*R*FVOmh&q(OJErL!_#scMZw3KUmUJH8{V$4Q7dayhw;Jz`Pw zmMw`i7Wsy4kW~x?x{g0kTSzlD5NoA2WjrW!4}X(yGZVwPnM_TvG>u<&)5sbDpqT6| z0PU9Nj{LK)WWz-~0zsS4gK!miZhkJkk`AJ2IGcR!7G@oCPXB%>Dwa|oS*}Af&FEJO zrpO$JfSxks`&H&4GZ7~M$_R9(!~W;|lexygF8`4UoLN}F?Wy;8j^v)naBc-jpsJ6e zg6Ok0mni6x_a%azE6|A;aAwfzAQQvO?jFOPM_PZ58G8kWd*Z8G8?jgVh!< zgGX^KLTh%}GD_OmA@!LC9!)0HzW<3!i!V$$en6E+~eq;G~RteO+F$=OkMVl%0gEWjB-(N zKAl+Waf3O7`-dHKXG9w*oOpH^GL{pZ6RS>AAXO7+-mo%ABX5bWacP_ym+=VklEZ0& zO``N=kkS>Kk~zv_s$D)inoiw)PIE1ta(4^YuepgtkFc1(ivXs@Ywxl=pV9rV!h!w6i}-)&w^J+&bld2d zI6gC>lfBM0rEt@`XK04x9WT6hcNQ_9enj0GdqbVOatr=12Z3a#iQ-zg;RP~jGPR6LC;`H=D$M{Bg-mz_#Z1K$tRsec@>AviM=`uKN zb9E=Tnz!u$u~@c&=uR0sPp(gjVlo*v#S7p-5XNzs%Xc6uisRGP?ECY&8%hicVet+E ze^oB@2N&z1oM|1MZ{4!U(3LZrM+~^5zvjr9C)n>hzAZ2?A84zq<}npFeT0>yxp7pc z;dv4-Y}T)9I-|Uo|KRig!wLWT9`Cm9GWUOgbGrsq6&8tFZ8;@0-~a?}>ohZ-*Pi}B zD=VF4KGj9bZRmVU0&uS*X>VkzVP7>J6W+ia-TI(*R$ySf*bk%V@bE5D0Fr9no_;3X z&Gpgn&FUlmAr~zNx>!G@kYkCpIuQ)9=JZ4-iqpG{xs5L#??qT=^5ZIhQhfJQh95}; z#=VkacBcoi7XKq8bRb;a@wRL9sE)N@xibGg17`2zmOwY$^p|5$t`UaW5y-i``kbBq ziRmi5SAo2yy{a~FG1(wzGgzK06-5ldJwbe3r{DzT$>ySAgaw4i&IB3iayi6&s5DcR zn#xuMGyMJ_N#l_Hbm9*j$;5<3uLIz73hk<@8zs^S9XL`3eGe6FxxvgfFzSL)^-Sg7 zOTKdzzc=ykZy>l3+e`_zfT`uJxihYGcqKh9&iSazw<3g{JRa!?2m`=5h;lN8DecJl zD7m+yp@g%X^6)BA@Cn^I(ZBCGDVd3S!WR0UaEkQpJ^CC zG69uK@yKhkax_WhAzv>~bb&5s0Zi#DzJ8tAY1P8EWj6*+1^H6qrNMi#E3(m`&LCxe zZG?=0+2P}ad;63dT5Jvu4o)sgTsrQo*B(ie=A9@S$@IaqIvEaEZDlZsI*q4{Ih0hP%bf^L!4q7Jcu>lkW4cZI z&u%la5h%c8Umw7}V`EPeYIsNggcb$sU-4igHm)H#nd8hS=?^= z;FHE%AXvmhp3prdBOFdaIja;*O!6lu?&T0r9s3&bl~^DIz~Nzu;gXdxH?YyxnyP6P zcxH+7bWDmGZ~h^?r9ZkLb;ICyI^Wo&p#Oe)NTdb)AG@4Lj_TueULD43-_2GWIO%(l zn33=x9a(S;CNaC5m)=XTm}Ea+9lE z3S8MfUi-+s!Pie{Zy``n;^a*v7x}p@p;7j#G|)64cTOzBMX{x=gFjIO{zURlnrx|f z6{^74_@Pqm_i}+V+#0|vY$LkXe~#%(bWgyVS&y>`GU;aq5Ek0=vF4m`IprJ*L0zyO zOd_V=f-E^r97f&(U4ER%Gx;tncC8#jGZ=Tv@F%lUPF^&S?kuKe*mtnQ%FZf;75a!+ zRi?lU4Fbh?qa&*yc)l5Hqzc|T1;6$by+=|@dXO`sHDK5?qF$5XQjZSEuna{0N+BpP zlV#k;b6&w%>nK*pim{w(a(w?Ep0(j{zvG2iR>5s6Om6yyfzV4hCZEXrgPO_{)ewUz z-RBREwKsOjC}}HMxBCq+xD0=18!c@jR1(B%LXo%D95PN1y2jCwPI-(?pW5Ik*E5P< zyHCYa6R(6rLy+H;>^YwTjld!t5NB7i+3W^a;;$0lk|_h0!r?#y`MEwM(j>N0^?-(Y z5FqJ^T#w!D%pHnM2|we9QWF->A*5iUhn`RWr}u5)O2{ZgW-0-nJuCcKlmM@X#NN{{ z<9~}R-fZ!}6>M-Mh-w1gRO@VZ4$kd!Dr{U-fMb3$I%74$g!@g=@t{tBIKqQIPhW|M ze~P0F_M~uANd?!5o$`}YGhUZ&m^~h7U|^JpC>0KGXY z$&ddsYU~Rlb2ywuPYTz{n$TJCcUZqcAmt1W#O}co%-b!>-|PdCDK_*k|8k=O)~ZM2 z{+0Re65B&0P)&}+QZ*oI(ybBjukv#s+AyU&Y(l-%r+wPs9qLu}#&TL@5dCm(=kqQe zv-ChbZVxLCa;gm?fp>F=;4y|569ikh0+q=>{vLn)FrWXR7d&a^tLI^_Ht-3XzGC(f zg)uF56*EUHepn!3V)?9J>ez>i$_G3zDamh|{wPen5xBGWvs9LZQky2#G6WG63+f0B zSTzvNIsdc;Kf3I$ICMQw=(t2M)FY*hBF)xU1d11W3#lJZe0{Bsj~?e;03&wfV(8R* z5?&_lbEOG!wPOsYiNBcQp~Nz~iyd8cjdO6hjHy7D7-5__o~Udv!_ugMqRkr^sB76_ z_O5$?DocAsXLwghYL9ao%aZd`jKD?W)7}QDG}f}gdjZ|~@w8Zl$s1MC)+|{Grh+4W zZXOVT*1LuIpQN1El7R1`8B*0U5Uzg2zaZ}3ELBk^Z{t(%D|YN3E>v82;qkuZcTa8- z#Djy!x(mo@DsD8!vaJh_@piUUSj2b#fLPEm7IHbGwTY7y(f`{lx_8Godvs)w6fF`y zK&=Uk1jfgT6i=uHk69ZJG4vZ3Ed?BbV>p^-%r?X9yc!aRub`Oe+A8k{3YW14PPs$w z6Ekj`@!uNJ#CsH_G<|57hEz^o#{<}hUprndn?M`bmzm9FsLSj;S;kohGE`y(eG5rM zhc{bvYi=u^&Uqm{LyOLIw+~A}agp#3*(XtoFQe51&`LrUGo&Sh1$R5^x4s3Wf#+g# zKut538s?)wa-chm1kzS;q_F+yq&v5H!}EapwX5*X71^yc*zT^zWqiy-(|uLB%M!Yz zfuGIv>Iy1=K(!P!z{VTA_+}hswW=z(Q{I_Y1%^*PK~Q35<{gwoqLOs2L4W{2_d(Q1 z36^KQEz$_gL)hPja$gp)E?(i{0_<@tSjug^&GK8q0-UzenjWW1C zl^&WeCkW>tH-VUXj^v64-Bv%1khI|-l_&qHMoD9+FPZulLwD5oed3H-S-4KATmViJ zK9Riv8I#Oo_5-HR)2G6n_Hn%muEakyXr}jmvqCJ$co_9#Lm`eR=uc6fa!3V;&IDGaGXvS^8eNV~&+830#>{>z$&Z8!+``F}wH`c}oz z@x!@HOe;m*tDj~Hs1L~~>Zchu?1I9eHhN-SCd@ah$hsYCQ7iqgRO|=LqOm8i!zQyW z=Y^5!c~7wuv7yU`O)DsktFi-dwi<*v;8+)dDSY!R{L5X zz}AaTBse@&FC^-dQ5C2fnywRDR2pF@8Dl{L=;~_I`ROsB3itt*-eHOt3zf|@XIqm% z(^{!YU8_=a!(9v4zFiz0I)zuZRo$b>(WIm*2|n@EFvfs+&Lw9j>l8dhThCS^~fnyjo;du=PxLoK%?e=dxlDS2#1|jns>ifEQsE% z8;+v@>q}7$E~zo|`#%IKM6 zrjS!v?OSPx_NeJc5&z|uTE8mahQjMz>=uOuD5|CmsEJw9y+t0aBdU zf^X|V^$y4WmaerkU6#$oiChd}d~VTS+G+8~@OmTGRRwU{Wf_jAP&!l0?K5v2>Ak$z zJ!_NFwv1M(kqDIQ`EU~GStMD&4sJB-d9}j?K||$9kev?X7`_0Y@P+X2wTe=eiby3)dd)T_CVb#4CAa;}m92%S!^<722_|@~ILr63U zGW<YD5Qfy zh^|5Y?3W#QEGrFVKr>v4atFmzHwxNd%lS-f2CS4$R4|kRs-csi=3B6U@5|SZMT1nk zTlgMKPhHaLg`5;CPZ#T%%)f%HbqdYg-z3*3?6+FTm z+yrzrT43H!yOS{nFlDgBO|^N)zI=JGo(Rds@LW`z=IW0BTFv6!VfnjA5OhHIwytLe z6`DUuB{0C@se|^&j~>|H#e^r&ZXlrJ(L?}KMM>*gZv=M1F9>NRb@6ag3muLThedlF ztJiBdCw zfTpOe(c_8e!mFKHgYf5W&iu0N6LuSj84ziwg{AQ*Rxka9N@y6+RrSp_sY-YhI9v5U z9My;Al?wP9hC7~tnNR<5kQcSx8W&czNHR4@GV@&nEEl5EiG+ehPm9G%i~S}rDh|)hFs=pbTJ$E ziL1P4*blJ*EWsY}v>rMMy@=uj!0wwX?k23v-cH+$sl~S8DvlU|qMC`#&4$j#YHbhZ zUu&5oJb5p@i^aJB0aEzWFRw+6@snNEa}&>#9}QS)+H&}{Uf!TOqUH%n>w7to3ITUM&cxvyFS3;K!fSN3LJQzc7L#r*jG9HCw>_<%v z#;Uz@fyfM}C?NdI8~01H-B+G^g~WDVh8fF0H-O&-Ab$f1DzGT41Vr?Hh{MwpIZ`~k zN+SaJXW`k%VLLuXA`JXcd;SG>%;SC;3Vovezt>t1?SWL8cPfn!u_P?kr`hkuy|B%A z5&7>aNLk7^GUD;KKm6zG8KtOZWv>1zgSLeO60pWM8GIRE5#?_gCo6IXG%rD0b z_7KK8uHVMBx`U!ZQ-K*GzW)p4uh@6_%1$~5XRQl*Lplq`xJrnS30>)|-=JyI+uO{{ zi;zDcY(ff4sI38OytSwhmH?g&WbBf;Ie!u4cT1F0BcE8GZQWq(*^L5K-(`?nOTH0P=T}_#ir7?h zeOk@;N)6!H53IAifhL5|vh9@9TFszQG}xcc>57}oZW|rYoZxk;)pw9-@%6Q7e};Fw z2<>6Z5|jQv2pGTlSQs&&v7pjgD4MBD05;b;`6UNqmv3dcCZBw;2AJg_VJ2EX`UDKn zfAY%!pxGEAz3Lr?j7ZFP`==iub z%$~wtX}m74ykg?zmSr((JBfq}UsiBwX>Lz$LjZu2`ap!3HdK>&*X?!wycXATD|`EP z%9TL4QpdTPFYIir^?m0}5tLYVxHy=eqYTQV70TZWjFyZWVl%uy#5oVBVI7LZV+%*e zKF?jwlVNeNJa&-kywqe7>h0RGR&DjTY4hnxR`b4!Wer3v5&JP~r{gLbeF%z&+ zG&s_H9MgW^jY=tuiwPFe#||~GZO(KI>;pHc>qTP4*3FgAWF%yZaag&vP_sOiJbuGa z)$Qt&Ad8u3xqIdM_mT*=scnIQX{BJhK!Z%kOlt}ChWd*d-ojb{zp?JvE`p5CpI+iW zz|8~lt1KfcmOWJHTKLaR$@Zzhy_(|Upd)OGse|p%W0cOjLIpoJEOl1Qg)9VSDr#Z3 zN1B~(>IORNjm3IQd${nHCuM1buQVt)w82}9%E1B()D+Ar20k>%P)Y7JY|r}e$wF^( zQW<4i(NsGM{Ke5ZHdM&U-$<+yf}W$_`1rBjad-ea!}T4&X&Hj3#F5-Jw<7&}ZdFfT zlmB^)dM{I$baUzJ`4ZhXJLJ{kMX*k%4VX{8|BwI!xz^bZF(gRZc2hbK+sLQ|u)EBY zD3IX_-TZxwBP^EvmGUd&57_bEv+{$XTnGu`7|q_FJXJ{sHc+Xsvm+ZP8BBFA=u+_EA=2Qw znri?RTwG?n&AVVzg<2+uT~iHjm96SXGTpgd9aq38Q`5;^nEOcVn)arFbsPDadphRU+tUIV&OL3~8{O|(0Po9)R zmYUADV|M0+WS4)DGi)r>IhVD7O+Ba!q<15&GyU?f=w3heIzvXS*O!|`8@}~&iKGl@ zUx=|9ne8%0))L&p%whkO*-fEV^ry4ExlpkxEFi%QEveGy34*FJ6gG@`X zL?e{P^4Gh#N3!aogU)=&S*){x*yi0%grGS@jOwnhXSC7bsLBIPQrFYPkrE19zZJdp zE#z$p)m#6(&&o%j0#$YvX_=oVNDw>fj6)RJFPCKymQ29sM2ztm|L5B!TI$R*|G}k+ zku9>&>eL0`r%Rh%PyQ^xJ_#wm0nua6g>>V~l8C*lV; z;_NuGyF|c01VYk2%fAd8Tdv~IqT(BUa4rw`gwT8YWVek3sCH^(>zjUgjB7h3kBe0D zw)pu##d0e7vLW zND`$cozK%ziemCkrdW`h$%s&@XJg<@gdVhme@Vgq6GfU1lG2KrcfMKFDwxq?wdouR z^zcHzo_RACB{_hKo#9DF0uheQr)^hom2aG*kbn6@b3qM|mh}?d-7 z9RT)^c&TtDuhqv7j@bn>nBi}D#yqFQS%F&7(;Wt3+Not9dkMbSHz>|;+$QZu#NX+_ zqTfM^>keW~nRPWys(K(~Q1AAJuO!wV8Nr ze_7A;0q4>SSb6J1G^dQ(l=zjzfx}4hpeorUJFX#a7OWc3W?r-jHaL3?OTC5~6gAQ| z_1!6MTSB#P0A&RAFuoIZh?yz+tSNyR&?6{ZmYc)bYejP?_tNVv2%Y!JUE;0B_YBfS zy^rZ^;Yv&f0Hy@rl#@ZUf;|>ijF0W&DY7j))iX?>M3U`m$SqcLn7Rep(t73~B@ZoR zc{O9-l~b{4TdzX59ys%eBSOo36w^g#NU92osRQ8T#(XQE;v%f&r)C5nrpG&ulbi)h zx|tc?9-xUDdvQcgd@s^!wMc$G8(@mEeDyDp4SjKVsoWLg-*Vt}8<$bjWBQ<7rA~V- z1R`4;4ljxwF^1FJd_DtlD|8M2KHD#e#`k0sLEJr2>`|^ky|- z{a`pglYtxdk^rP6H>dD2X(=SMX7uthwzoKdtI3DNrrimEhyj&`1qHCTxpCqR#A1MU3UqirL_0cc5vz z(K_JrYA(>xOhaAz1hO)&c5k zfC;sbnVTisnRk;QC@d@1kFcXA+Na9q6DB1B59D#FN-8%Z!0VTw^M{=HG7PJ;=rWIL zr3ud|rB;Z{WzL=1;A{*{DKQZ)1lv0NaI;c;pe)tulxy$&n8U0Vz6-n#nyxgp}75|_us*!jb3UKN+!(GgXN9A^RKtjgfEhV8>K-9N$s`(fl{5m$O^92H3J|cKokp z{SO3Nnyp4?>vcFDlQuNc5!#SWt;F{j(q`_m4K?zni@N`Yk9mi~Q3i`z#>-80QH_cK zQaDVszVW3j(1c&pWtbQoBGB$4TskZY112rXD?@J!qQTgTHoY(KC}d5wGs)BWz4Kz< z&fCPq03oLp+6@JoNqMI0ooy;m;$He~YEWT~JT0@v$e8E9`M0oU`!uvr83bb%Yrupy zrAfh@^bemHZ!|7yl1D8|i?fAhQt2|-J7EfHu+eL;7+`(b2*$JyAe$_XaV<#+bM%_e zaZDS!VZ|BC?o{IHOHTj*ccWXM0#rg9W<_62dw^AWCDenIBj$N@*R(hnFceSv_+?iI zpuoLRQUh@!>!87YW~FWM-!FiGH1*PqOsD{&j4ja7HL$-I8?ddF9cL^SG~p-9ltykA z82#Tr-{Nm{)FPN@5r_?V5JC+7k<>h(4_4stEbz#W0sSPZu*w)QYDJ$Eyfttgx)>O~ z;BNxQ+6*L4mBHkw$(&-jx&%4n##QIFou(f&%_qK<_8;$I+p0kj456rE6+YK>;R&GV zb{o}j)s^7SLFb-wssNDzBvA(g-=81+N-fn7ws=%OxCurq9ARC?dGlAvg% zQA;(F5wmf2e)~PFGnFO0NTpYu=)G6TsrV4bDLUu27q#TXDkq5uI2pIS%V-U}sf8q$0ExUOIunT<(8 zXaE|JciLKJs(KoD3|_!TqM88W?T_aWJ5)t&olkc#==W^ol)xP)54}^8vq3i-vQSpy zz63O#Cl!{74>AvmNn5sgzdxE|AbGdT?i<8PU#mClViWa6HAwA@ zLrpDxloigH3T3@M6*+wwa|`F1G?VkKxrInN8ytJFY@wYmbpPg!BiR7huxe&10lbtfYC%)zL)$i{YP%3bo)@7j(>2v|LL#xyF{vBQ5acN&C zcpMG=`ifL%!u3i{<;T_rXDL5 z7#vpQi^4cQ^H4CnC*SHe$8ci6%qG> zTjAbo*jYQqvbc+f)_#LAj;Z)3zDd$V=g+D28}yzyTUE&-4BKDthI_`hCKLdjYa1ZifH5=(kB8o6UMt_&jmWhM z2R_4sD|6@RT_UjVZkgaX=*_DlCYHUprs$={&Q7_T2vm8IT-7BnV}x19Mnj5NKFzQ% zJ726>pEo1`lNCHvqmPHrg80nC_zfi5eINTCv35+tq}3O#*I$``dDNo{Gzb=@ld@Ns zgnmK)!fPc~vmac4ucC#qQ5=l)XTEP2*lCURso=y|`2akH013V<9V)=XxhC6Ns=Ivn zL&9WjlN}*Khf+hV+<U8~f_1&#rAfPUhQOr5D6ef^OD4Fk z9#fIdP76w7H42(kp%D70*Y%ga7x%3^PWYn@1L=FM*LAQCfL$I--t+FixVQKT3CvA1 z0lnJRJRo@cIOn*Jle{Rsx^^`|ueJ2KvH%e(DDO zTK68mx`lHWb&U zGeK`k+V8g|Nj@XLUt4z0^`*gs=d&O~kdCpck*;5i6HX zWiRcXU#(Lc8BfQ0?-t&ZRXjF!zcVMDl*~y?SBG$!@JTNBuhqQ!|B>1}5K_$N?1tFB zbU$TODPERQ4HNo+r#Dks`_+!8aO^H7VOm&x24+1T)z{V~BunZf0+u^?U?=)%$yu&w zw8R9cEP#)U=xpq7ndj$Ad4WG;mTe*yUs&~uvp2cihnvf0>5?F=V-{JUiYqjSA~;pg znr^492cxn~pRuBDZ6t@}aF)i5A;q&1J@I^yV3PDaD|r8<;{Sw|C-uu`U-BRpBwEoU zF|HrZg|TCM=5I=uvC0u|@;Q0&4zREq$3yQaGZbrB)YZ*lV<l>2yXw?#dlR*h|H47z*Y+QO3YHiJ=j-|Hsy!URm7`% zG^S}z0k;-I962WlV~pLi?}fmrakMAUrp*TLtvZq{XtI}@(jV;#6!mn(n+z!oqL-GfS)X}?c zg?a)chm6z0kj=_^EV!p@Ie#sCjMj&Hz*{yko@}((&sR@6L$kd}(P}!aGE#iQ36}Pi z$_R$_kkzt0mTnlVJWyuzhnyx5?svovm^l;!Xz%16>uDLCXgPfO`V5WQl0yh8TR}&Nb>dPvc*LlyxujPA&z;Q!i zZW0)}Nh~##gQDy3S4GSJYKgnI00^^G}dqNXts`8%a|_dz>$HGa|-!E0J%uwkxY=$-OY8$ z8+dlvQC34G&nno({tL#`7fS_@296|-nMM6x)!cu?v$SK+7z=&Lt30{W6d;XK%)4G6 zV%%RQeOdb#?L;e+kOT#DmSFYN2tnQR(oG<#?EMv=pYj$re)m?x4;#ua$^CjcLoC##mk2FfwM#}xd30|PHoo1)gEQ8{S>>p+Wgv$Ut&_Zq-EL|ZEy^>)kt*~aU z6iF5Xd~3FwX?-E$lNlfXZ^(q7hl|w0nlaG-qY2V54YcF;v#ZzwNIg;K&I-Qn#~s*7 z0tK&o-|`RzHOaJh_j0wuf|6!0^R*2hLJXswK-An2LrZ#6$YY)h+Y-kdwi09W#oaqP_=J+Nd(vf5#6b35UEA(6PPvk6)ervvl{cbz9Q08$7o|_! z3lmF}8g->Z^R1*G2N<}f#7lzXpASam5ecf&p0sOF zt~nExVwv@{^FtVdJg9I6SBrX0S>r?5bg&$FX$Oc$)mtMB<}l?bEVpdtfc&{?a&)(& z3lV$vuxN5`lP$_e%Jxi`p!sQ$FjjhuE$Mp-?2ZlrIwETAG|)QhbnRd<0q|=oZND+{ z6>s7OedmTY^IExGwr;)~c=%KfspFiR66lkrmq}Eay7>I%?FXBU@ZpI_{7iL~>K$xry!XQMx~)@f|h`uX90Y(}654R{U3Fqk@ZBEq{g{PCNx7DR0K5q6V^`_R}`0f-sm23U` z2;XZ=>Zu}IbU*+A00eiv9w<(I)-@>`x|B=vrmrr0@Oo#Pw6TTEVi*9jsBd?6N@>5Z zTa2zTN-d2E9lycM%zTm{X3S!O$yJAVg_mvjgSPsbf4C zISwbr5}kSCi;2M=u{e@oj?-);&J_G0=No(t?ERBtG*{PF5E)AwGE(Rs!=P7>l`y3F zlg{_O2RKR@&r~aEl_(m1`Qd3H?cy%5OkoAhQ}Xe6&Z>qp4DXgeI;YP&+;e)mirTuq6rU zxP--OwxBvv`PD7`8`ZRrWB;2~c0UuF&yGb1b}21TT>6=sqRwv`3&vNTId2eZXm&floKlkCNO9 zxSv>r(+0}l$0@>BJ4n~YG%$uy$;L&3)|X_t^9+~efq}XTUbI;gU@Mnne?mwZXW}h# zRU6Nvm-j6jY`9?uoiy=V<)T?EwY#S1L3?Mk1{Hbgot}EA+~)nqEsT# zzczov4=Fct-QHpi8o)Up3#i3aXeU7cI%Fhw=fbRa?bp+vz_pBJX;49Id3TB(2yl@x zKkEQBI&?!&PR~NuL3nw7egFp?mnAG=@Y*gvTk#JUZG-Slj!K@l%07cIHpjFzc4@#` z)GB^FdLJjF*_$c-RtSV`(J>teAc#jaSh}BQj|U9Y*v0000GVsH@U?x^$LE#Qp< zp;sB0PmZn)_gK^;Dai@xCYCh24Y#qTf43Z+X9Ns4cT#q37_6}0rI=_-&F5I#en>q) z4etf74pEMw0{tINeHKVf|F*UBeqZr%mSanKAUp||Kld&xbxu$T^z4?)(?da>85$r( zQ1wwu=8rDN@-+@*H6U@tt=h9D7!)vTDvui?Cn;m5#j*JX|888Jl3*T~R#5>3-LMmR zx@*`{cuzalJ)>pBu5)evAXiNKlJ(mkom%=uRQdr!ywCWl<9NT`ee%BqexUG}W#y(Y zc@LivBFE;EZ6Vsrx9>SA7we++mCW?cpNwt6*dA2dzE;zwX`+e7y1z%0?VHlxylWGhJi z>NDqOE>AYn6J|7z+QWPAENQAwcAY=cv5lb*QEf5{(f@5k8x zTghCU==eJLGcIqsyHCm2)@&XKOYK~gdh3p2$>45%Y4+XAjQ|wyyQ}@D*7n{C66=ph za0!q$DKg3=^lji{GaHRLb`-eU^+u-CDSZSCCPb`~Q=9?0i z3(jqR9y+#eM34YM1KyB^VudULWqsYXiB=V$O$bZjHbc%k} z+hYe|5d{@W-5`dHG&RAA&w5yViG)a4`yfBLrXpHcl<#X5FcHMJRz8hnWm?5Yq#00f zD&(fMf+p>TMCdV?%enU^Gd;@w)I)Ds$DU&?0C4@L0wpTRzluAM!7)OULOi;syk(#* z8ni633Du zFxdM{UP6i91wxTdG)d;M2Z4F3gMS5Bh_D)yhHedvHdsp(YR}^)WNV>jyHgVQX#yjY zU*KC#5l*#jw8KAsY>XYjGV9uXjI;@`n4$)N+sDxz1_?z#%Hi6_OW!i0GEpr>wM!Ifz|QtX@9>+Ectz&hd}cQSZzL-sUkXMXW&Z1 zkjZ4FXG;ktOi%mvoj3obb>??rC7i}@3ypjlUbGbH&qSGGr1!sY6^s*j(Yn>*E5`@zxQEJ;ts)oZ@fHRIiP8ZRwGQ` zOms|mp!l~5rYE8M4x(D@BcDqqlG^wcW0z3q5yAi8Q_>~F+6Zk?1#p%g4kNFi2w{KO zLqFyVvzNyUilxCH!$s+h$0GYx_E_4DN9a&d5ic81ahwrWPvZBa(YF_~=RN+$FDRi) z2YB*7pE=|uaP16^@F^kyKEdeGl)f*D;9MX8017Su!KqR79MYS_UWAn@xurC0h(7VqPa#_Dp zalJuI+K8hO0)_1I`7fY|o8Z_GTukqXnwp*QznyvYS{wuwH#ch9&K(7c0kQ>6`q>*@ z0HFy25>N&^@}12()5PP7bEI$&r8`5o`$J?oH|aABhu%*+ zPV`k#8VvsaRjS05rUbWCGmaAoGAvKgQNdbKEg=rQ2LlvZl@4@OHLz9)6A2g}Mz?zl z1-*PbI?7_3X7<~Rg^1z&(bur-FBVevu2CngQ+bmFC5qT^jbFnvlIW}HGyfqpeu9nb z=M}6RDhz&2o?_j>>Nw`nhO77W3J^^QMhFv48QIVm1L6>{N)WDp5rcQd)k5@q_1Z=; z;gE8uhi!tFcEqanBU{F7K%bl6rye0O@zet-*!bEjdkb*GRI&F<>B4(1u;#=Fycbdo zOZr`?dY2g13nAAdb1Gh$w|ZKrhATz}&y{g3SJfLY8m{1mhLwHdK7&n`x90)&5;`z)Hb; zCaFCU2wxK<*UpKkAAAlc31;*ytH(-~$)*zI0a9AVF|(H6$QD`3!o^65V1K%0D(5@Y z?rOh+N|R0PG)V*~p^fL7a5y^<Rl7XhE=Np{~3CNGtFJf z4H`hP#ITCH`kMy2TxVw4uEpP3mF^q>c=yeCDmT{lC$~6>jKE$|MJN~fL#Sn%0etil zc_B~#LRdu9jb8$~8PXfAUG%pV<^UPDE~XRpZ2M=8nS(qM>wuKDU~n^ojtp0$Lo}F8 z7F;Il&_`I^)AVZH5V$DDEhlti`FeP<8Qd{K9}#Q;+w_kaDKf3dKNpoX1oH)49lOyW!Wps|L$*JCRh1Ivfr+tGJN&}x=c`H;RBXnrZmh*e^fL~2$Pyd= zSxJbkG@!Wkkz2c#`!kJ}eJo1|wnlkv-O>0(j!Dpa-c?1*{T{?zkeauHFwQ{28yA=< z7CvB#N=pb}Tx`ImXV7`JWCyaVUj zLS*%0ey=gSJdj-jcg}(_<@R$Xsou+5r1bGd+$3Ztzm(Z2n%Vv!N34$rHx8k|()n$L72F_R4yM52_rSz;s)Y&O~Bne;FDDW`QgOX6m2 z@Z?x^XxIt|ZGhJI^zCs~u_B0gInXCpS;saKjCT9ml?22y9ybY;s^ZBL={e9zlUcJYe&bI0bh!MZfBhpx6ec84M~|!?Cmfoe4@y;qk}o?uM|5 z+DZ=dA$D@y5a+5^h=I%xb=x?=Am9#g7F>_*GY?0Kmg)71YE%>q{)BogyT-o}3;(SQM zl?{xO(TlKLj7xv;>H9jb<|Qb2KzNWaH4F8$rNvpYYG{l8f7nJx{LZLdXBaC!J_Ei* zqADkdY7W)zx~C+4lrm<~kS8z0+g$RdP4`Y#MAc&OT$5tMQ!^fTl9^V2%tQbH0002+ CT4gu@ literal 0 HcmV?d00001 diff --git a/androidHyperskillApp/src/main/res/drawable-xxhdpi/img_interview_preparation_onboarding.webp b/androidHyperskillApp/src/main/res/drawable-xxhdpi/img_interview_preparation_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..e36d6c311d6bd1b69cd2a360c82913f1246a6442 GIT binary patch literal 70250 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,l&AKwo-P<%AEq2NB^p(hS{j8GX#9UB|JPOSXY#f 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Ξ8oobdP*&?b6pi{(HOv7P$uXlEvb-*N* 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 +) : ReduxFlowViewModel(viewContainer) \ No newline at end of file diff --git a/shared/src/commonMain/resources/MR/base/strings.xml b/shared/src/commonMain/resources/MR/base/strings.xml index 598b4df996..e46605fbbc 100644 --- a/shared/src/commonMain/resources/MR/base/strings.xml +++ b/shared/src/commonMain/resources/MR/base/strings.xml @@ -527,14 +527,21 @@ Interview preparation - Oops! We were unable to load the interview widget - + Oops! We were unable to load the interview widget Good job! Looks like you\'re ready for a real interview. The next problems will appear soon! + + Interview preparation + Meet interview preparation mode + Tackle some interesting problems! If you find some + tricky, don\'t worry — they\'ll be back for another try later. + + Go to first problem + Search Find topic From 3c4a13dfaa65104d1d3943a8bbf1683f0ce0585c Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Wed, 3 Jan 2024 18:36:13 +0700 Subject: [PATCH 5/8] Fix ktlint --- .../app/android/home/view/ui/fragment/HomeFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt index 7c2813bea1..e462743e3c 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/home/view/ui/fragment/HomeFragment.kt @@ -19,8 +19,8 @@ import org.hyperskill.app.android.core.view.ui.setHyperskillColors import org.hyperskill.app.android.core.view.ui.updateIsRefreshing import org.hyperskill.app.android.databinding.FragmentHomeBinding import org.hyperskill.app.android.gamification_toolbar.view.ui.delegate.GamificationToolbarDelegate -import org.hyperskill.app.android.interview_preparation_onboarding.screen.InterviewPreparationOnboardingScreen import org.hyperskill.app.android.interview_preparation.delegate.InterviewPreparationCardDelegate +import org.hyperskill.app.android.interview_preparation_onboarding.screen.InterviewPreparationOnboardingScreen import org.hyperskill.app.android.main.view.ui.navigation.MainScreenRouter import org.hyperskill.app.android.problem_of_day.view.delegate.ProblemOfDayCardFormDelegate import org.hyperskill.app.android.step.view.screen.StepScreen From 64d6f8572110e8419e9ecfeb7dd50893077be83f Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Thu, 4 Jan 2024 13:02:31 +0700 Subject: [PATCH 6/8] iOS: Interview preparation onboarding (#830) ^ALTAPPS-1093 --- .../project.pbxproj | 32 +++++++++ .../Contents.json | 6 ++ .../Contents.json | 23 +++++++ ...ew-preparation-onboarding-illustration.png | Bin 0 -> 27296 bytes ...preparation-onboarding-illustration@2x.png | Bin 0 -> 93054 bytes ...preparation-onboarding-illustration@3x.png | Bin 0 -> 182317 bytes .../Sources/Models/Constants/Strings.swift | 10 +++ .../Sources/Modules/Home/Views/HomeView.swift | 34 ++++++++-- ...terviewPreparationOnboardingAssembly.swift | 39 +++++++++++ ...erviewPreparationOnboardingViewModel.swift | 23 +++++++ ...viewPreparationOnboardingContentView.swift | 64 ++++++++++++++++++ .../InterviewPreparationOnboardingView.swift | 56 +++++++++++++++ 12 files changed, 282 insertions(+), 5 deletions(-) create mode 100644 iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/Contents.json create mode 100644 iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/Contents.json create mode 100644 iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/interview-preparation-onboarding-illustration.png create mode 100644 iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/interview-preparation-onboarding-illustration@2x.png create mode 100644 iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/interview-preparation-onboarding-illustration@3x.png create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/InterviewPreparationOnboardingAssembly.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/InterviewPreparationOnboardingViewModel.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/Views/InterviewPreparationOnboardingContentView.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/Views/InterviewPreparationOnboardingView.swift diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index add9900e0b..4439377d6e 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -12,6 +12,7 @@ 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; 0809817CFCC9D4C45457B3C8 /* ProgressScreenAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AACF19B25D42FD4AE322D5A /* ProgressScreenAssembly.swift */; }; + 0C3BB55AA2B8FB7F5ED9CADB /* InterviewPreparationOnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A7D7125CEB88C2B8E29ABBB /* InterviewPreparationOnboardingView.swift */; }; 2C005DCC27EF5B0300DC6503 /* GoogleServiceInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C005DCB27EF5B0300DC6503 /* GoogleServiceInfo.swift */; }; 2C0146AA28FDF2350083DA9C /* StepQuizCodeFullScreenInputProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C0146A928FDF2350083DA9C /* StepQuizCodeFullScreenInputProtocol.swift */; }; 2C023C86285D927A00D2D5A9 /* StepQuizTableAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C023C85285D927A00D2D5A9 /* StepQuizTableAssembly.swift */; }; @@ -68,6 +69,7 @@ 2C11D5CA2A11311900C59238 /* FeedbackGeneratorPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C11D5C92A11311900C59238 /* FeedbackGeneratorPreviewView.swift */; }; 2C177EC32837B65500D841DB /* View+Frame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C177EC22837B65500D841DB /* View+Frame.swift */; }; 2C1860FC2923C540007D4EBF /* AppFeatureStateKsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C1860FB2923C540007D4EBF /* AppFeatureStateKsExtensions.swift */; }; + 2C186AC72B46726D00DADB26 /* InterviewPreparationOnboardingContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186AC62B46726D00DADB26 /* InterviewPreparationOnboardingContentView.swift */; }; 2C198DFE2AEA444100DCD35A /* FillBlanksSelectContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C198DFD2AEA444100DCD35A /* FillBlanksSelectContainerView.swift */; }; 2C198E012AEA835F00DCD35A /* StepQuizFillBlanksSelectOptionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C198E002AEA835F00DCD35A /* StepQuizFillBlanksSelectOptionsView.swift */; }; 2C198E032AEA869300DCD35A /* StepQuizFillBlanksSelectOptionsCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C198E022AEA869300DCD35A /* StepQuizFillBlanksSelectOptionsCollectionViewCell.swift */; }; @@ -493,8 +495,10 @@ 2CFD7C68292542FB00902748 /* StepFeatureStateKsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFD7C67292542FB00902748 /* StepFeatureStateKsExtensions.swift */; }; 2CFD7C6A2925447600902748 /* StepQuizFeatureStateKsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFD7C692925447600902748 /* StepQuizFeatureStateKsExtensions.swift */; }; 40D8E6EFE44EB7A6092C171B /* Pods_iosHyperskillApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C0F8A86D62CB915A1E49CAA /* Pods_iosHyperskillApp.framework */; }; + 4F5F2FD2F3BCAC06612FCAE8 /* InterviewPreparationOnboardingAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = B431D493DED8999E3F3B6968 /* InterviewPreparationOnboardingAssembly.swift */; }; 59B66CD4D1508049555D35AE /* ProgressScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCC18157582494D2909B214C /* ProgressScreenView.swift */; }; 60B4F143CF507F83C9581020 /* LeaderboardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E205DEF27554501F7BE01AA /* LeaderboardViewModel.swift */; }; + 63FC2C36279DBA43CCEA1360 /* InterviewPreparationOnboardingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9224BDAA50119E9135E1B74 /* InterviewPreparationOnboardingViewModel.swift */; }; 7A628C36D862C98ED2046D4F /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 907B10B0F7D4970530A478A2 /* SearchView.swift */; }; 8E154CD6AF7D45A2CA013F85 /* SearchAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F55BD539626D22DCF0E1344 /* SearchAssembly.swift */; }; 9195A8624F8058A7D5F936F8 /* NotificationsOnboardingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3570563AEEEEF2F5495BCA6 /* NotificationsOnboardingViewModel.swift */; }; @@ -732,6 +736,7 @@ 2C1572092AB98F9400DD02D3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 2C177EC22837B65500D841DB /* View+Frame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Frame.swift"; sourceTree = ""; }; 2C1860FB2923C540007D4EBF /* AppFeatureStateKsExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppFeatureStateKsExtensions.swift; sourceTree = ""; }; + 2C186AC62B46726D00DADB26 /* InterviewPreparationOnboardingContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationOnboardingContentView.swift; sourceTree = ""; }; 2C198DFD2AEA444100DCD35A /* FillBlanksSelectContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FillBlanksSelectContainerView.swift; sourceTree = ""; }; 2C198E002AEA835F00DCD35A /* StepQuizFillBlanksSelectOptionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizFillBlanksSelectOptionsView.swift; sourceTree = ""; }; 2C198E022AEA869300DCD35A /* StepQuizFillBlanksSelectOptionsCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizFillBlanksSelectOptionsCollectionViewCell.swift; sourceTree = ""; }; @@ -1173,14 +1178,17 @@ 71D01125D308034C53D75DA6 /* ProjectSelectionDetailsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProjectSelectionDetailsView.swift; sourceTree = ""; }; 7555FF7B242A565900829871 /* iosHyperskillApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iosHyperskillApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 7A7D7125CEB88C2B8E29ABBB /* InterviewPreparationOnboardingView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterviewPreparationOnboardingView.swift; sourceTree = ""; }; 7F55BD539626D22DCF0E1344 /* SearchAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SearchAssembly.swift; sourceTree = ""; }; 907B10B0F7D4970530A478A2 /* SearchView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; 9AACF19B25D42FD4AE322D5A /* ProgressScreenAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProgressScreenAssembly.swift; sourceTree = ""; }; 9C0F8A86D62CB915A1E49CAA /* Pods_iosHyperskillApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosHyperskillApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B431D493DED8999E3F3B6968 /* InterviewPreparationOnboardingAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterviewPreparationOnboardingAssembly.swift; sourceTree = ""; }; C2065D585FD89A96C31C08BC /* TrackSelectionDetailsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TrackSelectionDetailsView.swift; sourceTree = ""; }; C2D19C8A442CF9C4F00370B8 /* NotificationsOnboardingAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NotificationsOnboardingAssembly.swift; sourceTree = ""; }; CCC18157582494D2909B214C /* ProgressScreenView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProgressScreenView.swift; sourceTree = ""; }; CCFDFC2C226D2B79DE30D811 /* LeaderboardAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LeaderboardAssembly.swift; sourceTree = ""; }; + D9224BDAA50119E9135E1B74 /* InterviewPreparationOnboardingViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterviewPreparationOnboardingViewModel.swift; sourceTree = ""; }; E3570563AEEEEF2F5495BCA6 /* NotificationsOnboardingViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NotificationsOnboardingViewModel.swift; sourceTree = ""; }; E900D10028434D0400A77BBC /* StepQuizSortingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizSortingView.swift; sourceTree = ""; }; E900D10228434E0D00A77BBC /* StepQuizSortingItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizSortingItemView.swift; sourceTree = ""; }; @@ -1578,6 +1586,15 @@ path = Extensions; sourceTree = ""; }; + 2C186AC52B46726200DADB26 /* Views */ = { + isa = PBXGroup; + children = ( + 2C186AC62B46726D00DADB26 /* InterviewPreparationOnboardingContentView.swift */, + 7A7D7125CEB88C2B8E29ABBB /* InterviewPreparationOnboardingView.swift */, + ); + path = Views; + sourceTree = ""; + }; 2C198DFC2AEA441E00DCD35A /* Select */ = { isa = PBXGroup; children = ( @@ -1633,6 +1650,7 @@ 2C5F4A582971C6C500677530 /* GamificationToolbar */, 2C963BC32812D16C0036DD53 /* Home */, 2CB0ADE92B04AC9E0089D557 /* HomeSubmodules */, + 58E45951DA331A5F7A54B0BA /* InterviewPreparationOnboarding */, E6992F3BBF430924F32DC178 /* Leaderboard */, B58361EACE24BF4B761F10BA /* NotificationsOnboarding */, E9B55A5329C89FFF0066900E /* ProblemsLimit */, @@ -3564,6 +3582,16 @@ path = Details; sourceTree = ""; }; + 58E45951DA331A5F7A54B0BA /* InterviewPreparationOnboarding */ = { + isa = PBXGroup; + children = ( + B431D493DED8999E3F3B6968 /* InterviewPreparationOnboardingAssembly.swift */, + D9224BDAA50119E9135E1B74 /* InterviewPreparationOnboardingViewModel.swift */, + 2C186AC52B46726200DADB26 /* Views */, + ); + path = InterviewPreparationOnboarding; + sourceTree = ""; + }; 69078482427C2E9AB934883B /* Pods */ = { isa = PBXGroup; children = ( @@ -4839,6 +4867,7 @@ 2C5837A12B28413C0096B89B /* SearchPlaceholderEmptyView.swift in Sources */, AE0B2D1D267B8904498FA371 /* ProjectSelectionDetailsViewModel.swift in Sources */, 2C8DD4092AFB7DFD00FD5359 /* ShareStreakModalViewController.swift in Sources */, + 2C186AC72B46726D00DADB26 /* InterviewPreparationOnboardingContentView.swift in Sources */, 0809817CFCC9D4C45457B3C8 /* ProgressScreenAssembly.swift in Sources */, 59B66CD4D1508049555D35AE /* ProgressScreenView.swift in Sources */, 2CE7B4842AB0593F00DCBE4D /* AttributedTextLabelWrapper.swift in Sources */, @@ -4853,6 +4882,9 @@ 8E154CD6AF7D45A2CA013F85 /* SearchAssembly.swift in Sources */, 7A628C36D862C98ED2046D4F /* SearchView.swift in Sources */, ED49113F88FF32AAFE6AFFBC /* SearchViewModel.swift in Sources */, + 4F5F2FD2F3BCAC06612FCAE8 /* InterviewPreparationOnboardingAssembly.swift in Sources */, + 0C3BB55AA2B8FB7F5ED9CADB /* InterviewPreparationOnboardingView.swift in Sources */, + 63FC2C36279DBA43CCEA1360 /* InterviewPreparationOnboardingViewModel.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/Contents.json b/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/Contents.json b/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/Contents.json new file mode 100644 index 0000000000..e78ff382ae --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "interview-preparation-onboarding-illustration.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "interview-preparation-onboarding-illustration@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "interview-preparation-onboarding-illustration@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/interview-preparation-onboarding-illustration.png b/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/interview-preparation-onboarding-illustration.png new file mode 100644 index 0000000000000000000000000000000000000000..0cf3ab702c020164bd48f203f66eb0ed71ad2ad7 GIT binary patch literal 27296 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 LNkvXXu0mjfOupFN literal 0 HcmV?d00001 diff --git a/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/interview-preparation-onboarding-illustration@2x.png b/iosHyperskillApp/iosHyperskillApp/Assets.xcassets/InterviewPreparationOnboarding/interview-preparation-onboarding-illustration.imageset/interview-preparation-onboarding-illustration@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4275afe35655d9b16360bfd96be6a0e6e6991807 GIT binary patch literal 93054 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 hC0=kjMnw*TD`H2pZy+$@Rh6M966 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 A UIViewController { + let interviewPreparationOnboardingComponent = + AppGraphBridge.sharedAppGraph.buildInterviewPreparationOnboardingComponent() + + let interviewPreparationOnboardingViewModel = InterviewPreparationOnboardingViewModel( + feature: interviewPreparationOnboardingComponent.interviewPreparationOnboardingFeature( + stepRoute: stepRoute + ) + ) + + let stackRouter = StackRouter() + + let interviewPreparationOnboardingView = InterviewPreparationOnboardingView( + viewModel: interviewPreparationOnboardingViewModel, + stackRouter: stackRouter + ) + + let hostingController = StyledHostingController( + rootView: interviewPreparationOnboardingView + ) + hostingController.hidesBottomBarWhenPushed = true + hostingController.navigationItem.largeTitleDisplayMode = .never + hostingController.title = Strings.InterviewPreparationOnboarding.navigationTitle + + stackRouter.rootViewController = hostingController + + return hostingController + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/InterviewPreparationOnboardingViewModel.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/InterviewPreparationOnboardingViewModel.swift new file mode 100644 index 0000000000..bb4f6a0f43 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/InterviewPreparationOnboardingViewModel.swift @@ -0,0 +1,23 @@ +import Foundation +import shared + +final class InterviewPreparationOnboardingViewModel: FeatureViewModel< + InterviewPreparationOnboardingFeature.State, + InterviewPreparationOnboardingFeatureMessage, + InterviewPreparationOnboardingFeatureActionViewAction +> { + override func shouldNotifyStateDidChange( + oldState: InterviewPreparationOnboardingFeature.State, + newState: InterviewPreparationOnboardingFeature.State + ) -> Bool { + false + } + + func doCallToAction() { + onNewMessage(InterviewPreparationOnboardingFeatureMessageGoToFirstProblemClicked()) + } + + func logViewedEvent() { + onNewMessage(InterviewPreparationOnboardingFeatureMessageViewedEventMessage()) + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/Views/InterviewPreparationOnboardingContentView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/Views/InterviewPreparationOnboardingContentView.swift new file mode 100644 index 0000000000..ddc5e22c41 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/Views/InterviewPreparationOnboardingContentView.swift @@ -0,0 +1,64 @@ +import SwiftUI + +extension InterviewPreparationOnboardingContentView { + struct Appearance { + let headerTextInteritemSpacing = LayoutInsets.smallInset + + let illustrationMaxWidth: CGFloat = 200 + let illustrationMaxHeight: CGFloat = 184 + } +} + +struct InterviewPreparationOnboardingContentView: View { + private(set) var appearance = Appearance() + + let onCallToActionButtonTap: () -> Void + + var body: some View { + VStack(spacing: 0) { + VStack(alignment: .center, spacing: appearance.headerTextInteritemSpacing) { + Text(Strings.InterviewPreparationOnboarding.title) + .font(.title).bold() + .foregroundColor(.newPrimaryText) + + Text(Strings.InterviewPreparationOnboarding.description) + .font(.body) + .foregroundColor(.newSecondaryText) + } + .multilineTextAlignment(.center) + .padding(.vertical) + + Image( + ImageResource.interviewPreparationOnboardingIllustration + ) + .renderingMode(.original) + .resizable() + .aspectRatio(contentMode: .fit) + .frame( + maxWidth: appearance.illustrationMaxWidth, + maxHeight: appearance.illustrationMaxHeight + ) + .padding(.vertical) + + Spacer() + + Button( + Strings.InterviewPreparationOnboarding.callToActionButton, + action: { + FeedbackGenerator(feedbackType: .selection).triggerFeedback() + onCallToActionButtonTap() + } + ) + .buttonStyle(.primary) + .shineEffect() + } + .padding() + .frame(maxWidth: .infinity) + } +} + +#Preview { + InterviewPreparationOnboardingContentView( + onCallToActionButtonTap: {} + ) +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/Views/InterviewPreparationOnboardingView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/Views/InterviewPreparationOnboardingView.swift new file mode 100644 index 0000000000..9655375578 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/InterviewPreparationOnboarding/Views/InterviewPreparationOnboardingView.swift @@ -0,0 +1,56 @@ +import shared +import SwiftUI + +struct InterviewPreparationOnboardingView: View { + @StateObject var viewModel: InterviewPreparationOnboardingViewModel + + let stackRouter: StackRouterProtocol + + var body: some View { + ZStack { + UIViewControllerEventsWrapper(onViewDidAppear: viewModel.logViewedEvent) + + InterviewPreparationOnboardingContentView( + onCallToActionButtonTap: viewModel.doCallToAction + ) + } + .onAppear { + viewModel.startListening() + viewModel.onViewAction = handleViewAction(_:) + } + .onDisappear { + viewModel.stopListening() + viewModel.onViewAction = nil + } + } +} + +// MARK: - InterviewPreparationOnboardingView (ViewAction) - + +private extension InterviewPreparationOnboardingView { + func handleViewAction( + _ viewAction: InterviewPreparationOnboardingFeatureActionViewAction + ) { + switch InterviewPreparationOnboardingFeatureActionViewActionKs(viewAction) { + case .navigateTo(let navigateToViewAction): + handleNavigateToViewAction(navigateToViewAction) + } + } + + func handleNavigateToViewAction(_ viewAction: InterviewPreparationOnboardingFeatureActionViewActionNavigateTo) { + switch InterviewPreparationOnboardingFeatureActionViewActionNavigateToKs(viewAction) { + case .stepScreen(let navigateToStepScreenViewAction): + let assembly = StepAssembly(stepRoute: navigateToStepScreenViewAction.stepRoute) + stackRouter.pushViewController(assembly.makeModule()) + } + } +} + +// MARK: - InterviewPreparationOnboardingView (Preview) - + +@available(iOS 17, *) +#Preview { + InterviewPreparationOnboardingAssembly( + stepRoute: StepRouteInterviewPreparation(stepId: 0) + ).makeModule() +} From 6897223989c796f38bd922c320693be49e0590e4 Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Thu, 4 Jan 2024 15:55:59 +0700 Subject: [PATCH 7/8] iOS: Interview preparation widget (#831) ^ALTAPPS-1093 --- .../step/view/delegate/StepDelegate.kt | 5 ++ .../project.pbxproj | 76 +++++++++++++++++-- ...eparationWidgetViewStateKsExtensions.swift | 62 +++++++++++++++ .../Models/Constants/Images/Images.swift | 4 - .../Sources/Models/Constants/Strings.swift | 36 ++++++--- .../Sources/Modules/Home/HomeViewModel.swift | 34 +++++++++ .../Sources/Modules/Home/Views/HomeView.swift | 10 +++ .../Home/Views/HomeWidgetCountView.swift | 41 ++++++++++ .../Views/ChallengeWidgetSkeletonView.swift | 13 ---- .../Views/ChallengeWidgetView.swift | 8 +- .../InterviewPreparationWidgetAssembly.swift | 26 +++++++ ...rviewPreparationWidgetOutputProtocol.swift | 7 ++ .../InterviewPreparationWidgetViewModel.swift | 17 +++++ ...nterviewPreparationWidgetContentView.swift | 58 ++++++++++++++ .../InterviewPreparationWidgetErrorView.swift | 33 ++++++++ .../InterviewPreparationWidgetView.swift | 58 ++++++++++++++ .../TopicsRepetitionsCountView.swift | 32 ++------ ...tageImplementStageCompletedModalView.swift | 2 +- .../Sources/Modules/Step/StepViewModel.swift | 34 +++++++++ ...terviewPreparationCompletedModalView.swift | 45 +++++++++++ ...parationCompletedModalViewController.swift | 49 ++++++++++++ .../Sources/Modules/Step/Views/StepView.swift | 18 +++-- .../presentation/StepCompletionFeature.kt | 1 + .../presentation/StepCompletionReducer.kt | 2 +- 24 files changed, 597 insertions(+), 74 deletions(-) create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Frameworks/sharedSwift/Extensions/InterviewPreparationWidgetViewStateKsExtensions.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/Home/Views/HomeWidgetCountView.swift delete mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/ChallengeWidget/Views/ChallengeWidgetSkeletonView.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetAssembly.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetOutputProtocol.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetViewModel.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetContentView.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetErrorView.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetView.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/Modals/InterviewPreparationCompleted/InterviewPreparationCompletedModalView.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/Modals/InterviewPreparationCompleted/InterviewPreparationCompletedModalViewController.swift diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt index 859fe0dbb4..b7f686dc84 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/step/view/delegate/StepDelegate.kt @@ -52,6 +52,11 @@ class StepDelegate( mainScreenRouter.switch(Tabs.STUDY_PLAN) } + StepCompletionFeature.Action.ViewAction.NavigateTo.Home -> { + fragment.requireRouter().backTo(MainScreen(Tabs.TRAINING)) + mainScreenRouter.switch(Tabs.TRAINING) + } + is StepCompletionFeature.Action.ViewAction.ReloadStep -> { fragment.requireRouter().replaceScreen(StepScreen(stepCompletionAction.stepRoute)) } diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index 4439377d6e..0882faa5b9 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -70,6 +70,17 @@ 2C177EC32837B65500D841DB /* View+Frame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C177EC22837B65500D841DB /* View+Frame.swift */; }; 2C1860FC2923C540007D4EBF /* AppFeatureStateKsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C1860FB2923C540007D4EBF /* AppFeatureStateKsExtensions.swift */; }; 2C186AC72B46726D00DADB26 /* InterviewPreparationOnboardingContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186AC62B46726D00DADB26 /* InterviewPreparationOnboardingContentView.swift */; }; + 2C186ACA2B468B6100DADB26 /* InterviewPreparationWidgetAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186AC92B468B6100DADB26 /* InterviewPreparationWidgetAssembly.swift */; }; + 2C186ACC2B468B6C00DADB26 /* InterviewPreparationWidgetOutputProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186ACB2B468B6C00DADB26 /* InterviewPreparationWidgetOutputProtocol.swift */; }; + 2C186ACE2B468B7D00DADB26 /* InterviewPreparationWidgetViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186ACD2B468B7D00DADB26 /* InterviewPreparationWidgetViewModel.swift */; }; + 2C186AD12B468BDB00DADB26 /* InterviewPreparationWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186AD02B468BDB00DADB26 /* InterviewPreparationWidgetView.swift */; }; + 2C186AD32B468DBE00DADB26 /* InterviewPreparationWidgetViewStateKsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186AD22B468DBE00DADB26 /* InterviewPreparationWidgetViewStateKsExtensions.swift */; }; + 2C186AD52B46916B00DADB26 /* InterviewPreparationWidgetErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186AD42B46916B00DADB26 /* InterviewPreparationWidgetErrorView.swift */; }; + 2C186AD72B4693E200DADB26 /* InterviewPreparationWidgetContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186AD62B4693E200DADB26 /* InterviewPreparationWidgetContentView.swift */; }; + 2C186AD92B46969D00DADB26 /* HomeWidgetCountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186AD82B46969D00DADB26 /* HomeWidgetCountView.swift */; }; + 2C186ADB2B46989700DADB26 /* TopicsRepetitionsCountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186ADA2B46989700DADB26 /* TopicsRepetitionsCountView.swift */; }; + 2C186ADD2B46A08E00DADB26 /* InterviewPreparationCompletedModalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186ADC2B46A08E00DADB26 /* InterviewPreparationCompletedModalViewController.swift */; }; + 2C186ADF2B46A0A300DADB26 /* InterviewPreparationCompletedModalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C186ADE2B46A0A300DADB26 /* InterviewPreparationCompletedModalView.swift */; }; 2C198DFE2AEA444100DCD35A /* FillBlanksSelectContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C198DFD2AEA444100DCD35A /* FillBlanksSelectContainerView.swift */; }; 2C198E012AEA835F00DCD35A /* StepQuizFillBlanksSelectOptionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C198E002AEA835F00DCD35A /* StepQuizFillBlanksSelectOptionsView.swift */; }; 2C198E032AEA869300DCD35A /* StepQuizFillBlanksSelectOptionsCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C198E022AEA869300DCD35A /* StepQuizFillBlanksSelectOptionsCollectionViewCell.swift */; }; @@ -377,7 +388,6 @@ 2CB0ADF02B04B2E30089D557 /* ChallengeWidgetErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB0ADEF2B04B2E30089D557 /* ChallengeWidgetErrorView.swift */; }; 2CB0ADF22B04BB310089D557 /* ChallengeWidgetOutputProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB0ADF12B04BB310089D557 /* ChallengeWidgetOutputProtocol.swift */; }; 2CB0ADF52B04BC8E0089D557 /* ChallengeWidgetAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB0ADF42B04BC8E0089D557 /* ChallengeWidgetAssembly.swift */; }; - 2CB0ADF72B04CCBA0089D557 /* ChallengeWidgetSkeletonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB0ADF62B04CCBA0089D557 /* ChallengeWidgetSkeletonView.swift */; }; 2CB0ADF92B04D0EF0089D557 /* ChallengeWidgetContentStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB0ADF82B04D0EF0089D557 /* ChallengeWidgetContentStateView.swift */; }; 2CB0ADFC2B04D3180089D557 /* ChallengeWidgetContentStateHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB0ADFB2B04D3180089D557 /* ChallengeWidgetContentStateHeaderView.swift */; }; 2CB0ADFE2B04DD170089D557 /* ChallengeWidgetViewStateKsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB0ADFD2B04DD170089D557 /* ChallengeWidgetViewStateKsExtensions.swift */; }; @@ -531,7 +541,6 @@ E94BB04A2A9DFAD700736B7C /* StepQuizParsonsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94BB0492A9DFAD700736B7C /* StepQuizParsonsViewModel.swift */; }; E94BB04C2A9DFCCF00736B7C /* StepQuizParsonsViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94BB04B2A9DFCCF00736B7C /* StepQuizParsonsViewData.swift */; }; E94BB04E2A9E034700736B7C /* StepQuizParsonsAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94BB04D2A9E034700736B7C /* StepQuizParsonsAssembly.swift */; }; - E94BC942291E89D6000B18D3 /* TopicsRepetitionsCountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94BC941291E89D6000B18D3 /* TopicsRepetitionsCountView.swift */; }; E94BC944291E8BF5000B18D3 /* TopicsRepetitionsInfoBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94BC943291E8BF5000B18D3 /* TopicsRepetitionsInfoBlock.swift */; }; E94BC946291E8F40000B18D3 /* TopicsRepetitionsChartBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94BC945291E8F40000B18D3 /* TopicsRepetitionsChartBlock.swift */; }; E94D238D28057F440003273F /* AuthCredentialsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94D238C28057F440003273F /* AuthCredentialsView.swift */; }; @@ -737,6 +746,17 @@ 2C177EC22837B65500D841DB /* View+Frame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Frame.swift"; sourceTree = ""; }; 2C1860FB2923C540007D4EBF /* AppFeatureStateKsExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppFeatureStateKsExtensions.swift; sourceTree = ""; }; 2C186AC62B46726D00DADB26 /* InterviewPreparationOnboardingContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationOnboardingContentView.swift; sourceTree = ""; }; + 2C186AC92B468B6100DADB26 /* InterviewPreparationWidgetAssembly.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationWidgetAssembly.swift; sourceTree = ""; }; + 2C186ACB2B468B6C00DADB26 /* InterviewPreparationWidgetOutputProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationWidgetOutputProtocol.swift; sourceTree = ""; }; + 2C186ACD2B468B7D00DADB26 /* InterviewPreparationWidgetViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationWidgetViewModel.swift; sourceTree = ""; }; + 2C186AD02B468BDB00DADB26 /* InterviewPreparationWidgetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationWidgetView.swift; sourceTree = ""; }; + 2C186AD22B468DBE00DADB26 /* InterviewPreparationWidgetViewStateKsExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationWidgetViewStateKsExtensions.swift; sourceTree = ""; }; + 2C186AD42B46916B00DADB26 /* InterviewPreparationWidgetErrorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationWidgetErrorView.swift; sourceTree = ""; }; + 2C186AD62B4693E200DADB26 /* InterviewPreparationWidgetContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationWidgetContentView.swift; sourceTree = ""; }; + 2C186AD82B46969D00DADB26 /* HomeWidgetCountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeWidgetCountView.swift; sourceTree = ""; }; + 2C186ADA2B46989700DADB26 /* TopicsRepetitionsCountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopicsRepetitionsCountView.swift; sourceTree = ""; }; + 2C186ADC2B46A08E00DADB26 /* InterviewPreparationCompletedModalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationCompletedModalViewController.swift; sourceTree = ""; }; + 2C186ADE2B46A0A300DADB26 /* InterviewPreparationCompletedModalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterviewPreparationCompletedModalView.swift; sourceTree = ""; }; 2C198DFD2AEA444100DCD35A /* FillBlanksSelectContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FillBlanksSelectContainerView.swift; sourceTree = ""; }; 2C198E002AEA835F00DCD35A /* StepQuizFillBlanksSelectOptionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizFillBlanksSelectOptionsView.swift; sourceTree = ""; }; 2C198E022AEA869300DCD35A /* StepQuizFillBlanksSelectOptionsCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizFillBlanksSelectOptionsCollectionViewCell.swift; sourceTree = ""; }; @@ -1051,7 +1071,6 @@ 2CB0ADEF2B04B2E30089D557 /* ChallengeWidgetErrorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChallengeWidgetErrorView.swift; sourceTree = ""; }; 2CB0ADF12B04BB310089D557 /* ChallengeWidgetOutputProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChallengeWidgetOutputProtocol.swift; sourceTree = ""; }; 2CB0ADF42B04BC8E0089D557 /* ChallengeWidgetAssembly.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChallengeWidgetAssembly.swift; sourceTree = ""; }; - 2CB0ADF62B04CCBA0089D557 /* ChallengeWidgetSkeletonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChallengeWidgetSkeletonView.swift; sourceTree = ""; }; 2CB0ADF82B04D0EF0089D557 /* ChallengeWidgetContentStateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChallengeWidgetContentStateView.swift; sourceTree = ""; }; 2CB0ADFB2B04D3180089D557 /* ChallengeWidgetContentStateHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChallengeWidgetContentStateHeaderView.swift; sourceTree = ""; }; 2CB0ADFD2B04DD170089D557 /* ChallengeWidgetViewStateKsExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChallengeWidgetViewStateKsExtensions.swift; sourceTree = ""; }; @@ -1212,7 +1231,6 @@ E94BB0492A9DFAD700736B7C /* StepQuizParsonsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizParsonsViewModel.swift; sourceTree = ""; }; E94BB04B2A9DFCCF00736B7C /* StepQuizParsonsViewData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizParsonsViewData.swift; sourceTree = ""; }; E94BB04D2A9E034700736B7C /* StepQuizParsonsAssembly.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizParsonsAssembly.swift; sourceTree = ""; }; - E94BC941291E89D6000B18D3 /* TopicsRepetitionsCountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopicsRepetitionsCountView.swift; sourceTree = ""; }; E94BC943291E8BF5000B18D3 /* TopicsRepetitionsInfoBlock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopicsRepetitionsInfoBlock.swift; sourceTree = ""; }; E94BC945291E8F40000B18D3 /* TopicsRepetitionsChartBlock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopicsRepetitionsChartBlock.swift; sourceTree = ""; }; E94D238C28057F440003273F /* AuthCredentialsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCredentialsView.swift; sourceTree = ""; }; @@ -1569,6 +1587,7 @@ 2CB0ADFD2B04DD170089D557 /* ChallengeWidgetViewStateKsExtensions.swift */, 2C8CD9AD2994EFC5008DC09D /* DebugFeatureViewStateKsExtensions.swift */, E9A1DA6F2ACFF86B006A9D4B /* FirstProblemOnboardingFeatureViewStateKsExtensions.swift */, + 2C186AD22B468DBE00DADB26 /* InterviewPreparationWidgetViewStateKsExtensions.swift */, E9B55A5429C8A03E0066900E /* ProblemsLimitFeatureViewStateKsExtensions.swift */, 2C0DFB992923BB4300D30921 /* ProfileFeatureStateKsExtensions.swift */, 2C0FA878292FD73400A37636 /* ProfileSettingsFeatureStateKsExtensions.swift */, @@ -1595,6 +1614,36 @@ path = Views; sourceTree = ""; }; + 2C186AC82B468ABA00DADB26 /* InterviewPreparationWidget */ = { + isa = PBXGroup; + children = ( + 2C186AC92B468B6100DADB26 /* InterviewPreparationWidgetAssembly.swift */, + 2C186ACB2B468B6C00DADB26 /* InterviewPreparationWidgetOutputProtocol.swift */, + 2C186ACD2B468B7D00DADB26 /* InterviewPreparationWidgetViewModel.swift */, + 2C186ACF2B468BC700DADB26 /* Views */, + ); + path = InterviewPreparationWidget; + sourceTree = ""; + }; + 2C186ACF2B468BC700DADB26 /* Views */ = { + isa = PBXGroup; + children = ( + 2C186AD62B4693E200DADB26 /* InterviewPreparationWidgetContentView.swift */, + 2C186AD42B46916B00DADB26 /* InterviewPreparationWidgetErrorView.swift */, + 2C186AD02B468BDB00DADB26 /* InterviewPreparationWidgetView.swift */, + ); + path = Views; + sourceTree = ""; + }; + 2C186AE02B46A0AB00DADB26 /* InterviewPreparationCompleted */ = { + isa = PBXGroup; + children = ( + 2C186ADE2B46A0A300DADB26 /* InterviewPreparationCompletedModalView.swift */, + 2C186ADC2B46A08E00DADB26 /* InterviewPreparationCompletedModalViewController.swift */, + ); + path = InterviewPreparationCompleted; + sourceTree = ""; + }; 2C198DFC2AEA441E00DCD35A /* Select */ = { isa = PBXGroup; children = ( @@ -2985,6 +3034,7 @@ isa = PBXGroup; children = ( 2CB0ADEA2B04ACDB0089D557 /* ChallengeWidget */, + 2C186AC82B468ABA00DADB26 /* InterviewPreparationWidget */, E9F655CF2875B31B00291143 /* ProblemOfDay */, E9A5B98A2924FACD00EF0F39 /* TopicsRepetitions */, ); @@ -3006,7 +3056,6 @@ isa = PBXGroup; children = ( 2CB0ADEF2B04B2E30089D557 /* ChallengeWidgetErrorView.swift */, - 2CB0ADF62B04CCBA0089D557 /* ChallengeWidgetSkeletonView.swift */, 2CB0ADEB2B04AD550089D557 /* ChallengeWidgetView.swift */, 2CB0ADFA2B04D3010089D557 /* Content */, ); @@ -3192,6 +3241,7 @@ children = ( E97BEA1D2977D26F00348EEC /* TopicCompletedModalViewController.swift */, E9CC6C0329893D8400D8D070 /* TopicCompletedModalViewControllerDelegate.swift */, + 2C186AE02B46A0AB00DADB26 /* InterviewPreparationCompleted */, ); path = Modals; sourceTree = ""; @@ -3414,6 +3464,7 @@ 2CDA98422944524D00ADE539 /* HomeSkeletonView.swift */, 2C55E1912A05706300FE58D7 /* HomeSubheadlineView.swift */, 2C963BC42812D1A70036DD53 /* HomeView.swift */, + 2C186AD82B46969D00DADB26 /* HomeWidgetCountView.swift */, ); path = Views; sourceTree = ""; @@ -3827,7 +3878,7 @@ children = ( 2C7036E92943A34000775E87 /* TopicsRepetitionsCardSkeletonView.swift */, E9A022AD291D0E3F004317DB /* TopicsRepetitionsCardView.swift */, - E94BC941291E89D6000B18D3 /* TopicsRepetitionsCountView.swift */, + 2C186ADA2B46989700DADB26 /* TopicsRepetitionsCountView.swift */, ); path = TopicsRepetitions; sourceTree = ""; @@ -4373,6 +4424,7 @@ 2C082B1528E4A3D70089DBEB /* StepQuizChildQuizInputProtocol.swift in Sources */, 2C41127828376F6D004948A3 /* StepQuizDiscussionsButton.swift in Sources */, 2C43CDFB28B56AE600E74762 /* AuthPreviews.swift in Sources */, + 2C186AD92B46969D00DADB26 /* HomeWidgetCountView.swift in Sources */, 2C725B612809125700A49043 /* LayoutInsets.swift in Sources */, 2CEB50CE288AACEA0044F9AB /* StepQuizCodeFullScreenTab.swift in Sources */, 2CEB50C8288A94050044F9AB /* BlockExtensions.swift in Sources */, @@ -4392,6 +4444,7 @@ 2C05AC512A0EACF50039C7EF /* ProjectSelectionListSkeletonView.swift in Sources */, 2CAE8CF0280525BE00E6C83D /* StepViewModel.swift in Sources */, 2C42EFB327F2EA7B00B4648B /* StringResource+Localized.swift in Sources */, + 2C186AD32B468DBE00DADB26 /* InterviewPreparationWidgetViewStateKsExtensions.swift in Sources */, 2C2FD622281920B1004E7AF6 /* SentryInfo.swift in Sources */, 2C0DB91C28645ADA001EA35E /* CodeCompletionKeywords.swift in Sources */, 2CA8E093281039EB00154088 /* OutlineButtonStyle.swift in Sources */, @@ -4441,7 +4494,6 @@ 2CFD32442AAEFC4D00B9B6EA /* IosFCMTokenProviderImpl.swift in Sources */, 2C5F4A5A2971C71200677530 /* GamificationToolbarContent.swift in Sources */, 2C5B2A1F286595AF0097B270 /* CodeCompletionTableViewController.swift in Sources */, - E94BC942291E89D6000B18D3 /* TopicsRepetitionsCountView.swift in Sources */, 2C8E4FB12848C9050011ADFA /* StepQuizTableSelectColumnsView.swift in Sources */, 2CCCA3A12862E62F00D98089 /* StepQuizStringViewData.swift in Sources */, 2C1061A2285C349400EBD614 /* StepQuizChildQuizAssembly.swift in Sources */, @@ -4465,6 +4517,7 @@ 2C55133B28B8DFE8009F7627 /* Debouncer.swift in Sources */, 2C7CB6882ADFF57D006F78DA /* FillBlanksQuizViewWrapper.swift in Sources */, 2C56611A2AEA418D00D607FB /* FillBlanksSelectCollectionViewCell.swift in Sources */, + 2C186ACA2B468B6100DADB26 /* InterviewPreparationWidgetAssembly.swift in Sources */, E9A6250D28ABAE30009423EE /* WelcomeAssembly.swift in Sources */, 2C336D172865C9CD00C91342 /* UIView+TraitCollection.swift in Sources */, 2CD48D872858639500CFCC4A /* StepQuizViewModel.swift in Sources */, @@ -4486,7 +4539,6 @@ E9A1DA702ACFF86B006A9D4B /* FirstProblemOnboardingFeatureViewStateKsExtensions.swift in Sources */, 2C8E4FB42848CB980011ADFA /* StepQuizTableSelectColumnsColumnView.swift in Sources */, 2C83FBC22B1781FA007AD7E2 /* LeaderboardListRowView.swift in Sources */, - 2CB0ADF72B04CCBA0089D557 /* ChallengeWidgetSkeletonView.swift in Sources */, 2CEB33772949930B00B9E437 /* StepQuizSQLSkeletonView.swift in Sources */, 2CB45762288EC29D007C2D77 /* StepQuizActionButtons.swift in Sources */, E9859B91292E414300857679 /* RepeatButtonInfo.swift in Sources */, @@ -4513,6 +4565,7 @@ E94BB04A2A9DFAD700736B7C /* StepQuizParsonsViewModel.swift in Sources */, 2C5B2A1D286595960097B270 /* CodeCompletionTableViewCell.swift in Sources */, 2C27C77E28773042006A641A /* NukeManager.swift in Sources */, + 2C186ACC2B468B6C00DADB26 /* InterviewPreparationWidgetOutputProtocol.swift in Sources */, 2C0DB91028645332001EA35E /* CodeEditorTheme.swift in Sources */, 2CBD1919291D399500F5FB0B /* UIKitBounceButton.swift in Sources */, 2CAA3C6D2AA9CA9D004F6CE6 /* StepQuizProblemOnboardingModalViewController.swift in Sources */, @@ -4559,11 +4612,13 @@ 2CC7833E295DAE3E00A867CD /* WelcomeFeatureStateKsExtensions.swift in Sources */, 2C45E7C52A0FEE7A00DFF32D /* StarRatingView.swift in Sources */, 2CA7614B2926272500987B66 /* StepQuizFeedbackView.swift in Sources */, + 2C186AD72B4693E200DADB26 /* InterviewPreparationWidgetContentView.swift in Sources */, 2C58DE292803D197002A2774 /* UIColor+DynamicColor.swift in Sources */, 2C2D73442B1736E000CBB1DA /* AppTabItemsAvailabilityService.swift in Sources */, E996D414292228A700A47498 /* TopicsRepetitionsView.swift in Sources */, 2CAE8D092805789100E6C83D /* StepCommentsStatisticsView.swift in Sources */, E94BB0462A9DEF7C00736B7C /* StepQuizParsonsControlsView.swift in Sources */, + 2C186ADD2B46A08E00DADB26 /* InterviewPreparationCompletedModalViewController.swift in Sources */, 2C5CBBE72948FC7A00113007 /* StepQuizSQLView.swift in Sources */, 2C54E4262A1F7086003406B9 /* TrackSelectionDetailsDescriptionView.swift in Sources */, 2C05AC462A0E9EBC0039C7EF /* ProjectSelectionListFeatureViewStateKsExtensions.swift in Sources */, @@ -4572,6 +4627,7 @@ E9AB311429DED7FE00645376 /* StudyPlanSectionItemIconView.swift in Sources */, 2C7CB66B2ADFB947006F78DA /* StepQuizFillBlanksAssembly.swift in Sources */, 2CBC97CA2A5553330078E445 /* StageImplementStageCompletedModalViewController.swift in Sources */, + 2C186ACE2B468B7D00DADB26 /* InterviewPreparationWidgetViewModel.swift in Sources */, 2C20FBC9284F6F97006D879E /* UnitConverters.swift in Sources */, 2C336D152865C49D00C91342 /* ApplicationThemeService.swift in Sources */, 2C3796122877001700C197E2 /* ProfileHeaderView.swift in Sources */, @@ -4625,6 +4681,7 @@ E94BC944291E8BF5000B18D3 /* TopicsRepetitionsInfoBlock.swift in Sources */, 2CF7C1B62A835E82006B07ED /* BadgeRemoteImageView.swift in Sources */, E9F0A2AC29D4355B00C4A61E /* StudyPlanSectionItemView.swift in Sources */, + 2C186AD12B468BDB00DADB26 /* InterviewPreparationWidgetView.swift in Sources */, 2C5B2A1B286595810097B270 /* CodeCompletionCellView.swift in Sources */, E9D69A4028084FF7000E114E /* AuthCredentialsErrorView.swift in Sources */, 2C54E42D2A1F9623003406B9 /* TrackSelectionDetailsTrackOverviewView.swift in Sources */, @@ -4817,6 +4874,7 @@ 2CE7B4872AB05D0400DCBE4D /* StepQuizParsonsViewDataMapper.swift in Sources */, 2C9CC1BD280920B5006604D7 /* KeyboardManager.swift in Sources */, 2CD4148329A8C98000ACA855 /* OpaqueUIPasteControl.swift in Sources */, + 2C186ADB2B46989700DADB26 /* TopicsRepetitionsCountView.swift in Sources */, 2CF7C1B12A8355D3006B07ED /* BadgeLockedImageView.swift in Sources */, 2CE8EE6F2B066C2F004EB545 /* ChallengeWidgetContentStateCollectRewardButton.swift in Sources */, 2C32375328380C340062CAF6 /* NavigationToolbarInfoItem.swift in Sources */, @@ -4835,6 +4893,7 @@ 2C069EB128F03782009A3DA1 /* AnalyticExtensions.swift in Sources */, 2C688C032A4E8F900061AFFD /* ProgressScreenTrackProgressView.swift in Sources */, 2CDA9838294432C900ADE539 /* SkeletonCircleView.swift in Sources */, + 2C186AD52B46916B00DADB26 /* InterviewPreparationWidgetErrorView.swift in Sources */, 2C4F63A32A104EA300D4EE39 /* ProjectSelectionListGridSectionSkeletonView.swift in Sources */, 2C2600832A1FE28F00BD3D39 /* TrackSelectionDetailsSkeletonView.swift in Sources */, E99CD0BA292B982400620259 /* TopicsRepetitionsAssembly.swift in Sources */, @@ -4848,6 +4907,7 @@ 2C82BA322844B01D004C9013 /* PlaceholderView+Configurations.swift in Sources */, 2C25BFD52851F8F00036C689 /* UIColor+DesignSystem.swift in Sources */, 2C023C8D285DCA4300D2D5A9 /* DatasetExtensions.swift in Sources */, + 2C186ADF2B46A0A300DADB26 /* InterviewPreparationCompletedModalView.swift in Sources */, E91017152832975C002E70F5 /* CheckboxButton.swift in Sources */, 2C99B1002A14255F0018627B /* StudyPlanWidgetViewStateSectionItemStateWrapper.swift in Sources */, E9E964872A0B8D8200841DF6 /* StepQuizProblemsLimitView.swift in Sources */, diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Frameworks/sharedSwift/Extensions/InterviewPreparationWidgetViewStateKsExtensions.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Frameworks/sharedSwift/Extensions/InterviewPreparationWidgetViewStateKsExtensions.swift new file mode 100644 index 0000000000..1916618122 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Frameworks/sharedSwift/Extensions/InterviewPreparationWidgetViewStateKsExtensions.swift @@ -0,0 +1,62 @@ +import Foundation +import shared + +extension InterviewPreparationWidgetViewStateKs: Equatable { + public static func == ( + lhs: InterviewPreparationWidgetViewStateKs, + rhs: InterviewPreparationWidgetViewStateKs + ) -> Bool { + switch (lhs, rhs) { + case (.idle, .idle): + true + case (.empty, .empty): + true + case (.error, .error): + true + case (.loading(let lhsData), .loading(let rhsData)): + lhsData.isEqual(rhsData) + case (.content(let lhsData), .content(let rhsData)): + lhsData.isEqual(rhsData) + case (.content, .empty): + false + case (.content, .error): + false + case (.content, .idle): + false + case (.content, .loading): + false + case (.loading, .content): + false + case (.loading, .empty): + false + case (.loading, .error): + false + case (.loading, .idle): + false + case (.error, .content): + false + case (.error, .empty): + false + case (.error, .idle): + false + case (.error, .loading): + false + case (.empty, .content): + false + case (.empty, .error): + false + case (.empty, .idle): + false + case (.empty, .loading): + false + case (.idle, .content): + false + case (.idle, .empty): + false + case (.idle, .error): + false + case (.idle, .loading): + false + } + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Images/Images.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Images/Images.swift index 7325f96a48..9a5a368464 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Images/Images.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Images/Images.swift @@ -68,10 +68,6 @@ enum Images { static let icon = "stage-implement-unsupported-modal-icon" } - enum StageCompletedModal { - static let icon = "stage-implement-stage-completed-modal-icon" - } - enum ProjectCompletedModal { static let icon = "stage-implement-project-completed-modal-icon" } diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Strings.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Strings.swift index 21ce36a221..90dc276bee 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Strings.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Strings.swift @@ -257,6 +257,32 @@ enum Strings { static let networkError = sharedStrings.challenge_widget_network_error_text.localized() } + // MARK: - Interview Preparation - + + // MARK: Widget + + enum InterviewPreparationWidget { + static let title = sharedStrings.interview_preparation_widget_title.localized() + static let networkError = sharedStrings.interview_preparation_widget_network_error_text.localized() + } + + // MARK: Onboarding + + enum InterviewPreparationOnboarding { + static let navigationTitle = sharedStrings.interview_preparation_onboarding_screen_title.localized() + + static let title = sharedStrings.interview_preparation_onboarding_title.localized() + static let description = sharedStrings.interview_preparation_onboarding_description.localized() + static let callToActionButton = sharedStrings.interview_preparation_onboarding_go_to_first_problem.localized() + } + + // MARK: Completed modal + + enum InterviewPreparationCompletedModal { + static let title = sharedStrings.interview_preparation_finished_modal_title.localized() + static let description = sharedStrings.interview_preparation_finished_modal_description.localized() + } + // MARK: - Topics widget - enum TopicsWidget { @@ -583,14 +609,4 @@ enum Strings { static let placeholderErrorDescription = sharedStrings.search_placeholder_error_description.localized() } - - // MARK: - InterviewPreparationOnboarding - - - enum InterviewPreparationOnboarding { - static let navigationTitle = sharedStrings.interview_preparation_onboarding_screen_title.localized() - - static let title = sharedStrings.interview_preparation_onboarding_title.localized() - static let description = sharedStrings.interview_preparation_onboarding_description.localized() - static let callToActionButton = sharedStrings.interview_preparation_onboarding_go_to_first_problem.localized() - } } diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Home/HomeViewModel.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Home/HomeViewModel.swift index f04ffac5e6..ee106cc42c 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Home/HomeViewModel.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Home/HomeViewModel.swift @@ -6,9 +6,15 @@ final class HomeViewModel: FeatureViewModel some View { switch viewStateKs { - case .idle: + case .idle, .empty: EmptyView() case .loading(let data): if data.shouldShowSkeleton { - ChallengeWidgetSkeletonView() + SkeletonRoundedView() + .frame(height: appearance.skeletonHeight) } else { EmptyView() } @@ -34,8 +36,6 @@ struct ChallengeWidgetView: View { backgroundColor: appearance.backgroundColor, action: viewModel.doRetryContentLoading ) - case .empty: - EmptyView() case .content(let contentState): ChallengeWidgetContentStateView( appearance: .init(backgroundColor: appearance.backgroundColor), diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetAssembly.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetAssembly.swift new file mode 100644 index 0000000000..15cf66a1d6 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetAssembly.swift @@ -0,0 +1,26 @@ +import shared +import SwiftUI + +final class InterviewPreparationWidgetAssembly: Assembly { + weak var moduleOutput: InterviewPreparationWidgetOutputProtocol? + + private let interviewPreparationWidgetViewStateKs: InterviewPreparationWidgetViewStateKs + + init( + interviewPreparationWidgetViewStateKs: InterviewPreparationWidgetViewStateKs, + moduleOutput: InterviewPreparationWidgetOutputProtocol? + ) { + self.interviewPreparationWidgetViewStateKs = interviewPreparationWidgetViewStateKs + self.moduleOutput = moduleOutput + } + + func makeModule() -> InterviewPreparationWidgetView { + let viewModel = InterviewPreparationWidgetViewModel() + viewModel.moduleOutput = moduleOutput + + return InterviewPreparationWidgetView( + viewStateKs: interviewPreparationWidgetViewStateKs, + viewModel: viewModel + ) + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetOutputProtocol.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetOutputProtocol.swift new file mode 100644 index 0000000000..94742917ca --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetOutputProtocol.swift @@ -0,0 +1,7 @@ +import Foundation + +protocol InterviewPreparationWidgetOutputProtocol: AnyObject { + func handleInterviewPreparationWidgetCallToAction() + func handleInterviewPreparationWidgetRetryContentLoading() + func handleInterviewPreparationWidgetDidAppear() +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetViewModel.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetViewModel.swift new file mode 100644 index 0000000000..366310ccf6 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/InterviewPreparationWidgetViewModel.swift @@ -0,0 +1,17 @@ +import Foundation + +final class InterviewPreparationWidgetViewModel { + weak var moduleOutput: InterviewPreparationWidgetOutputProtocol? + + func doCallToAction() { + moduleOutput?.handleInterviewPreparationWidgetCallToAction() + } + + func doRetryContentLoading() { + moduleOutput?.handleInterviewPreparationWidgetRetryContentLoading() + } + + func logViewedEvent() { + moduleOutput?.handleInterviewPreparationWidgetDidAppear() + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetContentView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetContentView.swift new file mode 100644 index 0000000000..0ee9a69cb7 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetContentView.swift @@ -0,0 +1,58 @@ +import SwiftUI + +extension InterviewPreparationWidgetContentView { + struct Appearance { + var backgroundColor = Color(ColorPalette.surface) + + let spacing = LayoutInsets.defaultInset + + let arrowIconSize: CGFloat = 32 + } +} + +struct InterviewPreparationWidgetContentView: View { + private(set) var appearance = Appearance() + + let countText: String + let description: String + + let onTap: () -> Void + + var body: some View { + Button( + action: onTap, + label: { + VStack(alignment: .leading, spacing: appearance.spacing) { + HStack(spacing: LayoutInsets.smallInset) { + Text(Strings.InterviewPreparationWidget.title) + .font(.headline) + .foregroundColor(.primaryText) + + Spacer() + + Image(.problemOfDayArrowUncompleted) + .renderingMode(.original) + .resizable() + .frame(widthHeight: appearance.arrowIconSize) + } + + HomeWidgetCountView(countText: countText, description: description) + } + .padding() + .background(appearance.backgroundColor) + .addBorder() + } + ) + .buttonStyle(BounceButtonStyle()) + } +} + +#Preview { + InterviewPreparationWidgetContentView( + countText: "25", + description: "problems at the hard level to solve", + onTap: {} + ) + .padding() + .background(Color.systemGroupedBackground) +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetErrorView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetErrorView.swift new file mode 100644 index 0000000000..3002d0a020 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetErrorView.swift @@ -0,0 +1,33 @@ +import SwiftUI + +struct InterviewPreparationWidgetErrorView: View { + let backgroundColor: Color + + let action: () -> Void + + var body: some View { + PlaceholderView( + configuration: .init( + presentationMode: .local, + image: .reload, + title: .init(text: Strings.InterviewPreparationWidget.networkError), + button: .init(text: Strings.Placeholder.networkErrorButtonText, action: action, style: .outline()), + primaryContentAlignment: .horizontal(), + interItemSpacing: LayoutInsets.defaultInset, + backgroundColor: .clear + ) + ) + .padding() + .background(backgroundColor) + .addBorder() + } +} + +#Preview { + InterviewPreparationWidgetErrorView( + backgroundColor: .systemBackground, + action: {} + ) + .padding() + .background(Color.systemGroupedBackground) +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetView.swift new file mode 100644 index 0000000000..a344bdab39 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/InterviewPreparationWidget/Views/InterviewPreparationWidgetView.swift @@ -0,0 +1,58 @@ +import SwiftUI + +extension InterviewPreparationWidgetView { + struct Appearance { + let backgroundColor = Color(ColorPalette.surface) + let skeletonHeight: CGFloat = 114 + } +} + +struct InterviewPreparationWidgetView: View { + private(set) var appearance = Appearance() + + let viewStateKs: InterviewPreparationWidgetViewStateKs + + let viewModel: InterviewPreparationWidgetViewModel + + var body: some View { + ZStack { + UIViewControllerEventsWrapper( + onViewDidAppear: viewModel.logViewedEvent + ) + buildBody() + } + } + + @ViewBuilder + private func buildBody() -> some View { + switch viewStateKs { + case .idle, .empty: + EmptyView() + case .loading(let data): + if data.shouldShowSkeleton { + SkeletonRoundedView() + .frame(height: appearance.skeletonHeight) + } else { + EmptyView() + } + case .error: + InterviewPreparationWidgetErrorView( + backgroundColor: appearance.backgroundColor, + action: viewModel.doRetryContentLoading + ) + case .content(let contentState): + InterviewPreparationWidgetContentView( + appearance: .init(backgroundColor: appearance.backgroundColor), + countText: contentState.formattedStepsCount, + description: contentState.description_, + onTap: viewModel.doCallToAction + ) + } + } +} + +extension InterviewPreparationWidgetView: Equatable { + static func == (lhs: InterviewPreparationWidgetView, rhs: InterviewPreparationWidgetView) -> Bool { + lhs.viewStateKs == rhs.viewStateKs + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/TopicsRepetitions/TopicsRepetitionsCountView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/TopicsRepetitions/TopicsRepetitionsCountView.swift index 8910bf2995..bc42aae51d 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/TopicsRepetitions/TopicsRepetitionsCountView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/HomeSubmodules/TopicsRepetitions/TopicsRepetitionsCountView.swift @@ -1,38 +1,18 @@ import SwiftUI -extension TopicsRepetitionsCountView { - struct Appearance { - let topicsCountHorizontalPadding: CGFloat = 12 - let countMinWidthHeight: CGFloat = 32 - } -} - struct TopicsRepetitionsCountView: View { - private(set) var appearance = Appearance() - private let formatter = Formatter.default let topicsToRepeatCount: Int var body: some View { - HStack(spacing: LayoutInsets.smallInset) { - Text(String(topicsToRepeatCount)) - .padding(LayoutInsets.smallInset) - .frame(minWidth: appearance.countMinWidthHeight, minHeight: appearance.countMinWidthHeight) - .font(.subheadline) - .foregroundColor(.primaryText) - .background(Color(ColorPalette.overlayBlueAlpha12)) - .cornerRadius(LayoutInsets.smallInset) - - Text(formatter.topicsToRepeatTodayCount(topicsToRepeatCount)) - .font(.subheadline) - .foregroundColor(.secondaryText) - } + HomeWidgetCountView( + countText: String(topicsToRepeatCount), + description: formatter.topicsToRepeatTodayCount(topicsToRepeatCount) + ) } } -struct TopicsRepetitionsCountView_Previews: PreviewProvider { - static var previews: some View { - TopicsRepetitionsCountView(topicsToRepeatCount: 4) - } +#Preview { + TopicsRepetitionsCountView(topicsToRepeatCount: 4) } diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StageImplement/Modals/StageCompleted/StageImplementStageCompletedModalView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StageImplement/Modals/StageCompleted/StageImplementStageCompletedModalView.swift index 59bf85984b..38fc10c084 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StageImplement/Modals/StageCompleted/StageImplementStageCompletedModalView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StageImplement/Modals/StageCompleted/StageImplementStageCompletedModalView.swift @@ -17,7 +17,7 @@ struct StageImplementStageCompletedModalView: View { var body: some View { VStack(alignment: .leading, spacing: appearance.spacing) { - Image(Images.StageImplement.StageCompletedModal.icon) + Image(.stageImplementStageCompletedModalIcon) .renderingMode(.original) .aspectRatio(contentMode: .fit) .frame(maxWidth: .infinity, alignment: .leading) diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/StepViewModel.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/StepViewModel.swift index 18251d14e6..99cacee073 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/StepViewModel.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/StepViewModel.swift @@ -223,3 +223,37 @@ extension StepViewModel: ShareStreakModalViewControllerDelegate { ) } } + +// MARK: - StepViewModel: InterviewPreparationCompletedModalViewControllerDelegate - + +extension StepViewModel: InterviewPreparationCompletedModalViewControllerDelegate { + func interviewPreparationCompletedModalViewControllerDidAppear( + _ viewController: InterviewPreparationCompletedModalViewController + ) { + onNewMessage( + StepFeatureMessageStepCompletionMessage( + message: StepCompletionFeatureMessageInterviewPreparationCompletedModalShownEventMessage() + ) + ) + } + + func interviewPreparationCompletedModalViewControllerDidDisappear( + _ viewController: InterviewPreparationCompletedModalViewController + ) { + onNewMessage( + StepFeatureMessageStepCompletionMessage( + message: StepCompletionFeatureMessageInterviewPreparationCompletedModalHiddenEventMessage() + ) + ) + } + + func interviewPreparationCompletedModalViewControllerDidTapCallToActionButton( + _ viewController: InterviewPreparationCompletedModalViewController + ) { + onNewMessage( + StepFeatureMessageStepCompletionMessage( + message: StepCompletionFeatureMessageInterviewPreparationCompletedModalGoToTrainingClicked() + ) + ) + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/Modals/InterviewPreparationCompleted/InterviewPreparationCompletedModalView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/Modals/InterviewPreparationCompleted/InterviewPreparationCompletedModalView.swift new file mode 100644 index 0000000000..72b4ef6e98 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/Modals/InterviewPreparationCompleted/InterviewPreparationCompletedModalView.swift @@ -0,0 +1,45 @@ +import SwiftUI + +extension InterviewPreparationCompletedModalView { + struct Appearance { + let spacing: CGFloat = LayoutInsets.defaultInset * 2 + let interitemSpacing = LayoutInsets.defaultInset + } +} + +struct InterviewPreparationCompletedModalView: View { + private(set) var appearance = Appearance() + + var onCallToActionTap: () -> Void = {} + + var body: some View { + VStack(alignment: .leading, spacing: appearance.spacing) { + Image(.stageImplementStageCompletedModalIcon) + .renderingMode(.original) + .aspectRatio(contentMode: .fit) + .frame(maxWidth: .infinity, alignment: .leading) + + VStack(alignment: .leading, spacing: appearance.interitemSpacing) { + Text(Strings.InterviewPreparationCompletedModal.title) + .font(.title2).bold() + .foregroundColor(.primaryText) + + Text(Strings.InterviewPreparationCompletedModal.description) + .font(.body) + .foregroundColor(.primaryText) + } + + Button( + Strings.Common.goToTraining, + action: onCallToActionTap + ) + .buttonStyle(.primary) + .shineEffect() + } + .padding([.horizontal, .bottom]) + } +} + +#Preview { + InterviewPreparationCompletedModalView() +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/Modals/InterviewPreparationCompleted/InterviewPreparationCompletedModalViewController.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/Modals/InterviewPreparationCompleted/InterviewPreparationCompletedModalViewController.swift new file mode 100644 index 0000000000..7da2ac9599 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/Modals/InterviewPreparationCompleted/InterviewPreparationCompletedModalViewController.swift @@ -0,0 +1,49 @@ +import SwiftUI + +protocol InterviewPreparationCompletedModalViewControllerDelegate: AnyObject { + func interviewPreparationCompletedModalViewControllerDidAppear( + _ viewController: InterviewPreparationCompletedModalViewController + ) + func interviewPreparationCompletedModalViewControllerDidDisappear( + _ viewController: InterviewPreparationCompletedModalViewController + ) + func interviewPreparationCompletedModalViewControllerDidTapCallToActionButton( + _ viewController: InterviewPreparationCompletedModalViewController + ) +} + +final class InterviewPreparationCompletedModalViewController: PanModalSwiftUIViewController< + InterviewPreparationCompletedModalView +> { + private weak var delegate: InterviewPreparationCompletedModalViewControllerDelegate? + + convenience init(delegate: InterviewPreparationCompletedModalViewControllerDelegate?) { + var view = InterviewPreparationCompletedModalView() + + self.init( + isPresented: .init(get: { false }, set: { _ in }), + content: { view } + ) + + view.onCallToActionTap = { [weak self] in + guard let strongSelf = self else { + return + } + + strongSelf.delegate?.interviewPreparationCompletedModalViewControllerDidTapCallToActionButton(strongSelf) + strongSelf.dismiss(animated: true) + } + + self.delegate = delegate + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + delegate?.interviewPreparationCompletedModalViewControllerDidAppear(self) + } + + override func viewDidDisappear(_ animated: Bool) { + super.viewDidDisappear(animated) + delegate?.interviewPreparationCompletedModalViewControllerDidDisappear(self) + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/StepView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/StepView.swift index 6d3199f46c..cf64aa8136 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/StepView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Step/Views/StepView.swift @@ -112,6 +112,9 @@ struct StepView: View { case .studyPlan: dismissPanModalAndNavigateBack() TabBarRouter(tab: .studyPlan).route() + case .home: + dismissPanModalAndNavigateBack() + TabBarRouter(tab: .home).route() } case .showProblemOfDaySolvedModal(let showProblemOfDaySolvedModalViewAction): presentDailyStepCompletedModal( @@ -141,8 +144,8 @@ struct StepView: View { // MARK: - StepView (Modals) - -extension StepView { - private func presentTopicCompletedModal(modalText: String, isNextStepAvailable: Bool) { +private extension StepView { + func presentTopicCompletedModal(modalText: String, isNextStepAvailable: Bool) { let modal = TopicCompletedModalViewController( modalText: modalText, isNextStepAvailable: isNextStepAvailable, @@ -151,7 +154,7 @@ extension StepView { panModalPresenter.presentPanModal(modal) } - private func presentDailyStepCompletedModal( + func presentDailyStepCompletedModal( earnedGemsText: String, shareStreakData: StepCompletionFeatureShareStreakData ) { @@ -163,7 +166,7 @@ extension StepView { panModalPresenter.presentPanModal(modal) } - private func presentShareStreakModal(streak: Int) { + func presentShareStreakModal(streak: Int) { let modal = ShareStreakModalViewController( streak: streak, delegate: viewModel @@ -171,13 +174,14 @@ extension StepView { panModalPresenter.presentPanModal(modal) } - private func presentShareStreakSystemModal(streak: Int) { + func presentShareStreakSystemModal(streak: Int) { let activityViewController = ShareStreakAction.makeActivityViewController(for: streak) modalRouter.present(module: activityViewController, modalPresentationStyle: .automatic) } - private func presentInterviewPreparationFinishedModal() { - #warning("TODO: ALTAPPS-1093") + func presentInterviewPreparationFinishedModal() { + let modal = InterviewPreparationCompletedModalViewController(delegate: viewModel) + panModalPresenter.presentPanModal(modal) } } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionFeature.kt index 41c6139905..d45cbc99f8 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionFeature.kt @@ -167,6 +167,7 @@ object StepCompletionFeature { sealed interface NavigateTo : ViewAction { object Back : NavigateTo object StudyPlan : NavigateTo + object Home : NavigateTo } } } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionReducer.kt index c9b80a45a0..f45cedf40d 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_completion/presentation/StepCompletionReducer.kt @@ -204,7 +204,7 @@ class StepCompletionReducer(private val stepRoute: StepRoute) : StateReducer Date: Thu, 4 Jan 2024 18:59:39 +0700 Subject: [PATCH 8/8] Shared: Interview preparation /api/track-interview-steps (#832) ^ALTAPPS-1092 --- .../StateRepositoriesComponentImpl.kt | 3 +- .../InterviewStepsStateRepositoryImpl.kt | 27 +++++------------ .../TrackInterviewStepsRemoteDataSource.kt | 7 +++++ .../domain/model/TrackInterviewStep.kt | 10 +++++++ ...TrackInterviewStepsRemoteDataSourceImpl.kt | 29 +++++++++++++++++++ .../model/TrackInterviewStepsResponse.kt | 16 ++++++++++ .../network/remote/HttpRequestBuilderExt.kt | 18 +++++++++++- .../remote/SubmissionRemoteDataSourceImpl.kt | 3 +- .../remote/StreaksRemoteDataSourceImpl.kt | 3 +- .../TopicsRepetitionsRemoteDataSourceImpl.kt | 7 +++-- .../track/remote/TrackRemoteDataSourceImpl.kt | 4 +-- 11 files changed, 99 insertions(+), 28 deletions(-) create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/source/TrackInterviewStepsRemoteDataSource.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/domain/model/TrackInterviewStep.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/remote/TrackInterviewStepsRemoteDataSourceImpl.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/remote/model/TrackInterviewStepsResponse.kt diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponentImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponentImpl.kt index 11b6442f52..a67cf06873 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponentImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/core/injection/StateRepositoriesComponentImpl.kt @@ -5,6 +5,7 @@ import org.hyperskill.app.gamification_toolbar.domain.repository.CurrentGamifica import org.hyperskill.app.gamification_toolbar.remote.GamificationToolbarRemoteDataSourceImpl import org.hyperskill.app.interview_steps.data.repository.InterviewStepsStateRepositoryImpl import org.hyperskill.app.interview_steps.domain.repository.InterviewStepsStateRepository +import org.hyperskill.app.interview_steps.remote.TrackInterviewStepsRemoteDataSourceImpl import org.hyperskill.app.learning_activities.data.repository.NextLearningActivityStateRepositoryImpl import org.hyperskill.app.learning_activities.domain.repository.NextLearningActivityStateRepository import org.hyperskill.app.learning_activities.remote.LearningActivitiesRemoteDataSourceImpl @@ -53,6 +54,6 @@ class StateRepositoriesComponentImpl(appGraph: AppGraph) : StateRepositoriesComp } override val interviewStepsStateRepository: InterviewStepsStateRepository by lazy { - InterviewStepsStateRepositoryImpl() + InterviewStepsStateRepositoryImpl(TrackInterviewStepsRemoteDataSourceImpl(authorizedHttpClient)) } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/repository/InterviewStepsStateRepositoryImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/repository/InterviewStepsStateRepositoryImpl.kt index 0e2c30fb4f..7c30c640d7 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/repository/InterviewStepsStateRepositoryImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/repository/InterviewStepsStateRepositoryImpl.kt @@ -1,25 +1,14 @@ package org.hyperskill.app.interview_steps.data.repository -import kotlin.random.Random -import kotlinx.coroutines.delay import org.hyperskill.app.core.data.repository.BaseStateRepository +import org.hyperskill.app.interview_steps.data.source.TrackInterviewStepsRemoteDataSource import org.hyperskill.app.interview_steps.domain.repository.InterviewStepsStateRepository -internal class InterviewStepsStateRepositoryImpl : InterviewStepsStateRepository, BaseStateRepository>() { - companion object { - private val stubSteps: List = - listOf( - 3804, // Choice - 1927, // Code - 8955, // Parsons - 7406, // SQL - 35084, 35086 // Faded parsons - ) - } - - override suspend fun loadState(): Result> { - val delay = Random.nextLong(800, 2000) - delay(delay) - return Result.success(stubSteps) - } +internal class InterviewStepsStateRepositoryImpl( + private val trackInterviewStepsRemoteDataSource: TrackInterviewStepsRemoteDataSource +) : InterviewStepsStateRepository, BaseStateRepository>() { + override suspend fun loadState(): Result> = + trackInterviewStepsRemoteDataSource + .getTrackInterviewSteps(pageSize = 20, page = 1) + .map { it.steps.map { step -> step.id } } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/source/TrackInterviewStepsRemoteDataSource.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/source/TrackInterviewStepsRemoteDataSource.kt new file mode 100644 index 0000000000..577451531e --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/data/source/TrackInterviewStepsRemoteDataSource.kt @@ -0,0 +1,7 @@ +package org.hyperskill.app.interview_steps.data.source + +import org.hyperskill.app.interview_steps.remote.model.TrackInterviewStepsResponse + +interface TrackInterviewStepsRemoteDataSource { + suspend fun getTrackInterviewSteps(pageSize: Int, page: Int): Result +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/domain/model/TrackInterviewStep.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/domain/model/TrackInterviewStep.kt new file mode 100644 index 0000000000..3a420c505c --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/domain/model/TrackInterviewStep.kt @@ -0,0 +1,10 @@ +package org.hyperskill.app.interview_steps.domain.model + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class TrackInterviewStep( + @SerialName("id") + val id: Long +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/remote/TrackInterviewStepsRemoteDataSourceImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/remote/TrackInterviewStepsRemoteDataSourceImpl.kt new file mode 100644 index 0000000000..99d4ddfbc7 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/remote/TrackInterviewStepsRemoteDataSourceImpl.kt @@ -0,0 +1,29 @@ +package org.hyperskill.app.interview_steps.remote + +import io.ktor.client.HttpClient +import io.ktor.client.call.body +import io.ktor.client.request.get +import io.ktor.http.ContentType +import io.ktor.http.contentType +import org.hyperskill.app.interview_steps.data.source.TrackInterviewStepsRemoteDataSource +import org.hyperskill.app.interview_steps.remote.model.TrackInterviewStepsResponse +import org.hyperskill.app.network.remote.parameterPage +import org.hyperskill.app.network.remote.parameterPageSize + +internal class TrackInterviewStepsRemoteDataSourceImpl( + private val httpClient: HttpClient +) : TrackInterviewStepsRemoteDataSource { + override suspend fun getTrackInterviewSteps( + pageSize: Int, + page: Int + ): Result = + kotlin.runCatching { + httpClient + .get("/api/track-interview-steps") { + contentType(ContentType.Application.Json) + parameterPageSize(pageSize) + parameterPage(page) + } + .body() + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/remote/model/TrackInterviewStepsResponse.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/remote/model/TrackInterviewStepsResponse.kt new file mode 100644 index 0000000000..56c047176a --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/interview_steps/remote/model/TrackInterviewStepsResponse.kt @@ -0,0 +1,16 @@ +package org.hyperskill.app.interview_steps.remote.model + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import org.hyperskill.app.core.remote.Meta +import org.hyperskill.app.core.remote.MetaResponse +import org.hyperskill.app.interview_steps.domain.model.TrackInterviewStep + +@Serializable +class TrackInterviewStepsResponse( + @SerialName("meta") + override val meta: Meta, + + @SerialName("steps") + val steps: List +) : MetaResponse \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/network/remote/HttpRequestBuilderExt.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/network/remote/HttpRequestBuilderExt.kt index 37f32b157d..20f22de1ad 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/network/remote/HttpRequestBuilderExt.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/network/remote/HttpRequestBuilderExt.kt @@ -20,4 +20,20 @@ internal fun HttpRequestBuilder.parameterIds( } else { ids.joinToString(separator = ",", transform = transform) } - ) \ No newline at end of file + ) + +/** + * Appends a single URL query parameter of "page_size" with a specific [pageSize]. + * + * @param pageSize The number of items to return in a single page. + */ +internal fun HttpRequestBuilder.parameterPageSize(pageSize: Int) = + parameter("page_size", pageSize) + +/** + * Appends a single URL query parameter of "page" with a specific [page]. + * + * @param page The page number to return. + */ +internal fun HttpRequestBuilder.parameterPage(page: Int) = + parameter("page", page) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/remote/SubmissionRemoteDataSourceImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/remote/SubmissionRemoteDataSourceImpl.kt index a354aac619..c039a33dd3 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/remote/SubmissionRemoteDataSourceImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz/remote/SubmissionRemoteDataSourceImpl.kt @@ -9,6 +9,7 @@ import io.ktor.client.request.setBody import io.ktor.http.ContentType import io.ktor.http.contentType import org.hyperskill.app.network.remote.parameterIds +import org.hyperskill.app.network.remote.parameterPage import org.hyperskill.app.step.domain.model.StepContext import org.hyperskill.app.step_quiz.data.source.SubmissionRemoteDataSource import org.hyperskill.app.step_quiz.domain.model.submissions.Reply @@ -26,7 +27,7 @@ class SubmissionRemoteDataSourceImpl( contentType(ContentType.Application.Json) parameter("step", stepId) parameter("user", userId) - parameter("page", page) + parameterPage(page) }.body().submissions } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/streaks/remote/StreaksRemoteDataSourceImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/streaks/remote/StreaksRemoteDataSourceImpl.kt index 3f852f2d9d..adaf9f4ce3 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/streaks/remote/StreaksRemoteDataSourceImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/streaks/remote/StreaksRemoteDataSourceImpl.kt @@ -7,6 +7,7 @@ import io.ktor.client.request.parameter import io.ktor.client.request.post import io.ktor.http.ContentType import io.ktor.http.contentType +import org.hyperskill.app.network.remote.parameterPage import org.hyperskill.app.streaks.data.source.StreaksRemoteDataSource import org.hyperskill.app.streaks.remote.model.StreaksResponse @@ -19,7 +20,7 @@ class StreaksRemoteDataSourceImpl( .get("/api/streaks") { contentType(ContentType.Application.Json) parameter("user", userId) - parameter("page", page) + parameterPage(page) }.body() } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/topics_repetitions/remote/TopicsRepetitionsRemoteDataSourceImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/topics_repetitions/remote/TopicsRepetitionsRemoteDataSourceImpl.kt index 2827204694..52e855c861 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/topics_repetitions/remote/TopicsRepetitionsRemoteDataSourceImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/topics_repetitions/remote/TopicsRepetitionsRemoteDataSourceImpl.kt @@ -3,9 +3,10 @@ package org.hyperskill.app.topics_repetitions.remote import io.ktor.client.HttpClient import io.ktor.client.call.body import io.ktor.client.request.get -import io.ktor.client.request.parameter import io.ktor.http.ContentType import io.ktor.http.contentType +import org.hyperskill.app.network.remote.parameterPage +import org.hyperskill.app.network.remote.parameterPageSize import org.hyperskill.app.topics_repetitions.data.source.TopicsRepetitionsRemoteDataSource import org.hyperskill.app.topics_repetitions.domain.model.TopicRepetition import org.hyperskill.app.topics_repetitions.domain.model.TopicRepetitionStatistics @@ -19,8 +20,8 @@ class TopicsRepetitionsRemoteDataSourceImpl( kotlin.runCatching { httpClient.get("/api/topics-repetition") { contentType(ContentType.Application.Json) - parameter("page_size", pageSize) - parameter("page", page) + parameterPageSize(pageSize) + parameterPage(page) }.body().topicsRepetitions } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/track/remote/TrackRemoteDataSourceImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/track/remote/TrackRemoteDataSourceImpl.kt index c41d826035..e72add98ed 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/track/remote/TrackRemoteDataSourceImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/track/remote/TrackRemoteDataSourceImpl.kt @@ -3,10 +3,10 @@ package org.hyperskill.app.track.remote import io.ktor.client.HttpClient import io.ktor.client.call.body import io.ktor.client.request.get -import io.ktor.client.request.parameter import io.ktor.http.ContentType import io.ktor.http.contentType import org.hyperskill.app.network.remote.parameterIds +import org.hyperskill.app.network.remote.parameterPageSize import org.hyperskill.app.track.data.source.TrackRemoteDataSource import org.hyperskill.app.track.domain.model.Track import org.hyperskill.app.track.remote.model.TrackResponse @@ -23,7 +23,7 @@ class TrackRemoteDataSourceImpl( httpClient .get("/api/tracks") { contentType(ContentType.Application.Json) - parameter("page_size", TRACKS_PAGE_MAX_SIZE) + parameterPageSize(TRACKS_PAGE_MAX_SIZE) }.body().tracks }