Conversation
Move the unchanged three destination keys and seven method bodies into DownloadDestinationPrefs. Keep public forwarding APIs, captured ProfilePreferences, raw strings, and URI-before-name write/remove order. Add production-path tests for defaults, failure ordering and profile/generation ownership.
This branch has not been deployed
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.
Move download-destination persistence into
DownloadDestinationPrefs, retaining all sevenStorageServiceAPIs. The three existing keys, captured preference instance, URI-before-display-name ordering, and partial-failure behavior remain unchanged. OS folder grants stay with their existing callers.Based independently on
webdav-syncat077f2e79. This does not depend on the catalog preference extraction and does not rearrange settings or retire callers.Validation with Flutter 3.44.8 / Dart 3.12.2: 30 public-API tests pass before and after extraction; the final run including existing profile-isolation coverage passes 34 tests. Final changed-file analysis reports no issues. Tests cover held operations, profile changes, false writes, exceptions and partial persistence. Two broader profile source-guard failures reproduce on clean upstream. Native folder-picker and SAF grant behavior were not changed or device-tested.
Independent review found no actionable issues. Across this extraction and the separate catalog-search extraction, all 12 deliberate behavioral mutations were caught; restored suites passed again.
Combined validation with the other ten proposed slices: 304 focused/integration tests passed and an Android release build succeeded with Flutter 3.44.8 / Dart 3.12.2 / JDK 17. The test and build source trees match. The existing Windows Spotlight golden is excluded from that selection. A separate clean upstream full-suite run has 6,044 passes, 12 skips, 55 failing user tests and one failing teardown hook; this is not a full-suite or GitHub CI pass. Physical-device validation of the upstream ports remains outstanding.