Our API (CardContentProvider) does not support ChangeManager. It is infeasible to make CardContentProvider compatible with suspend due to Android limitations.
This affects some screens, widgets etc...
Some methods in CardContentProvider do yet not produce an OpChanges, and need to be updated/rewritten.
Proposed solution
- Decouple consumers/producers in
ChangeManager, primarily for use in the API
- A non-blocking
publish(OpChanges) method can be used
- Future: batching will be available
- Current methods continue to block until subscribers are notified.
- Update all methods in CardContentProvider to publish, publishing via a method similar to
notifySubscribersAllValuesChanged iif an OpChanges is not available
- Gradually transition away from
notifySubscribersAllValuesChanged
* This notifies of more changes than necessary
For now, only the API would use the sync method, to ensure no ordering-related issues are introduced.
If you would like to work on the issue, let me know and I'll split (1) into a subtask
Our API (
CardContentProvider) does not supportChangeManager. It is infeasible to makeCardContentProvidercompatible withsuspenddue to Android limitations.This affects some screens, widgets etc...
Some methods in
CardContentProviderdo yet not produce anOpChanges, and need to be updated/rewritten.Proposed solution
ChangeManager, primarily for use in the APIpublish(OpChanges)method can be usednotifySubscribersAllValuesChangediif anOpChangesis not availablenotifySubscribersAllValuesChanged* This notifies of more changes than necessary
For now, only the API would use the sync method, to ensure no ordering-related issues are introduced.
If you would like to work on the issue, let me know and I'll split (1) into a subtask