Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

fix: fix showing progress values (download vs. total size and percentage) on app details screen

Description

This MR fixes the issue when sometimes app installation or update doesn't show progress on app details and list. See the attached screen record for more details.

Screenshots

Before After
Screen_recording_20251216_165440-App_Lounge Screen_recording_20251216_172717-App_Lounge

Technical details

Previously, progress was posted only when downloadingIds.size == cursor.count was true in DownloadProgressLD. When the cursor was partial or null, no progress was emitted, causing the UI to show no progress data, despite available data.

With this fix, removed dependency on cursor row count; always post progress after processing returned rows.

For Home, Search and Updates screen:

When multiple downloads are in flight, show progress in the list by validating progress against all download IDs for an app instead of a single downloadProgress.downloadId.

Previously, validation compared the last cursor row’s downloadId to the app’s ID. With parallel or multi-part downloads, most apps failed validation, so percentage text never updated; UI stayed on “Cancel/Installing” until completion.

Replaced single-ID equality check with set intersection: pull the app’s downloadIdMap keys and accept progress when any of those IDs appears in the aggregated progress maps.

Tests

Issues

https://gitlab.e.foundation/e/os/backlog/-/issues/3800

10 commandments of code review

👪 ❤️ code review guidelines

Edited by Fahim M. Choudhury

Merge request reports

Loading