thunderbird / thunderbird/thunderbird-android
Remote search progress messages in the list footer are overwritten by incoming results
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 14k
- Forks
- 2.8k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 57
Description
Checklist
- I have used the search function to see if someone else has already submitted the same bug report.
- I will describe the problem with as much detail as possible.
App
Thunderbird for Android
App version
Development build from current main (commit adb64adc5b). The affected code (LegacyMessageListFragment.setMessageList rebuilding the adapter items without the footer, and updateFooterText recomputing it to null during manual searches) is unchanged in released versions.
Where did you get the app from?
Other (self-built from source)
Android version
Android 15 (emulator, API 35)
Device model
Android Emulator (Pixel)
Steps to reproduce
- Set up an IMAP account
- Search in a folder for a term with several matches that are only on the server
- Trigger "Search messages on server"
- Watch the footer while results arrive (easiest against a slow/throttled server)
Expected behavior
The progress messages provided by the MessagingListener callbacks ("Sending query to server", "Fetching N results") stay visible until the remote search completes.
Actual behavior
Each message list update triggered by an arriving result rebuilds the adapter items without the footer item and recomputes the footer text to null for manual searches. The progress message flickers or disappears entirely, so the search looks stuck or broken while it is actually still working.
Logs
Not applicable (no crash, pure UI behavior).
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 in LegacyMessageListFragment, focusing on setMessageList and updateFooterText, then trace the MessagingListener callbacks that provide the remote-search progress messages. Reproduce the issue with a slow or throttled IMAP server while searching messages on the server. Done means “Sending query to server” and “Fetching N results” remain visible until the remote search completes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100