## Related Issues
fixes#2671
<!--
Update to link the issue that is going to be fixed by this.
Unless this concerns documentation, make sure to create an issue first
before raising a PR.
You do not need to describe what this PR is doing, as this should
already be covered by the associated issue.
If the linked issue isn't enough, then chances are a new issue
is needed.
Don't hesitate to create many issues! This can avoid working
on something, only to have your PR closed or have to be rewritten
due to a disagreement/misunderstanding.
-->
## Checklist
Before you create this PR confirm that it meets all requirements listed
below by checking the relevant checkboxes (`[x]`).
- [ ] I have updated the `CHANGELOG.md` of the relevant packages.
Changelog files must be edited under the form:
```md
## Unreleased fix/major/minor
- Description of your change. (thanks to @yourGithubId)
```
- [ ] If this contains new features or behavior changes,
I have updated the documentation to match those changes.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- New Features
- None
- Bug Fixes
- Improved reliability of provider updates by ensuring pending work is
applied after frames, reducing chances of missed UI updates.
- Prevented potential timer-related leaks during lifecycle changes.
- Documentation
- Updated changelog to note that providers are no longer paused when the
app is paused.
- Tests
- Added a widget test verifying that updates are applied after flushing
the scheduler when rebuilds are delayed.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- Refactor
- Generated provider names were simplified: symbols now end with
"Provider" instead of "NotifierProvider". Update any app references and
samples.
- Documentation
- README and docs clarify the default strip pattern and examples now use
the new ...Provider names.
- Tests
- Updated and added tests to assert the new default naming behavior.
- Chores
- Configuration parsing tightened to always supply default naming
values.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fixes#4129
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- Bug Fixes
- Persisted state is preserved if a provider throws, preventing loss of
cached data.
- provider.future now skips offline-persisted state by default, avoiding
unexpected rebuilds when chaining persisted providers.
- Documentation
- Updated changelog to reflect the new persistence and error-handling
behavior.
- Tests
- Added coverage ensuring decoded state is preserved when an error
occurs after decoding.
- Removed an obsolete async storage test to align with current behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fixes#4218
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- New Features
- Loading states now preserve cached value, progress, and prior errors
for smoother UI during updates.
- Improved handling of complex async transitions to avoid merging
issues.
- Bug Fixes
- Reduced unnecessary rebuilds in chained/offline provider scenarios.
- More reliable behavior when decoding persisted data and when adapters
emit values from storage.
- Refactor
- Internal module consolidation and import cleanup; no public API
changes.
- Tests
- Added regression tests covering offline chaining, async persistence
decoding, and DB-backed emissions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Bumps [dio](https://github.com/cfug/dio) from 5.8.0+1 to 5.9.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cfug/dio/releases">dio's
releases</a>.</em></p>
<blockquote>
<h2>dio 5.9.0</h2>
<h2>What's new</h2>
<ul>
<li>Do not allow updating the error field after a cancel token has
canceled.</li>
<li>Allow passing an initial interceptors list to the constructor of
<code>Interceptors</code>.</li>
<li>Use <code>package:mime</code> to help determine the
<code>content-type</code> of <code>MultipartFile</code> base on the
provided <code>filename</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fe1a62f282"><code>fe1a62f</code></a>
🔖 dio v5.9.0</li>
<li><a
href="0ebfc9a20e"><code>0ebfc9a</code></a>
🔖 cookie_manager v3.3.0</li>
<li><a
href="5e8f1f5de4"><code>5e8f1f5</code></a>
⚡️ Use <code>package:mime</code> to help determine the
<code>content-type</code> of <code>MultipartFile</code>...</li>
<li><a
href="fd4a4de7ec"><code>fd4a4de</code></a>
⚡️ Improve how <code>CookieManager</code> proceed with exceptions (<a
href="https://redirect.github.com/cfug/dio/issues/2428">#2428</a>)</li>
<li><a
href="b6a2dd3cf8"><code>b6a2dd3</code></a>
Bump actions-cool/issues-helper from 3.6.0 to 3.6.2 (<a
href="https://redirect.github.com/cfug/dio/issues/2429">#2429</a>)</li>
<li><a
href="30dcf6387a"><code>30dcf63</code></a>
⚡️ Allow passing an initial interceptors list to the constructor of
`Intercep...</li>
<li><a
href="29723d43df"><code>29723d4</code></a>
🔖 native_dio_adapter v1.5.0</li>
<li><a
href="30b772e6e8"><code>30b772e</code></a>
⚡️ Expose underlying adapters from all adapters (<a
href="https://redirect.github.com/cfug/dio/issues/2423">#2423</a>)</li>
<li><a
href="b501133aaa"><code>b501133</code></a>
⚡ Close <code>CronetEngine</code> when closing the
<code>CronetClient</code> (<a
href="https://redirect.github.com/cfug/dio/issues/2422">#2422</a>)</li>
<li><a
href="9a233d58f8"><code>9a233d5</code></a>
Fix the missing character in <code>native_dio_adapter</code>'s
README</li>
<li>Additional commits viewable in <a
href="https://github.com/cfug/dio/compare/dio_v5.8.0...dio_v5.9.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>