From 4fa37d9353dfeebad55b03ac1bc8f1762333abce Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Mon, 26 Dec 2016 18:33:19 +0300 Subject: [PATCH] fix of storable conversion thread --- .../roboswag/core/observables/storable/Storable.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/touchin/roboswag/core/observables/storable/Storable.java b/src/main/java/ru/touchin/roboswag/core/observables/storable/Storable.java index a16ce39..5c82a05 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/storable/Storable.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/storable/Storable.java @@ -95,7 +95,7 @@ public class Storable { final ObserveStrategy nonNullObserveStrategy = observeStrategy != null ? observeStrategy : getDefaultGetStrategy(); final Observable storeValueObservable = createStoreValueObservable(nonNullObserveStrategy, migration, defaultValue, storeScheduler); - valueObservable = createValueObservable(storeValueObservable, nonNullObserveStrategy); + valueObservable = createValueObservable(storeValueObservable, nonNullObserveStrategy, storeScheduler); } @NonNull @@ -156,7 +156,8 @@ public class Storable { @NonNull private Observable createValueObservable(@NonNull final Observable storeValueObservable, - @NonNull final ObserveStrategy observeStrategy) { + @NonNull final ObserveStrategy observeStrategy, + @Nullable final Scheduler storeScheduler) { final Observable result = storeValueObservable .map(storeObject -> { try { @@ -169,7 +170,8 @@ public class Storable { STORABLE_LC_GROUP.assertion(throwable); throw OnErrorThrowable.from(throwable); } - }); + }) + .subscribeOn(storeScheduler != null ? storeScheduler : Schedulers.computation()); return observeStrategy == ObserveStrategy.CACHE_ACTUAL_VALUE ? result : result.replay(1).refCount(); }