Skip to content

feat(message-list): migrate MessageListFragment to Compose-based renderer#10785

Open
rafaeltonholo wants to merge 14 commits intothunderbird:mainfrom
rafaeltonholo:feat/10774/migrate-message-list-fragment-to-compose
Open

feat(message-list): migrate MessageListFragment to Compose-based renderer#10785
rafaeltonholo wants to merge 14 commits intothunderbird:mainfrom
rafaeltonholo:feat/10774/migrate-message-list-fragment-to-compose

Conversation

@rafaeltonholo
Copy link
Copy Markdown
Member

Resolves #10774.
feature-flag: enable_message_list_new_state

Summary

  • Migrate MessageListFragment from legacy XML rendering to use MessageListScreenRenderer backed by Compose
  • Add new_message_list_fragment.xml layout with ComposeView and FAB
  • Register MessageListScreenRenderer in FeatureMessageListModule
  • Extract side effect handler factories to a dedicated MessageListSideEffectsModule
  • Add AllConfigurationsReadySideEffect to handle readiness transitions in WarmingUp state
  • Add isReady property to MessageListMetadata to simplify state logic
  • Enhance MessageListStateMachine with logging and transaction history dump
  • Clean up MessageListFragment from legacy rendering code

Note

It is expected to see an empty screen when the feature flag is enabled for now. The data load is expected to be implemented in #10775.

Test plan

  • AllConfigurationsReadySideEffectTest passes
  • MessageListStateMachineTest passes
  • Koin module verification passes with updated dependencies
  • App launches and MessageListFragment renders via Compose (feature flag on)
  • No regressions with feature flag off

…older loading and dependency injections

- Added `FolderEvent.FolderLoaded` processing to state machine tests.
- Updated `MessageListMetadata` assertions to verify folder state.
- Injected `TestLogger`, `TestClock`, and `FakeDebuggingSettingsPreferenceManager` into the state machine.
- Added `createFolder` and `FakeDebuggingSettingsPreferenceManager` helper classes for testing.
Updated `FeatureMessageListModuleKtTest` to include `Clock` and `DebuggingSettingsPreferenceManager` in the Koin module verification.
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

Missing report label. Set exactly one of: report: include, report: exclude OR report: highlight.

@github-actions github-actions bot added the tb-team Tasks and features handled by project maintainers label Apr 2, 2026
@rafaeltonholo rafaeltonholo added the report: exclude Exclude changes from user-facing reports (internal, minor, or not relevant to users). label Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

report: exclude Exclude changes from user-facing reports (internal, minor, or not relevant to users). tb-team Tasks and features handled by project maintainers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ML 0.1/UI.04.1] - Migrate MessageListFragment to Compose-based renderer

2 participants