Fix search results always being empty when using a backend that doesn't return highlights #8729
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix search results always being empty when using a backend that doesn't return highlights.
This notably happens with Synapse on SQLite.
Type of change
Content
Search results are filtered to make sure there is at least one match with the
highlights
returned by the backend.The issue is that some backends — in my case Synapse with SQLite instead of PostGreSQL — return an empty array for highlights.
The result is that search results always appear empty from the Android app. (The web element app does something different because search results look ok there with the same server)
As a minimal workaround I simply bypassed the filter in case the highlights are empty.
This should preserve the existing behaviour in most situation while allowing the search page to work when highlights are not returned by the backend.
Motivation and context
No open issue AFAIK
Screenshots / GIFs
Tests
I tested my changes on my own homeserver to make sure it works.
Tested devices
Checklist
Signed-off-by: Melvyn Laïly melvyn.laily@gmail.com