Create synchronized store for user information #1010
Merged
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.
Goal
Creates a synchronized store which is used for reading & writing user information. This replaces
SharedPreferences
which is not safe for use in a multi process environment, and does not give control over the location where information is persisted.Changeset
SynchronizedStreamableStore
, which is capable of reading and writingStreamable
objectspersist()
andload()
methods with aReentrantReadWriteLock
so that concurrent reads of the information is possible when the file is not being writtenUser
, along withJsonReadable
interfaceTesting
Created instrumentation tests which verify that data can be persisted and loaded, and that the read lock allows concurrent access.