From 123f30a6efe4c47d3426d53e0fe4c31254b7d1aa Mon Sep 17 00:00:00 2001 From: Aleksey Malevaniy Date: Wed, 1 Apr 2015 11:56:07 +0300 Subject: [PATCH] Don't save null-value items Saving null-value item makes loader's callback trigger onNext with null as argument. So If you just do nothing, but went out of activity, it was killed, you come back and oops, your onNext was triggered just like it had result, but it doesn't. E.g. ```java @Override protected void onLoad(Bundle savedInstanceState) { RxLoaderManager loaderManager = RxLoaderManager.get(activityHolder.getActivity()); loginLoader = loaderManager.create((LoginParams params) -> { return sessionManager.login(params); }, new RxLoaderObserver() { @Override public void onNext(Session value) { Flow.get(getView()).replaceTo(new HomeScreen()); } } ).save(); } ``` --- .../main/java/me/tatarka/rxloader/ParcelableSaveCallback.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rxloader/src/main/java/me/tatarka/rxloader/ParcelableSaveCallback.java b/rxloader/src/main/java/me/tatarka/rxloader/ParcelableSaveCallback.java index af61d02..f44c765 100644 --- a/rxloader/src/main/java/me/tatarka/rxloader/ParcelableSaveCallback.java +++ b/rxloader/src/main/java/me/tatarka/rxloader/ParcelableSaveCallback.java @@ -12,7 +12,9 @@ public class ParcelableSaveCallback implements SaveCallback { @Override public void onSave(String key, T value, Bundle outState) { - outState.putParcelable(key, (Parcelable) value); + if (value != null) { + outState.putParcelable(key, (Parcelable) value); + } } @Override