Skip to content

Conversation

@SCHsebastian
Copy link

@SCHsebastian SCHsebastian commented Nov 20, 2025

Fixes - [Jira-#Issue_Number](https://mifosforge.jira.com/browse/MM-)

Didn't create a Jira ticket, click here to create new.

Please Add Screenshots If there are any UI changes.

Before After

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Run the static analysis check ./gradlew check or ci-prepush.sh to make sure you didn't break anything

  • If you have multiple commits please combine them into one commit by squashing them.

Summary by CodeRabbit

  • New Features

    • Added language selection to the onboarding flow so users can choose their onboarding language.
  • Documentation

    • Added onboarding architecture and workflow docs, including dependency maps and sequence/flow diagrams.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Nov 20, 2025

Walkthrough

Adds onboarding-language documentation and a new SetOnboardingLanguageViewModel to manage onboarding language selection, subscription to repository language changes, persistence of chosen language, UI state updates, and internal action/event/state scaffolding.

Changes

Cohort / File(s) Summary
Documentation
feature/onboarding-language/README.md
Adds onboarding-language README with dependency graph image, Mermaid sequence diagram for onboarding language flow, and architecture diagram outlining UI, domain, and data layers.
ViewModel / Onboarding language logic
feature/onboarding-language/src/commonMain/kotlin/org/mifos/mobile/feature/onboarding/language/SetOnboardingLanguageViewModel.kt
Adds SetOnboardingLanguageViewModel: initializes default state, subscribes to repository language changes, handles user language selection by persisting choice, updates UI state, disables onboarding/first-time flags, and introduces OnboardingLanguageState, OnboardingLanguageEvent, and OnboardingLanguageAction scaffolding.

Sequence Diagram(s)

sequenceDiagram
    participant UI as UI Layer
    participant VM as SetOnboardingLanguageViewModel
    participant Repo as Language Repository
    participant Storage as Data Layer

    rect rgb(230,245,255)
      UI->>VM: Initialize ViewModel
      VM->>Repo: Subscribe to language stream
      Repo-->>VM: Emit current language
      VM-->>UI: Emit OnboardingLanguageState
    end

    rect rgb(235,255,230)
      UI->>VM: User selects language
      VM->>Storage: Persist selected language
      Storage-->>VM: Persist confirmation
      VM->>VM: Dispatch Internal(LoadLanguage) / disable onboarding flags
      VM-->>UI: Update OnboardingLanguageState (new language)
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Pay attention to: subscription lifecycle and coroutine/scope handling in the ViewModel, persistence side effects for onboarding/first-time flags, and correctness of newly introduced state/event/action types.

Suggested reviewers

  • Arinyadav1
  • revanthkumarJ
  • WizCoderr

Poem

🐰 I hopped in with a choice to share,
New tongues and flags handled with care,
State and action tidy and bright,
Onboarding users find their light,
Small steps, soft code — a language flight.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title references MM-437 and mentions 'development_onboarding_doc', which aligns with the changes that add documentation (README) for onboarding language feature and ViewModel implementation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 19e91a4 and 758ecd3.

📒 Files selected for processing (1)
  • feature/onboarding-language/README.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • feature/onboarding-language/README.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 768a6a6 and 19e91a4.

⛔ Files ignored due to path filters (1)
  • docs/images/graphs/dep_graph_feature_onboarding_language.svg is excluded by !**/*.svg
📒 Files selected for processing (2)
  • feature/onboarding-language/README.md (1 hunks)
  • feature/onboarding-language/src/commonMain/kotlin/org/mifos/mobile/feature/onboarding/language/SetOnboardingLanguageViewModel.kt (3 hunks)

Removed user action flow for continuing to the next screen.
@Nagarjuna0033
Copy link
Contributor

Nagarjuna0033 commented Nov 24, 2025

@SCHsebastian try ./gradlew spotlessApply and ./gradlew detekt and let me know I will approve.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants