Promotes 2.0.1-beta1 to a stable release.
-
Fix: Improve handling for
nullvalues stored in preferences. -
Improvement: Update dependencies and tools.
Promotes 2.0.0-RC3 to a stable release. If you are migrating from v1, please refer to the changelog for earlier RC versions to see what has changed.
-
New: Add ability to clear preferences via
RxSharedPreferences. -
Fix: The default value for
RxSharedPreferences#getObjectmay not be null, but was incorrectly annotated as@Nullable. This corrects the annotation to@NonNull.
This release includes multiple breaking changes.
- New: Replace
AdapterwithConverter. AConverteris a simpler interface that only deals with serialization, and abstracts away the complexity of working withSharedPreferencesorSharedPreferences.Editor.
/**
* Converts instances of {@code T} to be stored and retrieved as Strings in {@link
* SharedPreferences}.
*/
interface Converter<T> {
/**
* Deserialize to an instance of {@code T}. The input is retrieved from {@link
* SharedPreferences#getString(String, String)}.
*/
@NonNull T deserialize(@NonNull String serialized);
/**
* Serialize the {@code value} to a String. The result will be used with {@link
* SharedPreferences.Editor#putString(String, String)}.
*/
@NonNull String serialize(@NonNull T value);
}-
New: Disallow null values from being emitted by the Preference observable. Specifically
RxSharedPreferences#getEnumandRxSharedPreferences#getObjectdo not allow null values to be used as a default value. -
New: Make
Preference#setonly accept non null values. Trying to callsetwith a null value will now throw an exception. -
New: Make the
Set<String>returned byRxSharedPreferences#getStringSetunmodifiable. -
Improvement: Use
@RequiresApiinstead of@TargetApi.
rx-preferences has been updated to support RxJava 2.0. The Preference type is now an interface, but the core itself is mostly unchanged. 2.0.0-RC1 does not handle backpressure yet.
Because the release includes breaking API changes, we're changing the project's package name from com.f2prateek.rx.preferences to com.f2prateek.rx.preferences2. The maven group has also changed to com.f2prateek.rx.preferences2. This should make it possible for large applications and libraries to migrate incrementally.
- Remove custom backpressure support in favor of RxJava 1.1's built-in buffer latest.
- Add support for backpressure.
- Use reasonable defaults for creating Preferences that store primitives.
Initial release.