Skip to content

Commit

Permalink
Merge branch 'develop' into feature/ALTAPPS-902/Fix-DailyStudyReminde…
Browse files Browse the repository at this point in the history
…r-on_android_7.0
  • Loading branch information
XanderZhu authored Jul 24, 2023
2 parents 01a5239 + b933642 commit 66a85ae
Show file tree
Hide file tree
Showing 103 changed files with 1,049 additions and 2,959 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModelProvider
import androidx.transition.AutoTransition
import androidx.transition.TransitionManager
import by.kirich1409.viewbindingdelegate.viewBinding
import org.hyperskill.app.SharedResources
import org.hyperskill.app.android.HyperskillApp
Expand All @@ -25,7 +23,6 @@ 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.problems_limit.view.ui.delegate.ProblemsLimitDelegate
import org.hyperskill.app.android.step.view.screen.StepScreen
import org.hyperskill.app.android.topics.view.delegate.TopicsToDiscoverNextDelegate
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
Expand All @@ -35,7 +32,6 @@ import org.hyperskill.app.home.presentation.HomeViewModel
import org.hyperskill.app.problems_limit.domain.model.ProblemsLimitScreen
import org.hyperskill.app.problems_limit.view.mapper.ProblemsLimitViewStateMapper
import org.hyperskill.app.step.domain.model.StepRoute
import org.hyperskill.app.topics_to_discover_next.presentation.TopicsToDiscoverNextFeature
import ru.nobird.android.view.base.ui.delegate.ViewStateDelegate
import ru.nobird.android.view.base.ui.extension.showIfNotExists
import ru.nobird.android.view.redux.ui.extension.reduxViewModel
Expand Down Expand Up @@ -71,15 +67,6 @@ class HomeFragment :
TopicsRepetitionCardFormDelegate()
}
private var gamificationToolbarDelegate: GamificationToolbarDelegate? = null
private val topicsToDiscoverNextDelegate: TopicsToDiscoverNextDelegate by lazy(LazyThreadSafetyMode.NONE) {
TopicsToDiscoverNextDelegate(loadingItems = 1) { topicId ->
homeViewModel.onNewMessage(
HomeFeature.Message.TopicsToDiscoverNextMessage(
TopicsToDiscoverNextFeature.Message.TopicToDiscoverNextClicked(topicId)
)
)
}
}

private val onForegroundObserver =
object : DefaultLifecycleObserver {
Expand All @@ -104,10 +91,6 @@ class HomeFragment :
initGamificationToolbarDelegate()
initProblemsLimitDelegate()
problemOfDayCardFormDelegate.setup(viewBinding.homeScreenProblemOfDayCard)
topicsToDiscoverNextDelegate.setup(
requireContext(),
viewBinding.homeTopicsToDiscoverNext.homeTopicsToDiscoverNextRecycler
)
with(viewBinding) {
homeScreenSwipeRefreshLayout.setHyperskillColors()
homeScreenSwipeRefreshLayout.setOnRefreshListener {
Expand Down Expand Up @@ -215,15 +198,6 @@ class HomeFragment :
mainScreenRouter = mainScreenRouter,
router = requireRouter()
)
is HomeFeature.Action.ViewAction.TopicsToDiscoverNextViewAction -> {
when (action.viewAction) {
is TopicsToDiscoverNextFeature.Action.ViewAction.ShowStepScreen -> {
val viewAction =
action.viewAction as TopicsToDiscoverNextFeature.Action.ViewAction.ShowStepScreen
requireRouter().navigateTo(StepScreen(viewAction.stepRoute))
}
}
}
else -> {
// no op
}
Expand All @@ -246,7 +220,6 @@ class HomeFragment :
problemsLimitViewStateMapper?.let { mapper ->
problemsLimitDelegate?.render(mapper.mapState(state.problemsLimitState))
}
renderTopicsToDiscoverNext(state.topicsToDiscoverNextState)
}

private fun renderSwipeRefresh(state: HomeFeature.State) {
Expand Down Expand Up @@ -296,15 +269,4 @@ class HomeFragment :
)
}
}

private fun renderTopicsToDiscoverNext(state: TopicsToDiscoverNextFeature.State) {
TransitionManager.beginDelayedTransition(viewBinding.root, AutoTransition())
with(viewBinding) {
homeTopicsToDiscoverNext.homeTopicsToDiscoverNextTitle.isVisible =
state is TopicsToDiscoverNextFeature.State.Content
homeTopicsToDiscoverNext.homeTopicsToDiscoverNextTitleSkeleton.isVisible =
state is TopicsToDiscoverNextFeature.State.Loading
}
topicsToDiscoverNextDelegate.render(state)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,18 @@ class SentryManagerImpl(private val buildKonfig: BuildKonfig) : SentryManager {
Sentry.addBreadcrumb(sentryBreadcrumb)
}

override fun captureMessage(message: String, level: HyperskillSentryLevel) {
Sentry.captureMessage(message, level.toSentryLevel())
override fun captureMessage(message: String, level: HyperskillSentryLevel, data: Map<String, Any>) {
Sentry.captureMessage(message, level.toSentryLevel()) { scope ->
scope.span.let {
data.forEach { (key, value) ->
it?.setData(key, value)
}
}
}
}

override fun captureException(throwable: Throwable) {
Sentry.captureException(throwable)
}

override fun setUsedId(userId: String) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import org.hyperskill.app.android.study_plan.adapter.StudyPlanItemAnimator
import org.hyperskill.app.android.study_plan.adapter.StudyPlanSectionAdapterDelegate
import org.hyperskill.app.android.study_plan.model.StudyPlanRecyclerItem
import org.hyperskill.app.study_plan.widget.presentation.StudyPlanWidgetFeature
import org.hyperskill.app.study_plan.widget.view.StudyPlanWidgetViewState
import org.hyperskill.app.study_plan.widget.view.model.StudyPlanWidgetViewState
import ru.nobird.android.ui.adapterdelegates.dsl.adapterDelegate
import ru.nobird.android.ui.adapters.DefaultDelegateAdapter
import ru.nobird.android.view.base.ui.delegate.ViewStateDelegate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ import org.hyperskill.app.android.step.view.screen.StepScreen
import org.hyperskill.app.android.study_plan.delegate.StudyPlanWidgetDelegate
import org.hyperskill.app.android.track_selection.list.navigation.TrackSelectionListScreen
import org.hyperskill.app.core.injection.ReduxViewModelFactory
import org.hyperskill.app.learning_activities.presentation.model.LearningActivityTargetViewAction
import org.hyperskill.app.project_selection.list.injection.ProjectSelectionListParams
import org.hyperskill.app.study_plan.presentation.StudyPlanScreenViewModel
import org.hyperskill.app.study_plan.screen.presentation.StudyPlanScreenFeature
import org.hyperskill.app.study_plan.widget.presentation.StudyPlanWidgetFeature
import org.hyperskill.app.study_plan.widget.view.StudyPlanWidgetViewState
import org.hyperskill.app.study_plan.widget.view.model.StudyPlanWidgetViewState
import org.hyperskill.app.track_selection.list.injection.TrackSelectionListParams
import ru.nobird.android.view.base.ui.extension.showIfNotExists
import ru.nobird.android.view.redux.ui.extension.reduxViewModel
Expand Down Expand Up @@ -164,40 +165,44 @@ class StudyPlanFragment :
is StudyPlanScreenFeature.Action.ViewAction.ProblemsLimitViewAction -> {}
is StudyPlanScreenFeature.Action.ViewAction.StudyPlanWidgetViewAction -> {
when (val viewAction = action.viewAction) {
is StudyPlanWidgetFeature.Action.ViewAction.NavigateTo.StageImplement -> {
requireRouter().navigateTo(
StageImplementationScreen(
projectId = viewAction.projectId,
stageId = viewAction.stageId
)
)
}
is StudyPlanWidgetFeature.Action.ViewAction.NavigateTo.StepScreen -> {
requireRouter().navigateTo(StepScreen(viewAction.stepRoute))
}
is StudyPlanWidgetFeature.Action.ViewAction.NavigateTo.Home -> {
mainScreenRouter.switch(HomeScreen)
}
is StudyPlanWidgetFeature.Action.ViewAction.ShowStageImplementUnsupportedModal -> {
UnsupportedStageBottomSheet.newInstance()
.showIfNotExists(childFragmentManager, UnsupportedStageBottomSheet.TAG)
}
is StudyPlanWidgetFeature.Action.ViewAction.NavigateTo.SelectProject -> {
requireRouter().navigateTo(
ProjectSelectionListScreen(
ProjectSelectionListParams(
trackId = viewAction.trackId,
isNewUserMode = false
is StudyPlanWidgetFeature.Action.ViewAction.NavigateTo.LearningActivityTarget -> {
when (val activityViewAction = viewAction.viewAction) {
LearningActivityTargetViewAction.ShowStageImplementIDERequiredModal -> {
UnsupportedStageBottomSheet.newInstance()
.showIfNotExists(childFragmentManager, UnsupportedStageBottomSheet.TAG)
}
is LearningActivityTargetViewAction.NavigateTo.StageImplement -> {
requireRouter().navigateTo(
StageImplementationScreen(
projectId = activityViewAction.projectId,
stageId = activityViewAction.stageId
)
)
)
)
}
is StudyPlanWidgetFeature.Action.ViewAction.NavigateTo.SelectTrack -> {
requireRouter().navigateTo(
TrackSelectionListScreen(
TrackSelectionListParams(isNewUserMode = false)
)
)
}
is LearningActivityTargetViewAction.NavigateTo.Step -> {
requireRouter().navigateTo(StepScreen(activityViewAction.stepRoute))
}
is LearningActivityTargetViewAction.NavigateTo.SelectProject -> {
requireRouter().navigateTo(
ProjectSelectionListScreen(
ProjectSelectionListParams(
trackId = activityViewAction.trackId,
isNewUserMode = false
)
)
)
}
LearningActivityTargetViewAction.NavigateTo.SelectTrack -> {
requireRouter().navigateTo(
TrackSelectionListScreen(
TrackSelectionListParams(isNewUserMode = false)
)
)
}
}
}
}
}
Expand Down

This file was deleted.

This file was deleted.

Loading

0 comments on commit 66a85ae

Please sign in to comment.