Skip to content

Restructure settings UI package hierarchy#4403

Merged
frett merged 7 commits into
developfrom
settingsRestructure
Apr 25, 2026
Merged

Restructure settings UI package hierarchy#4403
frett merged 7 commits into
developfrom
settingsRestructure

Conversation

@frett

@frett frett commented Apr 24, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Moves all settings-related UI from ui/languages/* into a cleaner package hierarchy under ui/settings/
  • Moves shared language name composables (LanguageName, LocalizedName) to ui/common
  • Removes unused LanguageSettingsViewModel
  • Updates Paparazzi snapshot paths to match new packages

New package layout

Old New
ui/languages/downloadable/ ui/settings/language/downloadable/
ui/languages/ (LanguageSettings) ui/settings/language/
ui/languages/app/ ui/settings/language/app/
ui/languages/country/ ui/settings/country/
ui/languages/LanguageName ui/common/

Test plan

  • Paparazzi snapshots recorded and folded into each commit via CI
  • Verify app builds and navigates to language/country settings correctly

@frett frett force-pushed the settingsRestructure branch 2 times, most recently from f4ba0a3 to 4b5eae5 Compare April 24, 2026 21:59
@codecov

codecov Bot commented Apr 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 51.20%. Comparing base (b6eca20) to head (8639474).
⚠️ Report is 8 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #4403      +/-   ##
===========================================
+ Coverage    51.16%   51.20%   +0.04%     
===========================================
  Files          446      445       -1     
  Lines        12009    11994      -15     
  Branches      2086     2084       -2     
===========================================
- Hits          6144     6142       -2     
+ Misses        5242     5230      -12     
+ Partials       623      622       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@frett frett force-pushed the settingsRestructure branch from 4b5eae5 to 05e1443 Compare April 24, 2026 22:13
@frett frett requested a review from tjohnson009 April 24, 2026 22:14
@frett frett enabled auto-merge April 24, 2026 22:15
@frett frett force-pushed the settingsRestructure branch from 05e1443 to 39fa138 Compare April 24, 2026 22:55
frett and others added 4 commits April 24, 2026 17:09
Relocates all downloadable languages source files from
`ui/languages/downloadable` to `ui/settings/language/downloadable`,
updating package declarations and imports accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update step 7 to use git diff --name-status to detect added, modified,
and deleted snapshot files, and handle each appropriately rather than
blindly checking out all changed files (which would re-create deletions).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Relocates shared language name composables from `ui/languages` to
`ui/common`, updating package declarations and imports across all
consumers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@frett frett force-pushed the settingsRestructure branch from 39fa138 to 725b7aa Compare April 24, 2026 23:25
@frett frett disabled auto-merge April 25, 2026 02:27
frett and others added 3 commits April 24, 2026 20:37
Relocates all LanguageSettings source files from `ui/languages` to
`ui/settings/language`, updating package declarations and imports
across all consumers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@frett frett force-pushed the settingsRestructure branch from 725b7aa to 8639474 Compare April 25, 2026 02:38
@frett

frett commented Apr 25, 2026

Copy link
Copy Markdown
Contributor Author

PR Review: Restructure settings UI package hierarchy (#4403)

Summary

Reorganizes settings-related UI from ui/languages/* into semantically cleaner packages (ui/settings/language/*, ui/settings/country/*, ui/common/*), removes the unused LanguageSettingsViewModel, migrates ImmutableListList in affected UiState types, and fixes UiEvent to be sealed interface.

Checklist Findings

✅ Looks Good

  • ktlint passes
  • Package naming is semantically correct and consistent throughout
  • LanguageSettingsViewModel deleted; no remaining usages
  • UiEvent is now sealed interface in LanguageSettingsPresenter (convention met)
  • ImmutableListList in LanguageSettingsPresenter.UiState, AppLanguagePresenter.UiState, CountrySettingsPresenter.UiState, DownloadableLanguagesScreen.UiState (all cleaned up)
  • All Circuit patterns intact: @AssistedInject, @CircuitInject, nested UiState/UiEvent, eventSink delegation
  • GodToolsTheme used throughout; no per-module themes introduced
  • Paparazzi snapshot images renamed to match new package paths
  • Presenter tests (LanguageSettingsPresenterTest, AppLanguagePresenterTest, DownloadableLanguagesPresenterTest) correctly moved from testDebugtest
  • All presenter tests use presenter.test { } (Circuit test API)
  • LanguageName import correctly added to LanguageSettingsLayout.kt after package separation
  • No build script changes; no new dependencies

Overall Verdict

APPROVE — Clean structural reorganization with no functional changes. All convention items pass.

🤖 Reviewed with Claude Code

@frett frett merged commit 0497ce3 into develop Apr 25, 2026
13 checks passed
@frett frett deleted the settingsRestructure branch April 25, 2026 22:22
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