@@ -5801,8 +5801,19 @@ public final Observable<T> repeat(final long count, Scheduler scheduler) {
58015801 * @see <a href="https://github.com/ReactiveX/RxJava/wiki/Creating-Observables#repeatwhen">RxJava Wiki: repeatWhen()</a>
58025802 * @see <a href="http://msdn.microsoft.com/en-us/library/hh229428.aspx">MSDN: Observable.Repeat</a>
58035803 */
5804- public final Observable <T > repeatWhen (Func1 <? super Observable <? extends Notification <?>>, ? extends Observable <?>> notificationHandler , Scheduler scheduler ) {
5805- return OnSubscribeRedo .repeat (this , notificationHandler , scheduler );
5804+ public final Observable<T> repeatWhen(final Func1<? super Observable<? extends Void>, ? extends Observable<?>> notificationHandler, Scheduler scheduler) {
5805+ Func1<? super Observable<? extends Notification<?>>, ? extends Observable<?>> dematerializedNotificationHandler = new Func1<Observable<? extends Notification<?>>, Observable<?>>() {
5806+ @Override
5807+ public Observable<?> call(Observable<? extends Notification<?>> notifications) {
5808+ return notificationHandler.call(notifications.map(new Func1<Notification<?>, Void>() {
5809+ @Override
5810+ public Void call(Notification<?> notification) {
5811+ return null;
5812+ }
5813+ }));
5814+ }
5815+ };
5816+ return OnSubscribeRedo.repeat(this, dematerializedNotificationHandler, scheduler);
58065817 }
58075818
58085819 /**
@@ -5825,8 +5836,19 @@ public final Observable<T> repeatWhen(Func1<? super Observable<? extends Notific
58255836 * @see <a href="https://github.com/ReactiveX/RxJava/wiki/Creating-Observables#repeatwhen">RxJava Wiki: repeatWhen()</a>
58265837 * @see <a href="http://msdn.microsoft.com/en-us/library/hh229428.aspx">MSDN: Observable.Repeat</a>
58275838 */
5828- public final Observable <T > repeatWhen (Func1 <? super Observable <? extends Notification <?>>, ? extends Observable <?>> notificationHandler ) {
5829- return OnSubscribeRedo .repeat (this , notificationHandler );
5839+ public final Observable<T> repeatWhen(final Func1<? super Observable<? extends Void>, ? extends Observable<?>> notificationHandler) {
5840+ Func1<? super Observable<? extends Notification<?>>, ? extends Observable<?>> dematerializedNotificationHandler = new Func1<Observable<? extends Notification<?>>, Observable<?>>() {
5841+ @Override
5842+ public Observable<?> call(Observable<? extends Notification<?>> notifications) {
5843+ return notificationHandler.call(notifications.map(new Func1<Notification<?>, Void>() {
5844+ @Override
5845+ public Void call(Notification<?> notification) {
5846+ return null;
5847+ }
5848+ }));
5849+ }
5850+ };
5851+ return OnSubscribeRedo.repeat(this, dematerializedNotificationHandler);
58305852 }
58315853
58325854 /**
@@ -6541,8 +6563,19 @@ public final Observable<T> retry(Func2<Integer, Throwable, Boolean> predicate) {
65416563 * @return the source Observable modified with retry logic
65426564 * @see <a href="https://github.com/ReactiveX/RxJava/wiki/Error-Handling-Operators#retrywhen">RxJava Wiki: retryWhen()</a>
65436565 */
6544- public final Observable <T > retryWhen (Func1 <? super Observable <? extends Notification <?>>, ? extends Observable <?>> notificationHandler ) {
6545- return OnSubscribeRedo .<T > retry (this , notificationHandler );
6566+ public final Observable<T> retryWhen(final Func1<? super Observable<? extends Throwable>, ? extends Observable<?>> notificationHandler) {
6567+ Func1<? super Observable<? extends Notification<?>>, ? extends Observable<?>> dematerializedNotificationHandler = new Func1<Observable<? extends Notification<?>>, Observable<?>>() {
6568+ @Override
6569+ public Observable<?> call(Observable<? extends Notification<?>> notifications) {
6570+ return notificationHandler.call(notifications.map(new Func1<Notification<?>, Throwable>() {
6571+ @Override
6572+ public Throwable call(Notification<?> notification) {
6573+ return notification.getThrowable();
6574+ }
6575+ }));
6576+ }
6577+ };
6578+ return OnSubscribeRedo.<T> retry(this, dematerializedNotificationHandler);
65466579 }
65476580
65486581 /**
@@ -6566,8 +6599,19 @@ public final Observable<T> retryWhen(Func1<? super Observable<? extends Notifica
65666599 * @return the source Observable modified with retry logic
65676600 * @see <a href="https://github.com/ReactiveX/RxJava/wiki/Error-Handling-Operators#retrywhen">RxJava Wiki: retryWhen()</a>
65686601 */
6569- public final Observable <T > retryWhen (Func1 <? super Observable <? extends Notification <?>>, ? extends Observable <?>> notificationHandler , Scheduler scheduler ) {
6570- return OnSubscribeRedo .<T > retry (this , notificationHandler , scheduler );
6602+ public final Observable<T> retryWhen(final Func1<? super Observable<? extends Throwable>, ? extends Observable<?>> notificationHandler, Scheduler scheduler) {
6603+ Func1<? super Observable<? extends Notification<?>>, ? extends Observable<?>> dematerializedNotificationHandler = new Func1<Observable<? extends Notification<?>>, Observable<?>>() {
6604+ @Override
6605+ public Observable<?> call(Observable<? extends Notification<?>> notifications) {
6606+ return notificationHandler.call(notifications.map(new Func1<Notification<?>, Throwable>() {
6607+ @Override
6608+ public Throwable call(Notification<?> notification) {
6609+ return notification.getThrowable();
6610+ }
6611+ }));
6612+ }
6613+ };
6614+ return OnSubscribeRedo.<T> retry(this, dematerializedNotificationHandler, scheduler);
65716615 }
65726616
65736617 /**
0 commit comments