Fix: [Activity View] Clear Finished no longer removes failed items that still have retry/dismiss actions - #1699
Open
NeuralFault wants to merge 1 commit into
Conversation
…ivity view - Add `IsClearable` virtual property to `ProgressItemViewModelBase` that excludes `Failed` items (only `Progress.Value >= 100 && !Failed`) - Override `IsClearable` in `PausableProgressItemViewModelBase` to match only `Success` and `Cancelled` states, keeping `Failed` items visible - Update `ClearDownloads()` to filter on `IsClearable` instead of `IsCompleted` so failed downloads with retry/dismiss buttons are preserved - `IsCompleted` retains its existing behavior (all terminal states) for UI gating of progress spinners, pause/cancel controls, etc.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Clicking "Clear Finished" in the Progress Manager would remove all items in a terminal state, including failed downloads. Failed downloads have a visible retry button (and a dismiss button), but the bulk clear wiped them out before the user could act on them.
The root cause was that
ClearDownloads()filtered onIsCompleted, which — correctly for UI purposes — treatsFailedas a terminal state alongsideSuccessandCancelled. But that same property was also used as the sole gate for the bulk-clear operation, conflating "this item is done rendering progress UI" with "this item is safe to discard."Fix
Introduced a new
IsClearablevirtual property, parallel toIsCompleted, that separates the two concerns:Failedincluded?IsCompletedIsClearableProgressItemViewModelBase.IsClearable→Progress.Value >= 100 && !FailedPausableProgressItemViewModelBase.IsClearable→State is Success or Cancelled(failed downloads with retry/dismiss are preserved)ClearDownloads()→ now filters onIsClearableinstead ofIsCompletedCancelled downloads are still cleared (they have no retry path).
IsCompletedbehavior is completely unchanged.Passed functional test via forced 'Failed' download which remained after bulk clear invoked.