From fe3876d886d20e8001109394e08096f40d6d7628 Mon Sep 17 00:00:00 2001 From: Daniil Borisovskii Date: Tue, 28 Apr 2020 18:58:50 +0300 Subject: [PATCH] Added function "unwrapOrSkip()" for Observable and Flowable --- .../src/main/java/ru/touchin/extensions/rx/Flowable.kt | 6 ++++++ .../src/main/java/ru/touchin/extensions/rx/Observable.kt | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/rx-extensions/src/main/java/ru/touchin/extensions/rx/Flowable.kt b/rx-extensions/src/main/java/ru/touchin/extensions/rx/Flowable.kt index acf4e0b..12f7397 100644 --- a/rx-extensions/src/main/java/ru/touchin/extensions/rx/Flowable.kt +++ b/rx-extensions/src/main/java/ru/touchin/extensions/rx/Flowable.kt @@ -17,3 +17,9 @@ fun Flowable>.unwrapOrError( ?.let { Flowable.just(it) } ?: Flowable.error(ShouldNotHappenException(errorMessage)) } + +fun Flowable>.unwrapOrSkip(): Flowable = this.flatMap { wrapper -> + wrapper.get() + ?.let { Flowable.just(it) } + ?: Flowable.empty().skip(1) +} diff --git a/rx-extensions/src/main/java/ru/touchin/extensions/rx/Observable.kt b/rx-extensions/src/main/java/ru/touchin/extensions/rx/Observable.kt index 6f1fc21..399dff2 100644 --- a/rx-extensions/src/main/java/ru/touchin/extensions/rx/Observable.kt +++ b/rx-extensions/src/main/java/ru/touchin/extensions/rx/Observable.kt @@ -17,3 +17,9 @@ fun Observable>.unwrapOrError( ?.let { Observable.just(it) } ?: Observable.error(ShouldNotHappenException(errorMessage)) } + +fun Observable>.unwrapOrSkip(): Observable = this.flatMap { wrapper -> + wrapper.get() + ?.let { Observable.just(it) } + ?: Observable.empty().skip(1) +}