From 550e7e0aa172ec13e5eda9701ac600962dfdc79d Mon Sep 17 00:00:00 2001 From: Eric Kuck Date: Wed, 5 Oct 2016 15:16:04 -0500 Subject: [PATCH] Added missing constructor to RestoreViewOnCreateController --- .../RxRestoreViewOnCreateController.java | 52 +++++++++++++++++++ .../RestoreViewOnCreateController.java | 16 ++++++ 2 files changed, 68 insertions(+) create mode 100644 conductor-rxlifecycle/src/main/java/com/bluelinelabs/conductor/rxlifecycle/RxRestoreViewOnCreateController.java diff --git a/conductor-rxlifecycle/src/main/java/com/bluelinelabs/conductor/rxlifecycle/RxRestoreViewOnCreateController.java b/conductor-rxlifecycle/src/main/java/com/bluelinelabs/conductor/rxlifecycle/RxRestoreViewOnCreateController.java new file mode 100644 index 0000000..7ab6f07 --- /dev/null +++ b/conductor-rxlifecycle/src/main/java/com/bluelinelabs/conductor/rxlifecycle/RxRestoreViewOnCreateController.java @@ -0,0 +1,52 @@ +package com.bluelinelabs.conductor.rxlifecycle; + +import android.os.Bundle; +import android.support.annotation.CheckResult; +import android.support.annotation.NonNull; + +import com.bluelinelabs.conductor.RestoreViewOnCreateController; +import com.trello.rxlifecycle.LifecycleProvider; +import com.trello.rxlifecycle.LifecycleTransformer; +import com.trello.rxlifecycle.RxLifecycle; + +import rx.Observable; +import rx.subjects.BehaviorSubject; + +/** + * A base {@link RestoreViewOnCreateController} that can be used to expose lifecycle events using RxJava + */ +public abstract class RxRestoreViewOnCreateController extends RestoreViewOnCreateController implements LifecycleProvider { + + private final BehaviorSubject lifecycleSubject; + + public RxRestoreViewOnCreateController() { + this(null); + } + + public RxRestoreViewOnCreateController(Bundle args) { + super(args); + lifecycleSubject = ControllerLifecycleSubjectHelper.create(this); + } + + @Override + @NonNull + @CheckResult + public final Observable lifecycle() { + return lifecycleSubject.asObservable(); + } + + @Override + @NonNull + @CheckResult + public final LifecycleTransformer bindUntilEvent(@NonNull ControllerEvent event) { + return RxLifecycle.bindUntilEvent(lifecycleSubject, event); + } + + @Override + @NonNull + @CheckResult + public final LifecycleTransformer bindToLifecycle() { + return RxControllerLifecycle.bindController(lifecycleSubject); + } + +} \ No newline at end of file diff --git a/conductor/src/main/java/com/bluelinelabs/conductor/RestoreViewOnCreateController.java b/conductor/src/main/java/com/bluelinelabs/conductor/RestoreViewOnCreateController.java index f29fdf8..1d9a2aa 100644 --- a/conductor/src/main/java/com/bluelinelabs/conductor/RestoreViewOnCreateController.java +++ b/conductor/src/main/java/com/bluelinelabs/conductor/RestoreViewOnCreateController.java @@ -14,6 +14,22 @@ import android.view.ViewGroup; */ abstract public class RestoreViewOnCreateController extends Controller { + /** + * Convenience constructor for use when no arguments are needed. + */ + protected RestoreViewOnCreateController() { + super(null); + } + + /** + * Constructor that takes arguments that need to be retained across restarts. + * + * @param args Any arguments that need to be retained. + */ + protected RestoreViewOnCreateController(Bundle args) { + super(args); + } + @NonNull @Override protected final View onCreateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container) {