) bind).call(o));
}
});
}
diff --git a/rxjava-core/src/main/java/rx/observers/SafeSubscriber.java b/rxjava-core/src/main/java/rx/observers/SafeSubscriber.java
index d757d85251..0ff56ac759 100644
--- a/rxjava-core/src/main/java/rx/observers/SafeSubscriber.java
+++ b/rxjava-core/src/main/java/rx/observers/SafeSubscriber.java
@@ -164,4 +164,7 @@ protected void _onError(Throwable e) {
}
}
+ public Subscriber super T> getActual() {
+ return actual;
+ }
}
diff --git a/rxjava-core/src/main/java/rx/plugins/RxJavaObservableExecutionHook.java b/rxjava-core/src/main/java/rx/plugins/RxJavaObservableExecutionHook.java
index c3aa2b44ad..da4500c494 100644
--- a/rxjava-core/src/main/java/rx/plugins/RxJavaObservableExecutionHook.java
+++ b/rxjava-core/src/main/java/rx/plugins/RxJavaObservableExecutionHook.java
@@ -20,6 +20,7 @@
import rx.Observable.OnSubscribeFunc;
import rx.Subscriber;
import rx.Subscription;
+import rx.operators.Operator;
import rx.util.functions.Func1;
/**
@@ -37,7 +38,6 @@
*
* */
public abstract class RxJavaObservableExecutionHook {
-
/**
* Invoked before {@link Observable#subscribe(rx.Subscriber)} is about to be executed.
*
@@ -93,4 +93,15 @@ public Throwable onSubscribeError(Observable extends T> observableInstance
return e;
}
+ public OnSubscribe onCreate(OnSubscribe f) {
+ return f;
+ }
+
+ public Operator onLift(final Operator bind) {
+ return bind;
+ }
+
+ public Subscription onAdd(Subscriber subscriber, Subscription s) {
+ return s;
+ }
}
diff --git a/rxjava-core/src/main/java/rx/util/functions/Actions.java b/rxjava-core/src/main/java/rx/util/functions/Actions.java
index 5d4d3656dc..7b233bb7fb 100644
--- a/rxjava-core/src/main/java/rx/util/functions/Actions.java
+++ b/rxjava-core/src/main/java/rx/util/functions/Actions.java
@@ -16,7 +16,6 @@
package rx.util.functions;
import rx.Observer;
-import rx.Subscriber;
/**
* Utility class for the Action interfaces.
@@ -26,6 +25,58 @@ private Actions() {
throw new IllegalStateException("No instances!");
}
+ public static final EmptyAction empty() {
+ return EMPTY_ACTION;
+ }
+
+ private static final EmptyAction EMPTY_ACTION = new EmptyAction();
+
+ private static final class EmptyAction implements Action0, Action1, Action2, Action3, Action4, Action5, Action6, Action7, Action8, Action9, ActionN {
+ @Override
+ public void call() {
+ }
+
+ @Override
+ public void call(Object t1) {
+ }
+
+ @Override
+ public void call(Object t1, Object t2) {
+ }
+
+ @Override
+ public void call(Object t1, Object t2, Object t3) {
+ }
+
+ @Override
+ public void call(Object t1, Object t2, Object t3, Object t4) {
+ }
+
+ @Override
+ public void call(Object t1, Object t2, Object t3, Object t4, Object t5) {
+ }
+
+ @Override
+ public void call(Object t1, Object t2, Object t3, Object t4, Object t5, Object t6) {
+ }
+
+ @Override
+ public void call(Object t1, Object t2, Object t3, Object t4, Object t5, Object t6, Object t7) {
+ }
+
+ @Override
+ public void call(Object t1, Object t2, Object t3, Object t4, Object t5, Object t6, Object t7, Object t8) {
+ }
+
+ @Override
+ public void call(Object t1, Object t2, Object t3, Object t4, Object t5, Object t6, Object t7, Object t8, Object t9) {
+ }
+
+ @Override
+ public void call(Object... args) {
+ }
+ }
+
/**
* Extracts a method reference to the observer's onNext method
* in the form of an Action1.
diff --git a/settings.gradle b/settings.gradle
index 22dd94ec82..5be4134cef 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -9,5 +9,6 @@ include 'rxjava-core', \
'rxjava-contrib:rxjava-android', \
'rxjava-contrib:rxjava-apache-http', \
'rxjava-contrib:rxjava-string', \
+'rxjava-contrib:rxjava-debug', \
'rxjava-contrib:rxjava-async-util', \
'rxjava-contrib:rxjava-computation-expressions'