feat(storage): Add instance-bound SafeBoxStateListener support to SafeBoxBlobStore #13
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.
Overview
This PR introduces support for instance-scoped SafeBoxStateListener, enabling consumers to observe the internal state of a specific
SafeBox
instance without relying on global observers.State updates are lifecycle-bound to the instance, and automatically cleaned up during
safeBox.close()
, preventing leaks and ensuring proper teardown.Motivation
Previously, there was no way to observe what a SafeBox was doing at runtime unless you had external coordination. This addition makes it possible to:
This is especially useful for ViewModel-scoped SafeBox instances that may be short-lived and tied to screen transitions.
API
Behavior Notes
IDLE
state upon creation.WRITING
duringwrite()
anddelete()
.IDLE
once operations complete.CLOSED
whenclose()
is called.Partially addresses #12.
The remaining work (global observer support) will be completed in a follow-up PR.