* update coroutines to 1.4.0, kotlin to 1.4.0
This CL updates coroutines to 1.4.0, kotlin to 1.4.10 and
also removes the only usage of ConflatedBroadcastChannel
(in SOTWithBarrier) with MutableStateFlow.
* expand SOTWithBarrier failure test
This change improves the failure test case to ensure it continues
for future writes
* Update RELEASING.md
Needed to improve documentation about handling PRs for release versions
* Prepare next development version.
Co-authored-by: William Clausen <wclausen@dropbox.com>
* Update RELEASING.md
Needed to improve documentation about handling PRs for release versions
* Prepare for release 4.0.0-beta01
Co-authored-by: William Clausen <wclausen@dropbox.com>
* Revert to using guava port cache by depending on jar
* Apply suggestions from code review
* revert code to old cache
* clean up build.gradle
* manually remove cache4 entries that are regenerated locally because of some dirty cache?
* bump gradle
* rerun tasks
* try to deflake rx tests
* cache builder tests
* api dump
* bump ktlint to work with 1.4 features
* formatting
Co-authored-by: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>
* Remove unused attribute in sample app layout
* Use FramentContainerView in sample app
* Fix content padding with expanded keyboard in sample app
Co-authored-by: Frantisek Nagy <frantisek.nagy@erstegroup.com>
It currently breaks consumers compiling with Kotlin
1.4-M3 (not sure why).
Added some TODOs to revert back to using Duration.INFINITE
once Store is compiled with Kotlin 1.4
Closes#188
* reproduce #177 and fix reader errors
* dispatch write errors to receiver
Now source of truth can unblock reader while also letting them
know that an error happened while writing. This forces readers
to first dispatch the error then whatever data they have.
I've also added new public WriteException/ReadException classes
to SourceOfTruth so that it is easy to diagnose these problems
when it hits to the developer's code
* Move Fetcher factories into companion
Fetcher factories were global methods, which made them hard
to discover since IDE cannot easily auto-complete.
This PR moves them into the companion of Fetcher while also
making Fetcher a real interface instead of a typealias.
Even though it is a bit more code for the developer, now they
can easily discover how to create a Fetcher by typing Fetcher.
Fixes: #167
* make rx methods start w/ from too for consistency
* Rename fether factories to be more clear, hopefully :/
* remove fetch method, use invoke instead
* Make Fetcher.from the one that receives a suspend fun.
Create Fetcher.fromFlow for the flowing version.
Rename both SourceOfTruth builder methods to . Rely on param names to disambiguate
* use .of instead, this seems better to me.
We should probably get rid of StoreBuilder.from and make it
Store.builder()
* fix jvm name for SourceOfTruth.of with flow function
* fix RxSourceOfTruth name to match original class
* specify bounds for FactoryFetcher
* updates per PR review
* update graph per SoT rename
* update rxjava3 APIs as well
These appeared after i rebased, missed them completely.
Also fixed some tests, appearantly IJ parameter name refactor does
not always work
* supress wrong unnecessary cast warning
without this, multicaster cannot resolve to the base StoreResponse type
* upgade gradle, try to fix build by disabling caching
* split subscribers
* resubscribe
Co-authored-by: miken <miken@dropbox.com>
Co-authored-by: miken <miken@dropbox.com>