thunderbird / thunderbird/thunderbird-android
[ML 0.1/UI.04] - Connect Message List Screen with Legacy Data
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 14k
- Forks
- 2.8k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 57
Description
🎯 The objective
Connect MessageListScreen to the existing legacy data sources and business logic, bridging the new Compose-based UI layer with the current Message List state management, data providers, and interaction handlers while maintaining clear module boundaries.
🎒 Resources
- Depends on #10573
🦮 Rules of the Road
🟢 In Scope
- Wiring Compose UI to legacy data sources (no mock/placeholder data)
- Pull-to-refresh triggering legacy refresh mechanism
- Footer button ("lazy load") wiring
- Swipe actions triggering legacy handlers
- Message item click delegation to existing navigation/interaction logic
- State mapping layer (legacy model -> UI model) in
:feature:mail:message:list:internal - Unified folder support
- Account indicator visibility
🔴 Out of Scope
- Infinite scrolling (tracked separately)
- Refactoring or rewriting legacy business logic
- Architectural changes to the legacy data layer
- UI redesign or structural changes to the screen or list items
- Performance optimizations beyond what is required for safe integration
🚧 Technical and/or Business Requirements
- Must use adapter/mapping layers over direct coupling between Compose and legacy classes
- Maintain strict module boundaries:
:feature:mail:message:list:api/:feature:mail:message:list:internal - Legacy dependencies must remain encapsulated and not exposed through the public API
- No business logic migrated or rewritten - only wiring and adaptation
- Any temporary interoperability code should be clearly documented for future cleanup
📋 Sub-tickets
- #10774
- #10775
- #10776
- #10777
- #10778
- #10779
- #10780
- #10781
- #10782
- #10783
- #10784
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at MessageListScreen and review dependency #10573, then trace the legacy data sources and handlers within :feature:mail:message:list:api and :feature:mail:message:list:internal. Use the listed sub-tickets to identify remaining wiring, and consider the work done when refresh, lazy loading, swipe actions, clicks, state mapping, unified folders, and account indicators work without exposing legacy classes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100