wrap to OnSubscribeRefCountWithCacheTime
This commit is contained in:
parent
c6c414a2a0
commit
bab4e718f6
|
|
@ -23,9 +23,11 @@ import android.support.annotation.NonNull;
|
|||
import android.support.annotation.Nullable;
|
||||
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import ru.touchin.roboswag.core.log.LcGroup;
|
||||
import ru.touchin.roboswag.core.observables.ObservableResult;
|
||||
import ru.touchin.roboswag.core.observables.OnSubscribeRefCountWithCacheTime;
|
||||
import ru.touchin.roboswag.core.observables.RxUtils;
|
||||
import ru.touchin.roboswag.core.observables.storable.builders.MigratableStorableBuilder;
|
||||
import ru.touchin.roboswag.core.observables.storable.builders.NonNullStorableBuilder;
|
||||
|
|
@ -56,6 +58,8 @@ public class Storable<TKey, TObject, TStoreObject> {
|
|||
|
||||
public static final LcGroup STORABLE_LC_GROUP = new LcGroup("STORABLE");
|
||||
|
||||
private static final long CACHE_TIME = TimeUnit.SECONDS.toMillis(5);
|
||||
|
||||
@NonNull
|
||||
private final TKey key;
|
||||
@NonNull
|
||||
|
|
@ -155,7 +159,9 @@ public class Storable<TKey, TObject, TStoreObject> {
|
|||
.subscribeOn(storeScheduler)
|
||||
.concatWith(newStoreValueEvent)
|
||||
.map(storeObject -> returnDefaultValueIfNull(storeObject, defaultValue));
|
||||
return observeStrategy == ObserveStrategy.CACHE_STORE_VALUE ? result.replay(1).refCount() : result;
|
||||
return observeStrategy == ObserveStrategy.CACHE_STORE_VALUE
|
||||
? Observable.create(new OnSubscribeRefCountWithCacheTime<>(result.replay(1), CACHE_TIME, TimeUnit.MILLISECONDS))
|
||||
: result;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
|
@ -176,7 +182,9 @@ public class Storable<TKey, TObject, TStoreObject> {
|
|||
})
|
||||
.subscribeOn(storeScheduler);
|
||||
|
||||
return observeStrategy == ObserveStrategy.CACHE_ACTUAL_VALUE ? result.replay(1).refCount() : result;
|
||||
return observeStrategy == ObserveStrategy.CACHE_ACTUAL_VALUE
|
||||
? Observable.create(new OnSubscribeRefCountWithCacheTime<>(result.replay(1), CACHE_TIME, TimeUnit.MILLISECONDS))
|
||||
: result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -254,7 +262,8 @@ public class Storable<TKey, TObject, TStoreObject> {
|
|||
} catch (final RuntimeException throwable) {
|
||||
STORABLE_LC_GROUP.assertion(throwable);
|
||||
}
|
||||
});
|
||||
})
|
||||
.subscribeOn(storeScheduler);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue