From cf45a01ffe0c3a05380271b996f5174b10cf80c0 Mon Sep 17 00:00:00 2001 From: Taeho Kim Date: Wed, 13 Jul 2016 00:03:28 +0900 Subject: [PATCH 01/12] Add ViewPager page scroll state change binding Signed-off-by: Taeho Kim --- .../rxbinding/support/v4/view/RxViewPager.kt | 9 ++++ .../support/v4/view/RxViewPagerTest.java | 33 +++++++++++++++ .../v4/view/RxViewPagerTestActivity.java | 2 + .../support/v4/view/RxViewPager.java | 13 ++++++ ...agerPageScrollStateChangedOnSubscribe.java | 42 +++++++++++++++++++ 5 files changed, 99 insertions(+) create mode 100644 rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/ViewPagerPageScrollStateChangedOnSubscribe.java diff --git a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt index 0e2eb723..acda6676 100644 --- a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt +++ b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt @@ -3,6 +3,15 @@ package com.jakewharton.rxbinding.support.v4.view import android.support.v4.view.ViewPager import rx.Observable +/** + * Create an observable of scroll state change events on `view`. + * + * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe + * to free this reference. + * + */ +public inline fun ViewPager.pageScrollStateChanges(): Observable = RxViewPager.pageScrollStateChanges(this) + /** * Create an observable of page selected events on `view`. * diff --git a/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTest.java b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTest.java index b296451d..54c8eb79 100644 --- a/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTest.java +++ b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTest.java @@ -1,6 +1,11 @@ package com.jakewharton.rxbinding.support.v4.view; import android.support.test.annotation.UiThreadTest; +import android.support.test.espresso.ViewAction; +import android.support.test.espresso.action.GeneralLocation; +import android.support.test.espresso.action.GeneralSwipeAction; +import android.support.test.espresso.action.Press; +import android.support.test.espresso.action.Swipe; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import android.support.v4.view.ViewPager; @@ -10,7 +15,10 @@ import org.junit.Test; import org.junit.runner.RunWith; import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.matcher.ViewMatchers.withId; import static com.google.common.truth.Truth.assertThat; @RunWith(AndroidJUnit4.class) @@ -25,6 +33,26 @@ public final class RxViewPagerTest { view = activity.viewPager; } + @Test public void pageScrollStateChanges() { + view.setCurrentItem(0); + RecordingObserver o = new RecordingObserver<>(); + Subscription subscription = RxViewPager.pageScrollStateChanges(view) + .subscribeOn(AndroidSchedulers.mainThread()) + .subscribe(o); + o.assertNoMoreEvents(); // No initial value. + + onView(withId(1)).perform(swipeLeft()); + assertThat(o.takeNext()).isEqualTo(ViewPager.SCROLL_STATE_DRAGGING); + assertThat(o.takeNext()).isEqualTo(ViewPager.SCROLL_STATE_SETTLING); + assertThat(o.takeNext()).isEqualTo(ViewPager.SCROLL_STATE_IDLE); + o.assertNoMoreEvents(); + + subscription.unsubscribe(); + + onView(withId(1)).perform(swipeLeft()); + o.assertNoMoreEvents(); + } + @Test @UiThreadTest public void pageSelections() { view.setCurrentItem(0); RecordingObserver o = new RecordingObserver<>(); @@ -41,4 +69,9 @@ public final class RxViewPagerTest { view.setCurrentItem(0); o.assertNoMoreEvents(); } + + private static ViewAction swipeLeft() { + return new GeneralSwipeAction(Swipe.FAST, GeneralLocation.CENTER_RIGHT, + GeneralLocation.CENTER_LEFT, Press.FINGER); + } } diff --git a/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTestActivity.java b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTestActivity.java index 7b8227f7..5f28bf6f 100644 --- a/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTestActivity.java +++ b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTestActivity.java @@ -11,10 +11,12 @@ public final class RxViewPagerTestActivity extends Activity { ViewPager viewPager; + @SuppressWarnings("ResourceType") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); viewPager = new ViewPager(this); + viewPager.setId(1); viewPager.setAdapter(new Adapter()); setContentView(viewPager); diff --git a/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/RxViewPager.java b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/RxViewPager.java index bcaa4120..539e244a 100644 --- a/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/RxViewPager.java +++ b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/RxViewPager.java @@ -8,6 +8,19 @@ import static com.jakewharton.rxbinding.internal.Preconditions.checkNotNull; public final class RxViewPager { + /** + * Create an observable of scroll state change events on {@code view}. + *

+ * Warning: The created observable keeps a strong reference to {@code view}. Unsubscribe + * to free this reference. + *

+ */ + @CheckResult @NonNull + public static Observable pageScrollStateChanges(@NonNull ViewPager view) { + checkNotNull(view, "view == null"); + return Observable.create(new ViewPagerPageScrollStateChangedOnSubscribe(view)); + } + /** * Create an observable of page selected events on {@code view}. *

diff --git a/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/ViewPagerPageScrollStateChangedOnSubscribe.java b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/ViewPagerPageScrollStateChangedOnSubscribe.java new file mode 100644 index 00000000..8499958b --- /dev/null +++ b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/ViewPagerPageScrollStateChangedOnSubscribe.java @@ -0,0 +1,42 @@ +package com.jakewharton.rxbinding.support.v4.view; + +import android.support.v4.view.ViewPager; +import rx.Observable; +import rx.Subscriber; +import rx.android.MainThreadSubscription; + +import static rx.android.MainThreadSubscription.verifyMainThread; + +final class ViewPagerPageScrollStateChangedOnSubscribe implements Observable.OnSubscribe { + final ViewPager view; + + ViewPagerPageScrollStateChangedOnSubscribe(ViewPager view) { + this.view = view; + } + + @Override public void call(final Subscriber subscriber) { + verifyMainThread(); + + final ViewPager.OnPageChangeListener listener = new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + } + + @Override public void onPageSelected(int position) { + } + + @Override public void onPageScrollStateChanged(int state) { + if (!subscriber.isUnsubscribed()) { + subscriber.onNext(state); + } + } + }; + view.addOnPageChangeListener(listener); + + subscriber.add(new MainThreadSubscription() { + @Override protected void onUnsubscribe() { + view.removeOnPageChangeListener(listener); + } + }); + } +} From 76aee5f518e06d55639e9308071da18e86b53133 Mon Sep 17 00:00:00 2001 From: pawel-schmidt Date: Sun, 14 Aug 2016 07:01:21 +0200 Subject: [PATCH 02/12] Added currentItem action to RxViewPager --- .../rxbinding/support/v4/view/RxViewPager.kt | 9 +++++++++ .../support/v4/view/RxViewPagerTest.java | 9 +++++++++ .../rxbinding/support/v4/view/RxViewPager.java | 18 ++++++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt index acda6676..dcd1d1d9 100644 --- a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt +++ b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt @@ -2,6 +2,7 @@ package com.jakewharton.rxbinding.support.v4.view import android.support.v4.view.ViewPager import rx.Observable +import rx.functions.Action1 /** * Create an observable of scroll state change events on `view`. @@ -21,3 +22,11 @@ public inline fun ViewPager.pageScrollStateChanges(): Observable = RxViewPa * *Note:* A value will be emitted immediately on subscribe. */ public inline fun ViewPager.pageSelections(): Observable = RxViewPager.pageSelections(this) + +/** + * An action which sets the current item of `view`. + * + * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe + * to free this reference. + */ +public inline fun ViewPager.currentItem(): Action1 = RxViewPager.currentItem(this) diff --git a/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTest.java b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTest.java index 54c8eb79..abd0cda0 100644 --- a/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTest.java +++ b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/view/RxViewPagerTest.java @@ -16,6 +16,7 @@ import org.junit.runner.RunWith; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Action1; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.matcher.ViewMatchers.withId; @@ -70,6 +71,14 @@ public final class RxViewPagerTest { o.assertNoMoreEvents(); } + @Test @UiThreadTest public void currentItem() { + Action1 action = RxViewPager.currentItem(view); + action.call(3); + assertThat(view.getCurrentItem()).isEqualTo(3); + action.call(5); + assertThat(view.getCurrentItem()).isEqualTo(5); + } + private static ViewAction swipeLeft() { return new GeneralSwipeAction(Swipe.FAST, GeneralLocation.CENTER_RIGHT, GeneralLocation.CENTER_LEFT, Press.FINGER); diff --git a/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/RxViewPager.java b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/RxViewPager.java index 539e244a..cb23a484 100644 --- a/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/RxViewPager.java +++ b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/view/RxViewPager.java @@ -3,7 +3,9 @@ import android.support.annotation.CheckResult; import android.support.annotation.NonNull; import android.support.v4.view.ViewPager; + import rx.Observable; +import rx.functions.Action1; import static com.jakewharton.rxbinding.internal.Preconditions.checkNotNull; @@ -35,6 +37,22 @@ public static Observable pageSelections(@NonNull ViewPager view) { return Observable.create(new ViewPagerPageSelectedOnSubscribe(view)); } + /** + * An action which sets the current item of {@code view}. + *

+ * Warning: The created observable keeps a strong reference to {@code view}. Unsubscribe + * to free this reference. + */ + @CheckResult @NonNull + public static Action1 currentItem(@NonNull final ViewPager view) { + checkNotNull(view, "view == null"); + return new Action1() { + @Override public void call(Integer value) { + view.setCurrentItem(value); + } + }; + } + private RxViewPager() { throw new AssertionError("No instances."); } From bd269d8203111bdef740df8c4f41982ffbffdc2e Mon Sep 17 00:00:00 2001 From: Niklas Baudy Date: Thu, 8 Sep 2016 14:10:14 +0200 Subject: [PATCH 03/12] Fix order of modifiers in ViewEvent --- .../src/main/java/com/jakewharton/rxbinding/view/ViewEvent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewEvent.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewEvent.java index 2bb37f47..75f6b9e5 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewEvent.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewEvent.java @@ -18,7 +18,7 @@ protected ViewEvent(@NonNull T view) { } /** The view from which this event occurred. */ - public @NonNull T view() { + @NonNull public T view() { return view; } } From 10d1da5c1c2df305a32cd7e9379aaec4848d2315 Mon Sep 17 00:00:00 2001 From: Alex Townsend Date: Thu, 8 Sep 2016 13:30:11 -0400 Subject: [PATCH 04/12] Add new SlidingPaneLayout bindings --- .../support/v4/widget/RxSlidingPaneLayout.kt | 37 ++++ .../src/androidTest/AndroidManifest.xml | 1 + .../v4/widget/RxSlidingPaneLayoutTest.java | 173 ++++++++++++++++++ .../RxSlidingPaneLayoutTestActivity.java | 34 ++++ .../v4/widget/RxSlidingPaneLayout.java | 71 +++++++ ...lidingPaneLayoutPaneOpenedOnSubscribe.java | 46 +++++ .../SlidingPaneLayoutSlideOnSubscribe.java | 38 ++++ 7 files changed, 400 insertions(+) create mode 100644 rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.kt create mode 100644 rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayoutTest.java create mode 100644 rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayoutTestActivity.java create mode 100644 rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.java create mode 100644 rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/SlidingPaneLayoutPaneOpenedOnSubscribe.java create mode 100644 rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/SlidingPaneLayoutSlideOnSubscribe.java diff --git a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.kt b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.kt new file mode 100644 index 00000000..1a585edf --- /dev/null +++ b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.kt @@ -0,0 +1,37 @@ +package com.jakewharton.rxbinding.support.v4.widget + +import android.support.v4.widget.SlidingPaneLayout +import rx.Observable +import rx.functions.Action1 + +/** + * Create an observable of the open state of the pane of `view` + * + * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe + * to free this reference. + * + * *Warning:* The created observable uses [SlidingPaneLayout.setPanelSlideListener] + * to observe dismiss change. Only one observable can be used for a view at a time. + * + * *Note:* A value will be emitted immediately on subscribe. + */ +public inline fun SlidingPaneLayout.panelOpens(): Observable = RxSlidingPaneLayout.panelOpens(this) + +/** + * Create an observable of the slide offset of the pane of `view` + * + * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe + * to free this reference. + * + * *Warning:* The created observable uses [SlidingPaneLayout.setPanelSlideListener] + * to observe dismiss change. Only one observable can be used for a view at a time. + */ +public inline fun SlidingPaneLayout.panelSlides(): Observable = RxSlidingPaneLayout.panelSlides(this) + +/** + * An action which sets whether the pane of `view` is open. + * + * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe + * to free this reference. + */ +public inline fun SlidingPaneLayout.open(): Action1 = RxSlidingPaneLayout.open(this) diff --git a/rxbinding-support-v4/src/androidTest/AndroidManifest.xml b/rxbinding-support-v4/src/androidTest/AndroidManifest.xml index ddde5358..85d72222 100644 --- a/rxbinding-support-v4/src/androidTest/AndroidManifest.xml +++ b/rxbinding-support-v4/src/androidTest/AndroidManifest.xml @@ -7,5 +7,6 @@ + diff --git a/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayoutTest.java b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayoutTest.java new file mode 100644 index 00000000..4d29828e --- /dev/null +++ b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayoutTest.java @@ -0,0 +1,173 @@ +package com.jakewharton.rxbinding.support.v4.widget; + +import android.app.Instrumentation; +import android.support.test.InstrumentationRegistry; +import android.support.test.espresso.Espresso; +import android.support.test.espresso.contrib.CountingIdlingResource; +import android.support.test.espresso.matcher.BoundedMatcher; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.support.v4.widget.SlidingPaneLayout; +import android.view.View; +import com.jakewharton.rxbinding.RecordingObserver; +import org.hamcrest.Description; +import org.hamcrest.Matcher; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Action1; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.assertion.ViewAssertions.matches; +import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static com.google.common.truth.Truth.assertThat; + +@RunWith(AndroidJUnit4.class) public class RxSlidingPaneLayoutTest { + @Rule public final ActivityTestRule activityRule = + new ActivityTestRule<>(RxSlidingPaneLayoutTestActivity.class); + + private final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); + + private SlidingPaneLayout view; + + private CountingIdlingResource idler; + + @Before public void setUp() { + RxSlidingPaneLayoutTestActivity activity = activityRule.getActivity(); + view = activity.slidingPaneLayout; + + idler = new CountingIdlingResource("counting idler"); + Espresso.registerIdlingResources(idler); + } + + @After public void teardown() { + Espresso.unregisterIdlingResources(idler); + } + + @Test public void paneOpen() { + RecordingObserver o = new RecordingObserver<>(); + Subscription subscription = + RxSlidingPaneLayout.panelOpens(view).subscribeOn(AndroidSchedulers.mainThread()).subscribe(o); + assertThat(o.takeNext()).isFalse(); + + instrumentation.runOnMainSync(new Runnable() { + @Override public void run() { + view.openPane(); + } + }); + assertThat(o.takeNext()).isTrue(); + + instrumentation.runOnMainSync(new Runnable() { + @Override public void run() { + view.closePane(); + } + }); + assertThat(o.takeNext()).isFalse(); + + subscription.unsubscribe(); + + instrumentation.runOnMainSync(new Runnable() { + @Override public void run() { + view.openPane(); + } + }); + o.assertNoMoreEvents(); + } + + @Test public void slides() { + RecordingObserver o1 = new RecordingObserver<>(); + Subscription subscription1 = + RxSlidingPaneLayout.panelSlides(view).subscribeOn(AndroidSchedulers.mainThread()).subscribe(o1); + o1.assertNoMoreEvents(); + + instrumentation.runOnMainSync(new Runnable() { + @Override public void run() { + view.openPane(); + } + }); + instrumentation.waitForIdleSync(); + assertThat(o1.takeNext()).isGreaterThan(0f); + + subscription1.unsubscribe(); + o1.assertNoMoreEvents(); + + RecordingObserver o2 = new RecordingObserver<>(); + Subscription subscription2 = + RxSlidingPaneLayout.panelSlides(view).subscribeOn(AndroidSchedulers.mainThread()).subscribe(o2); + o2.assertNoMoreEvents(); + + instrumentation.runOnMainSync(new Runnable() { + @Override public void run() { + view.closePane(); + } + }); + instrumentation.waitForIdleSync(); + assertThat(o2.takeNext()).isLessThan(1.0f); + + subscription2.unsubscribe(); + o2.assertNoMoreEvents(); + } + + @Test public void open() { + final Action1 open = RxSlidingPaneLayout.open(view); + + view.setPanelSlideListener(new SlidingPaneLayout.SimplePanelSlideListener() { + @Override public void onPanelOpened(View panel) { + idler.decrement(); + } + + @Override public void onPanelClosed(View panel) { + idler.decrement(); + } + }); + + idler.increment(); + instrumentation.runOnMainSync(new Runnable() { + @Override public void run() { + open.call(true); + } + }); + instrumentation.waitForIdleSync(); + onView(withId(view.getId())).check(matches(isOpen())); + + + idler.increment(); + instrumentation.runOnMainSync(new Runnable() { + @Override public void run() { + open.call(false); + } + }); + instrumentation.waitForIdleSync(); + onView(withId(view.getId())).check(matches(isClosed())); + + view.setPanelSlideListener(null); + } + + private static Matcher isOpen() { + return new BoundedMatcher(SlidingPaneLayout.class) { + @Override public void describeTo(Description description) { + description.appendText("is pane open"); + } + + @Override public boolean matchesSafely(SlidingPaneLayout slidingPaneLayout) { + return slidingPaneLayout.isOpen(); + } + }; + } + + private static Matcher isClosed() { + return new BoundedMatcher(SlidingPaneLayout.class) { + @Override public void describeTo(Description description) { + description.appendText("is pane closed"); + } + + @Override public boolean matchesSafely(SlidingPaneLayout slidingPaneLayout) { + return !slidingPaneLayout.isOpen(); + } + }; + } +} diff --git a/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayoutTestActivity.java b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayoutTestActivity.java new file mode 100644 index 00000000..d2428a8f --- /dev/null +++ b/rxbinding-support-v4/src/androidTest/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayoutTestActivity.java @@ -0,0 +1,34 @@ +package com.jakewharton.rxbinding.support.v4.widget; + +import android.app.Activity; +import android.graphics.Color; +import android.os.Bundle; +import android.support.v4.widget.SlidingPaneLayout; +import android.support.v4.widget.SlidingPaneLayout.LayoutParams; +import android.widget.FrameLayout; + +import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; + +public final class RxSlidingPaneLayoutTestActivity extends Activity { + SlidingPaneLayout slidingPaneLayout; + + @Override protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + slidingPaneLayout = new SlidingPaneLayout(this); + slidingPaneLayout.setId(android.R.id.primary); + + FrameLayout paneOne = new FrameLayout(this); + LayoutParams paneOneParams = new LayoutParams(300, MATCH_PARENT); + slidingPaneLayout.addView(paneOne, paneOneParams); + + FrameLayout paneTwo = new FrameLayout(this); + paneTwo.setBackgroundColor(Color.WHITE); + LayoutParams paneTwoParams = new LayoutParams(MATCH_PARENT, MATCH_PARENT); + paneTwoParams.leftMargin = 50; + slidingPaneLayout.addView(paneTwo, paneTwoParams); + + + setContentView(slidingPaneLayout); + } +} diff --git a/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.java b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.java new file mode 100644 index 00000000..907b1a0d --- /dev/null +++ b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.java @@ -0,0 +1,71 @@ +package com.jakewharton.rxbinding.support.v4.widget; + +import android.support.annotation.CheckResult; +import android.support.annotation.NonNull; +import android.support.v4.widget.SlidingPaneLayout; +import rx.Observable; +import rx.functions.Action1; + +import static com.jakewharton.rxbinding.internal.Preconditions.checkNotNull; + +/** + * Static factory methods for creating {@linkplain Observable observables} + * for {@link SlidingPaneLayout} + */ +public final class RxSlidingPaneLayout { + /** + * Create an observable of the open state of the pane of {@code view} + *

+ * Warning: The created observable keeps a strong reference to {@code view}. Unsubscribe + * to free this reference. + *

+ * Warning: The created observable uses {@link SlidingPaneLayout#setPanelSlideListener} + * to observe dismiss change. Only one observable can be used for a view at a time. + *

+ * Note: A value will be emitted immediately on subscribe. + */ + @CheckResult @NonNull public static Observable panelOpens( + @NonNull SlidingPaneLayout view) { + checkNotNull(view, "view == null"); + return Observable.create(new SlidingPaneLayoutPaneOpenedOnSubscribe(view)); + } + + /** + * Create an observable of the slide offset of the pane of {@code view} + *

+ * Warning: The created observable keeps a strong reference to {@code view}. Unsubscribe + * to free this reference. + *

+ * Warning: The created observable uses {@link SlidingPaneLayout#setPanelSlideListener} + * to observe dismiss change. Only one observable can be used for a view at a time. + */ + @CheckResult @NonNull public static Observable panelSlides( + @NonNull SlidingPaneLayout view) { + checkNotNull(view, "view == null"); + return Observable.create(new SlidingPaneLayoutSlideOnSubscribe(view)); + } + + /** + * An action which sets whether the pane of {@code view} is open. + *

+ * Warning: The created observable keeps a strong reference to {@code view}. Unsubscribe + * to free this reference. + */ + @CheckResult @NonNull public static Action1 open( + @NonNull final SlidingPaneLayout view) { + checkNotNull(view, "view == null"); + return new Action1() { + @Override public void call(Boolean value) { + if (value) { + view.openPane(); + } else { + view.closePane(); + } + } + }; + } + + private RxSlidingPaneLayout() { + throw new AssertionError("No instances."); + } +} diff --git a/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/SlidingPaneLayoutPaneOpenedOnSubscribe.java b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/SlidingPaneLayoutPaneOpenedOnSubscribe.java new file mode 100644 index 00000000..63fcc54c --- /dev/null +++ b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/SlidingPaneLayoutPaneOpenedOnSubscribe.java @@ -0,0 +1,46 @@ +package com.jakewharton.rxbinding.support.v4.widget; + +import android.support.v4.widget.SlidingPaneLayout; +import android.view.View; +import rx.Observable; +import rx.Subscriber; +import rx.android.MainThreadSubscription; + +import static rx.android.MainThreadSubscription.verifyMainThread; + +final class SlidingPaneLayoutPaneOpenedOnSubscribe implements Observable.OnSubscribe { + final SlidingPaneLayout view; + + SlidingPaneLayoutPaneOpenedOnSubscribe(SlidingPaneLayout view) { + this.view = view; + } + + @Override public void call(final Subscriber subscriber) { + verifyMainThread(); + + final SlidingPaneLayout.PanelSlideListener listener = + new SlidingPaneLayout.SimplePanelSlideListener() { + @Override public void onPanelOpened(View panel) { + if (!subscriber.isUnsubscribed()) { + subscriber.onNext(true); + } + } + + @Override public void onPanelClosed(View panel) { + if (!subscriber.isUnsubscribed()) { + subscriber.onNext(false); + } + } + }; + + view.setPanelSlideListener(listener); + + subscriber.add(new MainThreadSubscription() { + @Override protected void onUnsubscribe() { + view.setPanelSlideListener(null); + } + }); + + subscriber.onNext(view.isOpen()); + } +} diff --git a/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/SlidingPaneLayoutSlideOnSubscribe.java b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/SlidingPaneLayoutSlideOnSubscribe.java new file mode 100644 index 00000000..34df8a6c --- /dev/null +++ b/rxbinding-support-v4/src/main/java/com/jakewharton/rxbinding/support/v4/widget/SlidingPaneLayoutSlideOnSubscribe.java @@ -0,0 +1,38 @@ +package com.jakewharton.rxbinding.support.v4.widget; + +import android.support.v4.widget.SlidingPaneLayout; +import android.view.View; +import rx.Observable; +import rx.Subscriber; +import rx.android.MainThreadSubscription; + +import static rx.android.MainThreadSubscription.verifyMainThread; + +final class SlidingPaneLayoutSlideOnSubscribe implements Observable.OnSubscribe { + final SlidingPaneLayout view; + + SlidingPaneLayoutSlideOnSubscribe(SlidingPaneLayout view) { + this.view = view; + } + + @Override public void call(final Subscriber subscriber) { + verifyMainThread(); + + final SlidingPaneLayout.PanelSlideListener listener = + new SlidingPaneLayout.SimplePanelSlideListener() { + @Override public void onPanelSlide(View panel, float slideOffset) { + if (!subscriber.isUnsubscribed()) { + subscriber.onNext(slideOffset); + } + } + }; + + view.setPanelSlideListener(listener); + + subscriber.add(new MainThreadSubscription() { + @Override protected void onUnsubscribe() { + view.setPanelSlideListener(null); + } + }); + } +} From 80d356e9958830f6398fa844a823ee3a145a44be Mon Sep 17 00:00:00 2001 From: Niklas Baudy Date: Thu, 8 Sep 2016 14:11:15 +0200 Subject: [PATCH 05/12] Guard against null in ViewEvent --- .../main/java/com/jakewharton/rxbinding/view/ViewEvent.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewEvent.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewEvent.java index 2bb37f47..c2d7c1a2 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewEvent.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewEvent.java @@ -3,6 +3,7 @@ import android.content.Context; import android.support.annotation.NonNull; import android.view.View; +import static com.jakewharton.rxbinding.internal.Preconditions.checkNotNull; /** * A target view on which an event occurred (e.g., click). @@ -14,7 +15,7 @@ public abstract class ViewEvent { private final T view; protected ViewEvent(@NonNull T view) { - this.view = view; + this.view = checkNotNull(view, "view == null"); } /** The view from which this event occurred. */ From 11af21c6519755e221a26d928f1f3eb30b09ff31 Mon Sep 17 00:00:00 2001 From: alex-townsend Date: Fri, 9 Sep 2016 11:59:16 -0400 Subject: [PATCH 06/12] change swipe speed to FAST to fix flaky test --- .../support/design/widget/RxSwipeDismissBehaviorTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/rxbinding-design/src/androidTest/java/com/jakewharton/rxbinding/support/design/widget/RxSwipeDismissBehaviorTest.java b/rxbinding-design/src/androidTest/java/com/jakewharton/rxbinding/support/design/widget/RxSwipeDismissBehaviorTest.java index 0ea13338..37e601ff 100644 --- a/rxbinding-design/src/androidTest/java/com/jakewharton/rxbinding/support/design/widget/RxSwipeDismissBehaviorTest.java +++ b/rxbinding-design/src/androidTest/java/com/jakewharton/rxbinding/support/design/widget/RxSwipeDismissBehaviorTest.java @@ -12,7 +12,6 @@ import android.view.View; import com.jakewharton.rxbinding.RecordingObserver; import org.junit.Before; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -35,7 +34,6 @@ public final class RxSwipeDismissBehaviorTest { view = activity.view; } - @Ignore("https://github.com/JakeWharton/RxBinding/issues/263") @Test public void dismisses() { ((CoordinatorLayout.LayoutParams) view.getLayoutParams()).setBehavior( new SwipeDismissBehavior()); @@ -56,7 +54,7 @@ public final class RxSwipeDismissBehaviorTest { } private static ViewAction swipeRight() { - return new GeneralSwipeAction(Swipe.SLOW, GeneralLocation.CENTER_LEFT, + return new GeneralSwipeAction(Swipe.FAST, GeneralLocation.CENTER_LEFT, GeneralLocation.CENTER_RIGHT, Press.FINGER); } } From 18b18a8c1d98ca0665b34b688c717cd8e6f44f7f Mon Sep 17 00:00:00 2001 From: Hadi Satrio Date: Mon, 10 Oct 2016 08:21:54 +0700 Subject: [PATCH 07/12] Add support for View key event binding --- .../com/jakewharton/rxbinding/view/RxView.kt | 24 ++++++++++ .../rxbinding/view/RxViewTest.java | 20 ++++++++ .../jakewharton/rxbinding/view/RxView.java | 34 ++++++++++++++ .../rxbinding/view/ViewKeyOnSubscribe.java | 47 +++++++++++++++++++ 4 files changed, 125 insertions(+) create mode 100644 rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewKeyOnSubscribe.java diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxView.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxView.kt index cb648cec..4d869d97 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxView.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxView.kt @@ -1,6 +1,7 @@ package com.jakewharton.rxbinding.view import android.view.DragEvent +import android.view.KeyEvent import android.view.MotionEvent import android.view.View import android.view.ViewTreeObserver @@ -259,6 +260,29 @@ public inline fun View.touches(): Observable = RxView.touches(this) */ public inline fun View.touches(handled: Func1): Observable = RxView.touches(this, handled) +/** + * Create an observable of key events for `view`. + * + * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe + * to free this reference. + * *Warning:* The created observable uses [View.setOnKeyListener] to observe + * key events. Only one observable can be used for a view at a time. + */ +public inline fun View.keys(): Observable = RxView.keys(this) + +/** + * Create an observable of key events for `view`. + * + * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe + * to free this reference. + * *Warning:* The created observable uses [View.setOnKeyListener] to observe + * key events. Only one observable can be used for a view at a time. + * + * @param handled Function invoked each occurrence to determine the return value of the + * underlying [View.OnKeyListener]. + */ +public inline fun View.keys(handled: Func1): Observable = RxView.keys(this, handled) + /** * An action which sets the activated property of `view`. * diff --git a/rxbinding/src/androidTest/java/com/jakewharton/rxbinding/view/RxViewTest.java b/rxbinding/src/androidTest/java/com/jakewharton/rxbinding/view/RxViewTest.java index fbf9c745..8011254f 100644 --- a/rxbinding/src/androidTest/java/com/jakewharton/rxbinding/view/RxViewTest.java +++ b/rxbinding/src/androidTest/java/com/jakewharton/rxbinding/view/RxViewTest.java @@ -7,6 +7,7 @@ import android.support.test.filters.SdkSuppress; import android.support.test.rule.UiThreadTestRule; import android.support.test.runner.AndroidJUnit4; +import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.widget.LinearLayout; @@ -269,6 +270,25 @@ public final class RxViewTest { o.assertNoMoreEvents(); } + @Test @UiThreadTest public void keys() { + RecordingObserver o = new RecordingObserver<>(); + Subscription subscription = RxView.keys(view).subscribe(o); + o.assertNoMoreEvents(); + + view.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_R)); + KeyEvent event1 = o.takeNext(); + assertThat(event1.getAction()).isEqualTo(KeyEvent.ACTION_DOWN); + + view.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_H)); + KeyEvent event2 = o.takeNext(); + assertThat(event2.getKeyCode()).isEqualTo(KeyEvent.KEYCODE_H); + + subscription.unsubscribe(); + + view.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_S)); + o.assertNoMoreEvents(); + } + @Test @UiThreadTest public void activated() { view.setActivated(true); Action1 action = RxView.activated(view); diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/RxView.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/RxView.java index 2c444663..53a4f1e7 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/RxView.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/RxView.java @@ -4,6 +4,7 @@ import android.support.annotation.CheckResult; import android.support.annotation.NonNull; import android.view.DragEvent; +import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.ViewTreeObserver; @@ -363,6 +364,39 @@ public static Observable touches(@NonNull View view, return Observable.create(new ViewTouchOnSubscribe(view, handled)); } + /** + * Create an observable of key events for {@code view}. + *

+ * Warning: The created observable keeps a strong reference to {@code view}. Unsubscribe + * to free this reference. + * Warning: The created observable uses {@link View#setOnKeyListener} to observe + * key events. Only one observable can be used for a view at a time. + */ + @CheckResult @NonNull + public static Observable keys(@NonNull View view) { + checkNotNull(view, "view == null"); + return keys(view, Functions.FUNC1_ALWAYS_TRUE); + } + + /** + * Create an observable of key events for {@code view}. + *

+ * Warning: The created observable keeps a strong reference to {@code view}. Unsubscribe + * to free this reference. + * Warning: The created observable uses {@link View#setOnKeyListener} to observe + * key events. Only one observable can be used for a view at a time. + * + * @param handled Function invoked each occurrence to determine the return value of the + * underlying {@link View.OnKeyListener}. + */ + @CheckResult @NonNull + public static Observable keys(@NonNull View view, + @NonNull Func1 handled) { + checkNotNull(view, "view == null"); + checkNotNull(handled, "handled == null"); + return Observable.create(new ViewKeyOnSubscribe(view, handled)); + } + /** * An action which sets the activated property of {@code view}. *

diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewKeyOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewKeyOnSubscribe.java new file mode 100644 index 00000000..a07c52d7 --- /dev/null +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewKeyOnSubscribe.java @@ -0,0 +1,47 @@ +package com.jakewharton.rxbinding.view; + +import android.view.KeyEvent; +import android.view.View; + +import rx.Observable; +import rx.Subscriber; +import rx.android.MainThreadSubscription; +import rx.functions.Func1; + +import static rx.android.MainThreadSubscription.verifyMainThread; + +final class ViewKeyOnSubscribe implements Observable.OnSubscribe { + private final View view; + private final Func1 handled; + + ViewKeyOnSubscribe(View view, Func1 handled) { + this.view = view; + this.handled = handled; + } + + @Override public void call(final Subscriber subscriber) { + verifyMainThread(); + + View.OnKeyListener keyListener = new View.OnKeyListener() { + @Override public boolean onKey(View view, int keyCode, KeyEvent keyEvent) { + if (subscriber.isUnsubscribed()) { + return false; + } + + if (!handled.call(keyEvent)) { + return false; + } else { + subscriber.onNext(keyEvent); + return true; + } + } + }; + view.setOnKeyListener(keyListener); + + subscriber.add(new MainThreadSubscription() { + @Override protected void onUnsubscribe() { + view.setOnKeyListener(null); + } + }); + } +} From 1f1b34674c69ac779c31a4435c0e5fb239d5c6be Mon Sep 17 00:00:00 2001 From: Jake Wharton Date: Sun, 9 Oct 2016 21:34:27 -0400 Subject: [PATCH 08/12] Remove explicit 'public' modifier from Kotlin code. --- .../rxbinding/project/KotlinGenTask.kt | 6 +- .../support/v7/widget/RxActionMenuView.kt | 2 +- .../support/v7/widget/RxPopupMenu.kt | 4 +- .../support/v7/widget/RxSearchView.kt | 6 +- .../rxbinding/support/v7/widget/RxToolbar.kt | 4 +- .../support/design/widget/RxAppBarLayout.kt | 2 +- .../support/design/widget/RxNavigationView.kt | 2 +- .../support/design/widget/RxSnackbar.kt | 2 +- .../design/widget/RxSwipeDismissBehavior.kt | 2 +- .../support/design/widget/RxTabLayout.kt | 6 +- .../design/widget/RxTextInputLayout.kt | 12 ++-- .../jakewharton/rxbinding/view/RxMenuItem.kt | 22 +++---- .../com/jakewharton/rxbinding/view/RxView.kt | 58 +++++++++---------- .../jakewharton/rxbinding/view/RxViewGroup.kt | 2 +- .../rxbinding/widget/RxAbsListView.kt | 2 +- .../jakewharton/rxbinding/widget/RxAdapter.kt | 2 +- .../rxbinding/widget/RxAdapterView.kt | 18 +++--- .../widget/RxAutoCompleteTextView.kt | 6 +- .../rxbinding/widget/RxCheckedTextView.kt | 2 +- .../rxbinding/widget/RxCompoundButton.kt | 6 +- .../rxbinding/widget/RxPopupMenu.kt | 4 +- .../rxbinding/widget/RxProgressBar.kt | 12 ++-- .../rxbinding/widget/RxRadioGroup.kt | 4 +- .../rxbinding/widget/RxRatingBar.kt | 8 +-- .../rxbinding/widget/RxSearchView.kt | 6 +- .../jakewharton/rxbinding/widget/RxSeekBar.kt | 8 +-- .../rxbinding/widget/RxTextSwitcher.kt | 4 +- .../rxbinding/widget/RxTextView.kt | 30 +++++----- .../jakewharton/rxbinding/widget/RxToolbar.kt | 4 +- .../v17/leanback/widget/RxSearchBar.kt | 6 +- .../v17/leanback/widget/RxSearchEditText.kt | 2 +- .../support/v7/widget/RxRecyclerView.kt | 6 +- .../v7/widget/RxRecyclerViewAdapter.kt | 2 +- .../support/v4/view/RxMenuItemCompat.kt | 4 +- .../rxbinding/support/v4/view/RxViewPager.kt | 6 +- .../support/v4/widget/RxDrawerLayout.kt | 4 +- .../support/v4/widget/RxNestedScrollView.kt | 2 +- .../support/v4/widget/RxSlidingPaneLayout.kt | 6 +- .../support/v4/widget/RxSwipeRefreshLayout.kt | 4 +- 39 files changed, 143 insertions(+), 145 deletions(-) diff --git a/buildSrc/src/main/kotlin/com/jakewharton/rxbinding/project/KotlinGenTask.kt b/buildSrc/src/main/kotlin/com/jakewharton/rxbinding/project/KotlinGenTask.kt index e2c2b267..221f9426 100644 --- a/buildSrc/src/main/kotlin/com/jakewharton/rxbinding/project/KotlinGenTask.kt +++ b/buildSrc/src/main/kotlin/com/jakewharton/rxbinding/project/KotlinGenTask.kt @@ -6,7 +6,6 @@ import com.github.javaparser.ast.PackageDeclaration import com.github.javaparser.ast.TypeParameter import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration import com.github.javaparser.ast.body.MethodDeclaration -import com.github.javaparser.ast.body.ModifierSet import com.github.javaparser.ast.type.ClassOrInterfaceType import com.github.javaparser.ast.type.PrimitiveType import com.github.javaparser.ast.type.ReferenceType @@ -187,7 +186,6 @@ open class KotlinGenTask : SourceTask() { class KMethod(val n: MethodDeclaration) { private val name = n.name private val comment = if (n.comment != null) cleanUpDoc(n.comment.toString()) else null - private val accessModifier = ModifierSet.getAccessSpecifier(n.modifiers).codeRepresenation private val extendedClass = n.parameters[0].type.toString() private val parameters = n.parameters.subList(1, n.parameters.size) private val returnType = n.type @@ -276,8 +274,8 @@ open class KotlinGenTask : SourceTask() { // doc builder.append("${comment ?: ""}\n") - // access modifier and other signature boilerplate - builder.append("$accessModifier inline fun ") + // signature boilerplate + builder.append("inline fun ") // type params builder.append(if (typeParameters != null) typeParameters + " " else "") diff --git a/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxActionMenuView.kt b/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxActionMenuView.kt index e9588d98..cd1acb5e 100644 --- a/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxActionMenuView.kt +++ b/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxActionMenuView.kt @@ -10,4 +10,4 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `view`. * Unsubscribe to free this reference. */ -public inline fun ActionMenuView.itemClicks(): Observable = RxActionMenuView.itemClicks(this) +inline fun ActionMenuView.itemClicks(): Observable = RxActionMenuView.itemClicks(this) diff --git a/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxPopupMenu.kt b/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxPopupMenu.kt index bce19284..2533fae8 100644 --- a/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxPopupMenu.kt +++ b/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxPopupMenu.kt @@ -13,7 +13,7 @@ import rx.Observable * *Warning:* The created observable uses [PopupMenu.setOnMenuItemClickListener] * to observe dismiss change. Only one observable can be used for a view at a time. */ -public inline fun PopupMenu.itemClicks(): Observable = RxPopupMenu.itemClicks(this) +inline fun PopupMenu.itemClicks(): Observable = RxPopupMenu.itemClicks(this) /** * Create an observable which emits on `view` dismiss events. The emitted value is @@ -25,4 +25,4 @@ public inline fun PopupMenu.itemClicks(): Observable = RxPopupMenu.ite * *Warning:* The created observable uses [PopupMenu.setOnDismissListener] to * observe dismiss change. Only one observable can be used for a view at a time. */ -public inline fun PopupMenu.dismisses(): Observable = RxPopupMenu.dismisses(this).map { Unit } +inline fun PopupMenu.dismisses(): Observable = RxPopupMenu.dismisses(this).map { Unit } diff --git a/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxSearchView.kt b/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxSearchView.kt index 6febecd8..3fb4a5b4 100644 --- a/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxSearchView.kt +++ b/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxSearchView.kt @@ -13,7 +13,7 @@ import rx.functions.Action1 * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun SearchView.queryTextChangeEvents(): Observable = RxSearchView.queryTextChangeEvents(this) +inline fun SearchView.queryTextChangeEvents(): Observable = RxSearchView.queryTextChangeEvents(this) /** * Create an observable of character sequences for query text changes on `view`. @@ -23,7 +23,7 @@ public inline fun SearchView.queryTextChangeEvents(): Observable = RxSearchView.queryTextChanges(this) +inline fun SearchView.queryTextChanges(): Observable = RxSearchView.queryTextChanges(this) /** * An action which sets the query property of `view` with character sequences. @@ -33,4 +33,4 @@ public inline fun SearchView.queryTextChanges(): Observable = RxSe * * @param submit weather to submit query right after updating query text */ -public inline fun SearchView.query(submit: Boolean): Action1 = RxSearchView.query(this, submit) +inline fun SearchView.query(submit: Boolean): Action1 = RxSearchView.query(this, submit) diff --git a/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxToolbar.kt b/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxToolbar.kt index 2c0de841..ac272d1c 100644 --- a/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxToolbar.kt +++ b/rxbinding-appcompat-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxToolbar.kt @@ -10,7 +10,7 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun Toolbar.itemClicks(): Observable = RxToolbar.itemClicks(this) +inline fun Toolbar.itemClicks(): Observable = RxToolbar.itemClicks(this) /** * Create an observable which emits on `view` navigation click events. The emitted value is @@ -22,4 +22,4 @@ public inline fun Toolbar.itemClicks(): Observable = RxToolbar.itemCli * *Warning:* The created observable uses [Toolbar.setNavigationOnClickListener] * to observe clicks. Only one observable can be used for a view at a time. */ -public inline fun Toolbar.navigationClicks(): Observable = RxToolbar.navigationClicks(this).map { Unit } +inline fun Toolbar.navigationClicks(): Observable = RxToolbar.navigationClicks(this).map { Unit } diff --git a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxAppBarLayout.kt b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxAppBarLayout.kt index f5fb77c6..b254d064 100644 --- a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxAppBarLayout.kt +++ b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxAppBarLayout.kt @@ -9,4 +9,4 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun AppBarLayout.offsetChanges(): Observable = RxAppBarLayout.offsetChanges(this) +inline fun AppBarLayout.offsetChanges(): Observable = RxAppBarLayout.offsetChanges(this) diff --git a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxNavigationView.kt b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxNavigationView.kt index 5da3019e..78d2547f 100644 --- a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxNavigationView.kt +++ b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxNavigationView.kt @@ -13,4 +13,4 @@ import rx.Observable * *Note:* If an item is already selected, it will be emitted immediately on subscribe. * This behavior assumes but does not enforce that the items are exclusively checkable. */ -public inline fun NavigationView.itemSelections(): Observable = RxNavigationView.itemSelections(this) +inline fun NavigationView.itemSelections(): Observable = RxNavigationView.itemSelections(this) diff --git a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxSnackbar.kt b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxSnackbar.kt index 68bb9370..c6d16eb9 100644 --- a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxSnackbar.kt +++ b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxSnackbar.kt @@ -9,4 +9,4 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun Snackbar.dismisses(): Observable = RxSnackbar.dismisses(this) +inline fun Snackbar.dismisses(): Observable = RxSnackbar.dismisses(this) diff --git a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxSwipeDismissBehavior.kt b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxSwipeDismissBehavior.kt index 7634dfba..1acff6cf 100644 --- a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxSwipeDismissBehavior.kt +++ b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxSwipeDismissBehavior.kt @@ -11,4 +11,4 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.dismisses(): Observable = RxSwipeDismissBehavior.dismisses(this) +inline fun View.dismisses(): Observable = RxSwipeDismissBehavior.dismisses(this) diff --git a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxTabLayout.kt b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxTabLayout.kt index 71468b7a..58a249b5 100644 --- a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxTabLayout.kt +++ b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxTabLayout.kt @@ -13,7 +13,7 @@ import rx.functions.Action1 * * *Note:* If a tab is already selected, it will be emitted immediately on subscribe. */ -public inline fun TabLayout.selections(): Observable = RxTabLayout.selections(this) +inline fun TabLayout.selections(): Observable = RxTabLayout.selections(this) /** * Create an observable which emits selection, reselection, and unselection events for the tabs @@ -24,7 +24,7 @@ public inline fun TabLayout.selections(): Observable = RxTabLayout.selectio * * *Note:* If a tab is already selected, an event will be emitted immediately on subscribe. */ -public inline fun TabLayout.selectionEvents(): Observable = RxTabLayout.selectionEvents(this) +inline fun TabLayout.selectionEvents(): Observable = RxTabLayout.selectionEvents(this) /** * An action which sets the selected tab of `view`. @@ -32,4 +32,4 @@ public inline fun TabLayout.selectionEvents(): Observable = RxTabLayout.select(this) +inline fun TabLayout.select(): Action1 = RxTabLayout.select(this) diff --git a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxTextInputLayout.kt b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxTextInputLayout.kt index 6dc3fcf3..78b6a38f 100644 --- a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxTextInputLayout.kt +++ b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxTextInputLayout.kt @@ -9,7 +9,7 @@ import rx.functions.Action1 * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextInputLayout.counterEnabled(): Action1 = RxTextInputLayout.counterEnabled(this) +inline fun TextInputLayout.counterEnabled(): Action1 = RxTextInputLayout.counterEnabled(this) /** * An action which sets the counterMaxLength property of `view` with an integer value. @@ -17,7 +17,7 @@ public inline fun TextInputLayout.counterEnabled(): Action1 = RxText * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextInputLayout.counterMaxLength(): Action1 = RxTextInputLayout.counterMaxLength(this) +inline fun TextInputLayout.counterMaxLength(): Action1 = RxTextInputLayout.counterMaxLength(this) /** * An action which sets the error text of `view` with a character sequence. @@ -25,7 +25,7 @@ public inline fun TextInputLayout.counterMaxLength(): Action1 = RxTextIn * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextInputLayout.error(): Action1 = RxTextInputLayout.error(this) +inline fun TextInputLayout.error(): Action1 = RxTextInputLayout.error(this) /** * An action which sets the error text of `view` with a string resource. @@ -33,7 +33,7 @@ public inline fun TextInputLayout.error(): Action1 = RxTextInpu * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextInputLayout.errorRes(): Action1 = RxTextInputLayout.errorRes(this) +inline fun TextInputLayout.errorRes(): Action1 = RxTextInputLayout.errorRes(this) /** * An action which sets the hint property of `view` with character sequences. @@ -41,7 +41,7 @@ public inline fun TextInputLayout.errorRes(): Action1 = RxTextInputLayou * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextInputLayout.hint(): Action1 = RxTextInputLayout.hint(this) +inline fun TextInputLayout.hint(): Action1 = RxTextInputLayout.hint(this) /** * An action which sets the hint property of `view` string resource IDs. @@ -49,4 +49,4 @@ public inline fun TextInputLayout.hint(): Action1 = RxTextInput * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextInputLayout.hintRes(): Action1 = RxTextInputLayout.hintRes(this) +inline fun TextInputLayout.hintRes(): Action1 = RxTextInputLayout.hintRes(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxMenuItem.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxMenuItem.kt index bfb417c1..692160ed 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxMenuItem.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxMenuItem.kt @@ -17,7 +17,7 @@ import rx.functions.Func1 * *Warning:* The created observable uses [MenuItem.setOnMenuItemClickListener] to * observe clicks. Only one observable can be used for a menu item at a time. */ -public inline fun MenuItem.clicks(): Observable = RxMenuItem.clicks(this).map { Unit } +inline fun MenuItem.clicks(): Observable = RxMenuItem.clicks(this).map { Unit } /** * Create an observable which emits on `menuItem` click events. The emitted value is @@ -32,7 +32,7 @@ public inline fun MenuItem.clicks(): Observable = RxMenuItem.clicks(this). * @param handled Function invoked with each value to determine the return value of the * underlying [MenuItem.OnMenuItemClickListener]. */ -public inline fun MenuItem.clicks(handled: Func1): Observable = RxMenuItem.clicks(this, handled).map { Unit } +inline fun MenuItem.clicks(handled: Func1): Observable = RxMenuItem.clicks(this, handled).map { Unit } /** * Create an observable of action view events for `menuItem`. @@ -43,7 +43,7 @@ public inline fun MenuItem.clicks(handled: Func1): Observa * *Warning:* The created observable uses [MenuItem.setOnActionExpandListener] to * observe action view events. Only one observable can be used for a menu item at a time. */ -public inline fun MenuItem.actionViewEvents(): Observable = RxMenuItem.actionViewEvents(this) +inline fun MenuItem.actionViewEvents(): Observable = RxMenuItem.actionViewEvents(this) /** * Create an observable of action view events for `menuItem`. @@ -57,7 +57,7 @@ public inline fun MenuItem.actionViewEvents(): Observable): Observable = RxMenuItem.actionViewEvents(this, handled) +inline fun MenuItem.actionViewEvents(handled: Func1): Observable = RxMenuItem.actionViewEvents(this, handled) /** * An action which sets the checked property of `menuItem`. @@ -65,7 +65,7 @@ public inline fun MenuItem.actionViewEvents(handled: Func1 = RxMenuItem.checked(this) +inline fun MenuItem.checked(): Action1 = RxMenuItem.checked(this) /** * An action which sets the enabled property of `menuItem`. @@ -73,7 +73,7 @@ public inline fun MenuItem.checked(): Action1 = RxMenuItem.checked(t * *Warning:* The created observable keeps a strong reference to `menuItem`. * Unsubscribe to free this reference. */ -public inline fun MenuItem.enabled(): Action1 = RxMenuItem.enabled(this) +inline fun MenuItem.enabled(): Action1 = RxMenuItem.enabled(this) /** * An action which sets the icon property of `menuItem`. @@ -81,7 +81,7 @@ public inline fun MenuItem.enabled(): Action1 = RxMenuItem.enabled(t * *Warning:* The created observable keeps a strong reference to `menuItem`. * Unsubscribe to free this reference. */ -public inline fun MenuItem.icon(): Action1 = RxMenuItem.icon(this) +inline fun MenuItem.icon(): Action1 = RxMenuItem.icon(this) /** * An action which sets the icon property of `menuItem`. @@ -89,7 +89,7 @@ public inline fun MenuItem.icon(): Action1 = RxMenuItem.icon(this) * *Warning:* The created observable keeps a strong reference to `menuItem`. * Unsubscribe to free this reference. */ -public inline fun MenuItem.iconRes(): Action1 = RxMenuItem.iconRes(this) +inline fun MenuItem.iconRes(): Action1 = RxMenuItem.iconRes(this) /** * An action which sets the title property of `menuItem`. @@ -97,7 +97,7 @@ public inline fun MenuItem.iconRes(): Action1 = RxMenuItem.iconRes(this) * *Warning:* The created observable keeps a strong reference to `menuItem`. * Unsubscribe to free this reference. */ -public inline fun MenuItem.title(): Action1 = RxMenuItem.title(this) +inline fun MenuItem.title(): Action1 = RxMenuItem.title(this) /** * An action which sets the title property of `menuItem`. @@ -105,7 +105,7 @@ public inline fun MenuItem.title(): Action1 = RxMenuItem.title( * *Warning:* The created observable keeps a strong reference to `menuItem`. * Unsubscribe to free this reference. */ -public inline fun MenuItem.titleRes(): Action1 = RxMenuItem.titleRes(this) +inline fun MenuItem.titleRes(): Action1 = RxMenuItem.titleRes(this) /** * An action which sets the visibility property of `menuItem`. @@ -113,4 +113,4 @@ public inline fun MenuItem.titleRes(): Action1 = RxMenuItem.titleRes(thi * *Warning:* The created observable keeps a strong reference to `menuItem`. * Unsubscribe to free this reference. */ -public inline fun MenuItem.visible(): Action1 = RxMenuItem.visible(this) +inline fun MenuItem.visible(): Action1 = RxMenuItem.visible(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxView.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxView.kt index 4d869d97..73f247ba 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxView.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxView.kt @@ -18,7 +18,7 @@ import rx.functions.Func1 * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.attaches(): Observable = RxView.attaches(this).map { Unit } +inline fun View.attaches(): Observable = RxView.attaches(this).map { Unit } /** * Create an observable of attach and detach events on `view`. @@ -26,7 +26,7 @@ public inline fun View.attaches(): Observable = RxView.attaches(this).map * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.attachEvents(): Observable = RxView.attachEvents(this) +inline fun View.attachEvents(): Observable = RxView.attachEvents(this) /** * Create an observable which emits on `view` detach events. The emitted value is @@ -35,7 +35,7 @@ public inline fun View.attachEvents(): Observable = RxView.atta * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.detaches(): Observable = RxView.detaches(this).map { Unit } +inline fun View.detaches(): Observable = RxView.detaches(this).map { Unit } /** * Create an observable which emits on `view` click events. The emitted value is @@ -47,7 +47,7 @@ public inline fun View.detaches(): Observable = RxView.detaches(this).map * *Warning:* The created observable uses [View.setOnClickListener] to observe * clicks. Only one observable can be used for a view at a time. */ -public inline fun View.clicks(): Observable = RxView.clicks(this).map { Unit } +inline fun View.clicks(): Observable = RxView.clicks(this).map { Unit } /** * Create an observable of [DragEvent] for drags on `view`. @@ -58,7 +58,7 @@ public inline fun View.clicks(): Observable = RxView.clicks(this).map { Un * *Warning:* The created observable uses [View.setOnDragListener] to observe * drags. Only one observable can be used for a view at a time. */ -public inline fun View.drags(): Observable = RxView.drags(this) +inline fun View.drags(): Observable = RxView.drags(this) /** * Create an observable of [DragEvent] for `view`. @@ -72,7 +72,7 @@ public inline fun View.drags(): Observable = RxView.drags(this) * @param handled Function invoked with each value to determine the return value of the * underlying [View.OnDragListener]. */ -public inline fun View.drags(handled: Func1): Observable = RxView.drags(this, handled) +inline fun View.drags(handled: Func1): Observable = RxView.drags(this, handled) /** * Create an observable for draws on `view`. @@ -83,7 +83,7 @@ public inline fun View.drags(handled: Func1): Observable< * *Warning:* The created observable uses [ViewTreeObserver.addOnDrawListener] to * observe draws. Multiple observables can be used for a view at a time. */ -public inline fun View.draws(): Observable = RxView.draws(this).map { Unit } +inline fun View.draws(): Observable = RxView.draws(this).map { Unit } /** * Create an observable of booleans representing the focus of `view`. @@ -96,7 +96,7 @@ public inline fun View.draws(): Observable = RxView.draws(this).map { Unit * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun View.focusChanges(): Observable = RxView.focusChanges(this) +inline fun View.focusChanges(): Observable = RxView.focusChanges(this) /** * Create an observable which emits on `view` globalLayout events. The emitted value is @@ -109,7 +109,7 @@ public inline fun View.focusChanges(): Observable = RxView.focusChanges * ViewTreeObserver#addOnGlobalLayoutListener} to observe global layouts. Multiple observables * can be used for a view at a time. */ -public inline fun View.globalLayouts(): Observable = RxView.globalLayouts(this).map { Unit } +inline fun View.globalLayouts(): Observable = RxView.globalLayouts(this).map { Unit } /** * Create an observable of hover events for `view`. @@ -126,7 +126,7 @@ public inline fun View.globalLayouts(): Observable = RxView.globalLayouts( * *Warning:* The created observable uses [View.setOnHoverListener] to observe * touches. Only one observable can be used for a view at a time. */ -public inline fun View.hovers(): Observable = RxView.hovers(this) +inline fun View.hovers(): Observable = RxView.hovers(this) /** * Create an observable of hover events for `view`. @@ -146,7 +146,7 @@ public inline fun View.hovers(): Observable = RxView.hovers(this) * @param handled Function invoked with each value to determine the return value of the * underlying [View.OnHoverListener]. */ -public inline fun View.hovers(handled: Func1): Observable = RxView.hovers(this, handled) +inline fun View.hovers(handled: Func1): Observable = RxView.hovers(this, handled) /** * Create an observable which emits on `view` layout changes. The emitted value is @@ -155,7 +155,7 @@ public inline fun View.hovers(handled: Func1): Observab * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.layoutChanges(): Observable = RxView.layoutChanges(this).map { Unit } +inline fun View.layoutChanges(): Observable = RxView.layoutChanges(this).map { Unit } /** * Create an observable of layout-change events for `view`. @@ -163,7 +163,7 @@ public inline fun View.layoutChanges(): Observable = RxView.layoutChanges( * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.layoutChangeEvents(): Observable = RxView.layoutChangeEvents(this) +inline fun View.layoutChangeEvents(): Observable = RxView.layoutChangeEvents(this) /** * Create an observable which emits on `view` long-click events. The emitted value is @@ -175,7 +175,7 @@ public inline fun View.layoutChangeEvents(): Observable = * *Warning:* The created observable uses [View.setOnLongClickListener] to observe * long clicks. Only one observable can be used for a view at a time. */ -public inline fun View.longClicks(): Observable = RxView.longClicks(this).map { Unit } +inline fun View.longClicks(): Observable = RxView.longClicks(this).map { Unit } /** * Create an observable which emits on `view` long-click events. The emitted value is @@ -190,7 +190,7 @@ public inline fun View.longClicks(): Observable = RxView.longClicks(this). * @param handled Function invoked each occurrence to determine the return value of the * underlying [View.OnLongClickListener]. */ -public inline fun View.longClicks(handled: Func0): Observable = RxView.longClicks(this, handled).map { Unit } +inline fun View.longClicks(handled: Func0): Observable = RxView.longClicks(this, handled).map { Unit } /** * Create an observable for pre-draws on `view`. @@ -201,7 +201,7 @@ public inline fun View.longClicks(handled: Func0): Observable = R * *Warning:* The created observable uses [ViewTreeObserver.addOnPreDrawListener] to * observe pre-draws. Multiple observables can be used for a view at a time. */ -public inline fun View.preDraws(proceedDrawingPass: Func0): Observable = RxView.preDraws(this, proceedDrawingPass).map { Unit } +inline fun View.preDraws(proceedDrawingPass: Func0): Observable = RxView.preDraws(this, proceedDrawingPass).map { Unit } /** * Create an observable of scroll-change events for `view`. @@ -209,7 +209,7 @@ public inline fun View.preDraws(proceedDrawingPass: Func0): Observable< * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.scrollChangeEvents(): Observable = RxView.scrollChangeEvents(this) +inline fun View.scrollChangeEvents(): Observable = RxView.scrollChangeEvents(this) /** * Create an observable of integers representing a new system UI visibility for `view`. @@ -221,7 +221,7 @@ public inline fun View.scrollChangeEvents(): Observable = * [View.setOnSystemUiVisibilityChangeListener] to observe system UI visibility changes. * Only one observable can be used for a view at a time. */ -public inline fun View.systemUiVisibilityChanges(): Observable = RxView.systemUiVisibilityChanges(this) +inline fun View.systemUiVisibilityChanges(): Observable = RxView.systemUiVisibilityChanges(this) /** * Create an observable of touch events for `view`. @@ -238,7 +238,7 @@ public inline fun View.systemUiVisibilityChanges(): Observable = RxView.sys * *Warning:* The created observable uses [View.setOnTouchListener] to observe * touches. Only one observable can be used for a view at a time. */ -public inline fun View.touches(): Observable = RxView.touches(this) +inline fun View.touches(): Observable = RxView.touches(this) /** * Create an observable of touch events for `view`. @@ -258,7 +258,7 @@ public inline fun View.touches(): Observable = RxView.touches(this) * @param handled Function invoked with each value to determine the return value of the * underlying [View.OnTouchListener]. */ -public inline fun View.touches(handled: Func1): Observable = RxView.touches(this, handled) +inline fun View.touches(handled: Func1): Observable = RxView.touches(this, handled) /** * Create an observable of key events for `view`. @@ -268,7 +268,7 @@ public inline fun View.touches(handled: Func1): Observa * *Warning:* The created observable uses [View.setOnKeyListener] to observe * key events. Only one observable can be used for a view at a time. */ -public inline fun View.keys(): Observable = RxView.keys(this) +inline fun View.keys(): Observable = RxView.keys(this) /** * Create an observable of key events for `view`. @@ -281,7 +281,7 @@ public inline fun View.keys(): Observable = RxView.keys(this) * @param handled Function invoked each occurrence to determine the return value of the * underlying [View.OnKeyListener]. */ -public inline fun View.keys(handled: Func1): Observable = RxView.keys(this, handled) +inline fun View.keys(handled: Func1): Observable = RxView.keys(this, handled) /** * An action which sets the activated property of `view`. @@ -289,7 +289,7 @@ public inline fun View.keys(handled: Func1): Observable = RxView.activated(this) +inline fun View.activated(): Action1 = RxView.activated(this) /** * An action which sets the clickable property of `view`. @@ -297,7 +297,7 @@ public inline fun View.activated(): Action1 = RxView.activated(this) * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.clickable(): Action1 = RxView.clickable(this) +inline fun View.clickable(): Action1 = RxView.clickable(this) /** * An action which sets the enabled property of `view`. @@ -305,7 +305,7 @@ public inline fun View.clickable(): Action1 = RxView.clickable(this) * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.enabled(): Action1 = RxView.enabled(this) +inline fun View.enabled(): Action1 = RxView.enabled(this) /** * An action which sets the pressed property of `view`. @@ -313,7 +313,7 @@ public inline fun View.enabled(): Action1 = RxView.enabled(this) * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.pressed(): Action1 = RxView.pressed(this) +inline fun View.pressed(): Action1 = RxView.pressed(this) /** * An action which sets the selected property of `view`. @@ -321,7 +321,7 @@ public inline fun View.pressed(): Action1 = RxView.pressed(this) * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.selected(): Action1 = RxView.selected(this) +inline fun View.selected(): Action1 = RxView.selected(this) /** * An action which sets the visibility property of `view`. `false` values use @@ -330,7 +330,7 @@ public inline fun View.selected(): Action1 = RxView.selected(this) * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun View.visibility(): Action1 = RxView.visibility(this) +inline fun View.visibility(): Action1 = RxView.visibility(this) /** * An action which sets the visibility property of `view`. @@ -341,4 +341,4 @@ public inline fun View.visibility(): Action1 = RxView.visibility(thi * @param visibilityWhenFalse Visibility to set on a `false` value (`View.INVISIBLE` * or `View.GONE`). */ -public inline fun View.visibility(visibilityWhenFalse: Int): Action1 = RxView.visibility(this, visibilityWhenFalse) +inline fun View.visibility(visibilityWhenFalse: Int): Action1 = RxView.visibility(this, visibilityWhenFalse) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxViewGroup.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxViewGroup.kt index 9479a663..28349074 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxViewGroup.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/view/RxViewGroup.kt @@ -9,4 +9,4 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `viewGroup`. * Unsubscribe to free this reference. */ -public inline fun ViewGroup.changeEvents(): Observable = RxViewGroup.changeEvents(this) +inline fun ViewGroup.changeEvents(): Observable = RxViewGroup.changeEvents(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAbsListView.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAbsListView.kt index b848b9a7..1d6fb594 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAbsListView.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAbsListView.kt @@ -13,4 +13,4 @@ import rx.Observable * {@link AbsListView#setOnScrollListener(AbsListView.OnScrollListener)} to observe scroll * changes. Only one observable can be used for a view at a time. */ -public inline fun AbsListView.scrollEvents(): Observable = RxAbsListView.scrollEvents(this) +inline fun AbsListView.scrollEvents(): Observable = RxAbsListView.scrollEvents(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAdapter.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAdapter.kt index 524b8e20..8d5f0e6d 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAdapter.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAdapter.kt @@ -8,4 +8,4 @@ import rx.Observable * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun T.dataChanges(): Observable = RxAdapter.dataChanges(this) +inline fun T.dataChanges(): Observable = RxAdapter.dataChanges(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAdapterView.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAdapterView.kt index 95322c51..115a07dc 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAdapterView.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAdapterView.kt @@ -17,7 +17,7 @@ import rx.functions.Func1 * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun AdapterView.itemSelections(): Observable = RxAdapterView.itemSelections(this) +inline fun AdapterView.itemSelections(): Observable = RxAdapterView.itemSelections(this) /** * Create an observable of selection events for `view`. @@ -27,7 +27,7 @@ public inline fun AdapterView.itemSelections(): Observable * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun AdapterView.selectionEvents(): Observable = RxAdapterView.selectionEvents(this) +inline fun AdapterView.selectionEvents(): Observable = RxAdapterView.selectionEvents(this) /** * Create an observable of the position of item clicks for `view`. @@ -35,7 +35,7 @@ public inline fun AdapterView.selectionEvents(): Observable AdapterView.itemClicks(): Observable = RxAdapterView.itemClicks(this) +inline fun AdapterView.itemClicks(): Observable = RxAdapterView.itemClicks(this) /** * Create an observable of the item click events for `view`. @@ -43,7 +43,7 @@ public inline fun AdapterView.itemClicks(): Observable = R * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun AdapterView.itemClickEvents(): Observable = RxAdapterView.itemClickEvents(this) +inline fun AdapterView.itemClickEvents(): Observable = RxAdapterView.itemClickEvents(this) /** * Create an observable of the position of item long-clicks for `view`. @@ -51,7 +51,7 @@ public inline fun AdapterView.itemClickEvents(): Observable AdapterView.itemLongClicks(): Observable = RxAdapterView.itemLongClicks(this) +inline fun AdapterView.itemLongClicks(): Observable = RxAdapterView.itemLongClicks(this) /** * Create an observable of the position of item long-clicks for `view`. @@ -62,7 +62,7 @@ public inline fun AdapterView.itemLongClicks(): Observable * @param handled Function invoked each occurrence to determine the return value of the * underlying [AdapterView.OnItemLongClickListener]. */ -public inline fun AdapterView.itemLongClicks(handled: Func0): Observable = RxAdapterView.itemLongClicks(this, handled) +inline fun AdapterView.itemLongClicks(handled: Func0): Observable = RxAdapterView.itemLongClicks(this, handled) /** * Create an observable of the item long-click events for `view`. @@ -70,7 +70,7 @@ public inline fun AdapterView.itemLongClicks(handled: Func0 AdapterView.itemLongClickEvents(): Observable = RxAdapterView.itemLongClickEvents(this) +inline fun AdapterView.itemLongClickEvents(): Observable = RxAdapterView.itemLongClickEvents(this) /** * Create an observable of the item long-click events for `view`. @@ -81,7 +81,7 @@ public inline fun AdapterView.itemLongClickEvents(): Observable * @param handled Function invoked with each value to determine the return value of the * underlying [AdapterView.OnItemLongClickListener]. */ -public inline fun AdapterView.itemLongClickEvents(handled: Func1): Observable = RxAdapterView.itemLongClickEvents(this, handled) +inline fun AdapterView.itemLongClickEvents(handled: Func1): Observable = RxAdapterView.itemLongClickEvents(this, handled) /** * An action which sets the selected position of `view`. @@ -89,4 +89,4 @@ public inline fun AdapterView.itemLongClickEvents(handled: Func * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun AdapterView.selection(): Action1 = RxAdapterView.selection(this) +inline fun AdapterView.selection(): Action1 = RxAdapterView.selection(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAutoCompleteTextView.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAutoCompleteTextView.kt index 11221d8d..f1732de7 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAutoCompleteTextView.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxAutoCompleteTextView.kt @@ -10,7 +10,7 @@ import rx.functions.Action1 * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun AutoCompleteTextView.itemClickEvents(): Observable = RxAutoCompleteTextView.itemClickEvents(this) +inline fun AutoCompleteTextView.itemClickEvents(): Observable = RxAutoCompleteTextView.itemClickEvents(this) /** * An action that sets the optional hint text that is displayed at the bottom of the the matching @@ -20,7 +20,7 @@ public inline fun AutoCompleteTextView.itemClickEvents(): Observable = RxAutoCompleteTextView.completionHint(this) +inline fun AutoCompleteTextView.completionHint(): Action1 = RxAutoCompleteTextView.completionHint(this) /** * An action that specifies the minimum number of characters the user has to type in the edit box @@ -30,4 +30,4 @@ public inline fun AutoCompleteTextView.completionHint(): Action1 = RxAutoCompleteTextView.threshold(this) +inline fun AutoCompleteTextView.threshold(): Action1 = RxAutoCompleteTextView.threshold(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxCheckedTextView.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxCheckedTextView.kt index a6ff2fd0..cd62dabe 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxCheckedTextView.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxCheckedTextView.kt @@ -9,4 +9,4 @@ import rx.functions.Action1 * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun CheckedTextView.check(): Action1 = RxCheckedTextView.check(this) +inline fun CheckedTextView.check(): Action1 = RxCheckedTextView.check(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxCompoundButton.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxCompoundButton.kt index 4dc26758..88eb098b 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxCompoundButton.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxCompoundButton.kt @@ -15,7 +15,7 @@ import rx.functions.Action1 * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun CompoundButton.checkedChanges(): Observable = RxCompoundButton.checkedChanges(this) +inline fun CompoundButton.checkedChanges(): Observable = RxCompoundButton.checkedChanges(this) /** * An action which sets the checked property of `view`. @@ -23,7 +23,7 @@ public inline fun CompoundButton.checkedChanges(): Observable = RxCompo * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun CompoundButton.checked(): Action1 = RxCompoundButton.checked(this) +inline fun CompoundButton.checked(): Action1 = RxCompoundButton.checked(this) /** * An action which sets the toggles property of `view` with each value. @@ -31,4 +31,4 @@ public inline fun CompoundButton.checked(): Action1 = RxCompoundButt * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun CompoundButton.toggle(): Action1 = RxCompoundButton.toggle(this) +inline fun CompoundButton.toggle(): Action1 = RxCompoundButton.toggle(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxPopupMenu.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxPopupMenu.kt index a6b46066..a15119b8 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxPopupMenu.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxPopupMenu.kt @@ -13,7 +13,7 @@ import rx.Observable * *Warning:* The created observable uses [PopupMenu.setOnMenuItemClickListener] * to observe dismiss change. Only one observable can be used for a view at a time. */ -public inline fun PopupMenu.itemClicks(): Observable = RxPopupMenu.itemClicks(this) +inline fun PopupMenu.itemClicks(): Observable = RxPopupMenu.itemClicks(this) /** * Create an observable which emits on `view` dismiss events. The emitted value is @@ -25,4 +25,4 @@ public inline fun PopupMenu.itemClicks(): Observable = RxPopupMenu.ite * *Warning:* The created observable uses [PopupMenu.setOnDismissListener] to * observe dismiss change. Only one observable can be used for a view at a time. */ -public inline fun PopupMenu.dismisses(): Observable = RxPopupMenu.dismisses(this).map { Unit } +inline fun PopupMenu.dismisses(): Observable = RxPopupMenu.dismisses(this).map { Unit } diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxProgressBar.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxProgressBar.kt index 196bde45..d507195e 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxProgressBar.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxProgressBar.kt @@ -9,7 +9,7 @@ import rx.functions.Action1 * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun ProgressBar.incrementProgressBy(): Action1 = RxProgressBar.incrementProgressBy(this) +inline fun ProgressBar.incrementProgressBy(): Action1 = RxProgressBar.incrementProgressBy(this) /** * An action which increments the secondary progress value of `view`. @@ -17,7 +17,7 @@ public inline fun ProgressBar.incrementProgressBy(): Action1 = RxProgres * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun ProgressBar.incrementSecondaryProgressBy(): Action1 = RxProgressBar.incrementSecondaryProgressBy(this) +inline fun ProgressBar.incrementSecondaryProgressBy(): Action1 = RxProgressBar.incrementSecondaryProgressBy(this) /** * An action which sets whether `view` is indeterminate. @@ -25,7 +25,7 @@ public inline fun ProgressBar.incrementSecondaryProgressBy(): Action1 = * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun ProgressBar.indeterminate(): Action1 = RxProgressBar.indeterminate(this) +inline fun ProgressBar.indeterminate(): Action1 = RxProgressBar.indeterminate(this) /** * An action which sets the max value of `view`. @@ -33,7 +33,7 @@ public inline fun ProgressBar.indeterminate(): Action1 = RxProgressB * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun ProgressBar.max(): Action1 = RxProgressBar.max(this) +inline fun ProgressBar.max(): Action1 = RxProgressBar.max(this) /** * An action which sets the progress value of `view`. @@ -41,7 +41,7 @@ public inline fun ProgressBar.max(): Action1 = RxProgressBar.max(this) * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun ProgressBar.progress(): Action1 = RxProgressBar.progress(this) +inline fun ProgressBar.progress(): Action1 = RxProgressBar.progress(this) /** * An action which sets the secondary progress value of `view`. @@ -49,4 +49,4 @@ public inline fun ProgressBar.progress(): Action1 = RxProgressBar.progre * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun ProgressBar.secondaryProgress(): Action1 = RxProgressBar.secondaryProgress(this) +inline fun ProgressBar.secondaryProgress(): Action1 = RxProgressBar.secondaryProgress(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxRadioGroup.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxRadioGroup.kt index e58355f5..9fe54cda 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxRadioGroup.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxRadioGroup.kt @@ -12,7 +12,7 @@ import rx.functions.Action1 * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun RadioGroup.checkedChanges(): Observable = RxRadioGroup.checkedChanges(this) +inline fun RadioGroup.checkedChanges(): Observable = RxRadioGroup.checkedChanges(this) /** * An action which sets the checked child of `view` with ID. Passing {@code -1} will clear @@ -21,4 +21,4 @@ public inline fun RadioGroup.checkedChanges(): Observable = RxRadioGroup.ch * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun RadioGroup.checked(): Action1 = RxRadioGroup.checked(this) +inline fun RadioGroup.checked(): Action1 = RxRadioGroup.checked(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxRatingBar.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxRatingBar.kt index 2997109f..56ce9242 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxRatingBar.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxRatingBar.kt @@ -12,7 +12,7 @@ import rx.functions.Action1 * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun RatingBar.ratingChanges(): Observable = RxRatingBar.ratingChanges(this) +inline fun RatingBar.ratingChanges(): Observable = RxRatingBar.ratingChanges(this) /** * Create an observable of the rating change events on `view`. @@ -22,7 +22,7 @@ public inline fun RatingBar.ratingChanges(): Observable = RxRatingBar.rat * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun RatingBar.ratingChangeEvents(): Observable = RxRatingBar.ratingChangeEvents(this) +inline fun RatingBar.ratingChangeEvents(): Observable = RxRatingBar.ratingChangeEvents(this) /** * An action which sets the rating of `view`. @@ -30,7 +30,7 @@ public inline fun RatingBar.ratingChangeEvents(): Observable = RxRatingBar.rating(this) +inline fun RatingBar.rating(): Action1 = RxRatingBar.rating(this) /** * An action which sets whether `view` is an indicator (thus non-changeable by the user). @@ -38,4 +38,4 @@ public inline fun RatingBar.rating(): Action1 = RxRatingBar.rating(thi * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun RatingBar.isIndicator(): Action1 = RxRatingBar.isIndicator(this) +inline fun RatingBar.isIndicator(): Action1 = RxRatingBar.isIndicator(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxSearchView.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxSearchView.kt index 0f5f6a5f..82af2509 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxSearchView.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxSearchView.kt @@ -13,7 +13,7 @@ import rx.functions.Action1 * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun SearchView.queryTextChangeEvents(): Observable = RxSearchView.queryTextChangeEvents(this) +inline fun SearchView.queryTextChangeEvents(): Observable = RxSearchView.queryTextChangeEvents(this) /** * Create an observable of character sequences for query text changes on `view`. @@ -23,7 +23,7 @@ public inline fun SearchView.queryTextChangeEvents(): Observable = RxSearchView.queryTextChanges(this) +inline fun SearchView.queryTextChanges(): Observable = RxSearchView.queryTextChanges(this) /** * An action which sets the query property of `view` with character sequences. @@ -33,4 +33,4 @@ public inline fun SearchView.queryTextChanges(): Observable = RxSe * * @param submit weather to submit query right after updating query text */ -public inline fun SearchView.query(submit: Boolean): Action1 = RxSearchView.query(this, submit) +inline fun SearchView.query(submit: Boolean): Action1 = RxSearchView.query(this, submit) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxSeekBar.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxSeekBar.kt index 0f55fc37..e674028f 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxSeekBar.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxSeekBar.kt @@ -11,7 +11,7 @@ import rx.Observable * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun SeekBar.changes(): Observable = RxSeekBar.changes(this) +inline fun SeekBar.changes(): Observable = RxSeekBar.changes(this) /** * Create an observable of progress value changes on `view` that were made only from the @@ -22,7 +22,7 @@ public inline fun SeekBar.changes(): Observable = RxSeekBar.changes(this) * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun SeekBar.userChanges(): Observable = RxSeekBar.userChanges(this) +inline fun SeekBar.userChanges(): Observable = RxSeekBar.userChanges(this) /** * Create an observable of progress value changes on `view` that were made only from the @@ -33,7 +33,7 @@ public inline fun SeekBar.userChanges(): Observable = RxSeekBar.userChanges * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun SeekBar.systemChanges(): Observable = RxSeekBar.systemChanges(this) +inline fun SeekBar.systemChanges(): Observable = RxSeekBar.systemChanges(this) /** * Create an observable of progress change events for `view`. @@ -43,4 +43,4 @@ public inline fun SeekBar.systemChanges(): Observable = RxSeekBar.systemCha * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun SeekBar.changeEvents(): Observable = RxSeekBar.changeEvents(this) +inline fun SeekBar.changeEvents(): Observable = RxSeekBar.changeEvents(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxTextSwitcher.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxTextSwitcher.kt index ff6ed303..a516ab1c 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxTextSwitcher.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxTextSwitcher.kt @@ -10,7 +10,7 @@ import rx.functions.Action1 * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextSwitcher.text(): Action1 = RxTextSwitcher.text(this) +inline fun TextSwitcher.text(): Action1 = RxTextSwitcher.text(this) /** * An action which sets the current text property of `view`. @@ -18,4 +18,4 @@ public inline fun TextSwitcher.text(): Action1 = RxTextSwitcher * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextSwitcher.currentText(): Action1 = RxTextSwitcher.currentText(this) +inline fun TextSwitcher.currentText(): Action1 = RxTextSwitcher.currentText(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxTextView.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxTextView.kt index b6d20022..3e7c51c6 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxTextView.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxTextView.kt @@ -15,7 +15,7 @@ import rx.functions.Func1 * *Warning:* The created observable uses [TextView.OnEditorActionListener] to * observe actions. Only one observable can be used for a view at a time. */ -public inline fun TextView.editorActions(): Observable = RxTextView.editorActions(this) +inline fun TextView.editorActions(): Observable = RxTextView.editorActions(this) /** * Create an observable of editor actions on `view`. @@ -29,7 +29,7 @@ public inline fun TextView.editorActions(): Observable = RxTextView.editorA * @param handled Function invoked each occurrence to determine the return value of the * underlying [TextView.OnEditorActionListener]. */ -public inline fun TextView.editorActions(handled: Func1): Observable = RxTextView.editorActions(this, handled) +inline fun TextView.editorActions(handled: Func1): Observable = RxTextView.editorActions(this, handled) /** * Create an observable of editor action events on `view`. @@ -40,7 +40,7 @@ public inline fun TextView.editorActions(handled: Func1): Obser * *Warning:* The created observable uses [TextView.OnEditorActionListener] to * observe actions. Only one observable can be used for a view at a time. */ -public inline fun TextView.editorActionEvents(): Observable = RxTextView.editorActionEvents(this) +inline fun TextView.editorActionEvents(): Observable = RxTextView.editorActionEvents(this) /** * Create an observable of editor action events on `view`. @@ -54,7 +54,7 @@ public inline fun TextView.editorActionEvents(): Observable): Observable = RxTextView.editorActionEvents(this, handled) +inline fun TextView.editorActionEvents(handled: Func1): Observable = RxTextView.editorActionEvents(this, handled) /** * Create an observable of character sequences for text changes on `view`. @@ -70,7 +70,7 @@ public inline fun TextView.editorActionEvents(handled: Func1 = RxTextView.textChanges(this) +inline fun TextView.textChanges(): Observable = RxTextView.textChanges(this) /** * Create an observable of text change events for `view`. @@ -86,7 +86,7 @@ public inline fun TextView.textChanges(): Observable = RxTextView. * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun TextView.textChangeEvents(): Observable = RxTextView.textChangeEvents(this) +inline fun TextView.textChangeEvents(): Observable = RxTextView.textChangeEvents(this) /** * Create an observable of before text change events for `view`. @@ -96,7 +96,7 @@ public inline fun TextView.textChangeEvents(): Observable = RxTextView.beforeTextChangeEvents(this) +inline fun TextView.beforeTextChangeEvents(): Observable = RxTextView.beforeTextChangeEvents(this) /** * Create an observable of after text change events for `view`. @@ -106,7 +106,7 @@ public inline fun TextView.beforeTextChangeEvents(): Observable = RxTextView.afterTextChangeEvents(this) +inline fun TextView.afterTextChangeEvents(): Observable = RxTextView.afterTextChangeEvents(this) /** * An action which sets the text property of `view` with character sequences. @@ -114,7 +114,7 @@ public inline fun TextView.afterTextChangeEvents(): Observable = RxTextView.text(this) +inline fun TextView.text(): Action1 = RxTextView.text(this) /** * An action which sets the text property of `view` string resource IDs. @@ -122,7 +122,7 @@ public inline fun TextView.text(): Action1 = RxTextView.text(th * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextView.textRes(): Action1 = RxTextView.textRes(this) +inline fun TextView.textRes(): Action1 = RxTextView.textRes(this) /** * An action which sets the error property of `view` with character sequences. @@ -130,7 +130,7 @@ public inline fun TextView.textRes(): Action1 = RxTextView.textRes(this) * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextView.error(): Action1 = RxTextView.error(this) +inline fun TextView.error(): Action1 = RxTextView.error(this) /** * An action which sets the error property of `view` string resource IDs. @@ -138,7 +138,7 @@ public inline fun TextView.error(): Action1 = RxTextView.error( * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextView.errorRes(): Action1 = RxTextView.errorRes(this) +inline fun TextView.errorRes(): Action1 = RxTextView.errorRes(this) /** * An action which sets the hint property of `view` with character sequences. @@ -146,7 +146,7 @@ public inline fun TextView.errorRes(): Action1 = RxTextView.errorRes(thi * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextView.hint(): Action1 = RxTextView.hint(this) +inline fun TextView.hint(): Action1 = RxTextView.hint(this) /** * An action which sets the hint property of `view` string resource IDs. @@ -154,7 +154,7 @@ public inline fun TextView.hint(): Action1 = RxTextView.hint(th * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextView.hintRes(): Action1 = RxTextView.hintRes(this) +inline fun TextView.hintRes(): Action1 = RxTextView.hintRes(this) /** * An action which sets the color property of `view` with color integer. @@ -162,4 +162,4 @@ public inline fun TextView.hintRes(): Action1 = RxTextView.hintRes(this) * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun TextView.color(): Action1 = RxTextView.color(this) +inline fun TextView.color(): Action1 = RxTextView.color(this) diff --git a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxToolbar.kt b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxToolbar.kt index 15ec5b7c..088300eb 100644 --- a/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxToolbar.kt +++ b/rxbinding-kotlin/src/main/kotlin/com/jakewharton/rxbinding/widget/RxToolbar.kt @@ -10,7 +10,7 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun Toolbar.itemClicks(): Observable = RxToolbar.itemClicks(this) +inline fun Toolbar.itemClicks(): Observable = RxToolbar.itemClicks(this) /** * Create an observable which emits on `view` navigation click events. The emitted value is @@ -22,4 +22,4 @@ public inline fun Toolbar.itemClicks(): Observable = RxToolbar.itemCli * *Warning:* The created observable uses [Toolbar.setNavigationOnClickListener] * to observe clicks. Only one observable can be used for a view at a time. */ -public inline fun Toolbar.navigationClicks(): Observable = RxToolbar.navigationClicks(this).map { Unit } +inline fun Toolbar.navigationClicks(): Observable = RxToolbar.navigationClicks(this).map { Unit } diff --git a/rxbinding-leanback-v17-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v17/leanback/widget/RxSearchBar.kt b/rxbinding-leanback-v17-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v17/leanback/widget/RxSearchBar.kt index c6e69e94..db662a9e 100644 --- a/rxbinding-leanback-v17-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v17/leanback/widget/RxSearchBar.kt +++ b/rxbinding-leanback-v17-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v17/leanback/widget/RxSearchBar.kt @@ -12,7 +12,7 @@ import rx.functions.Action1 * to free this reference. * */ -public inline fun SearchBar.searchQueryChangeEvents(): Observable = RxSearchBar.searchQueryChangeEvents(this) +inline fun SearchBar.searchQueryChangeEvents(): Observable = RxSearchBar.searchQueryChangeEvents(this) /** * Create an observable of String values for search query changes on `view`. @@ -21,7 +21,7 @@ public inline fun SearchBar.searchQueryChangeEvents(): Observable = RxSearchBar.searchQueryChanges(this) +inline fun SearchBar.searchQueryChanges(): Observable = RxSearchBar.searchQueryChanges(this) /** * An action which sets the searchQuery property of `view` with String values. @@ -29,4 +29,4 @@ public inline fun SearchBar.searchQueryChanges(): Observable = RxSearchB * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun SearchBar.searchQuery(): Action1 = RxSearchBar.searchQuery(this) +inline fun SearchBar.searchQuery(): Action1 = RxSearchBar.searchQuery(this) diff --git a/rxbinding-leanback-v17-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v17/leanback/widget/RxSearchEditText.kt b/rxbinding-leanback-v17-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v17/leanback/widget/RxSearchEditText.kt index 50b13f53..d52566d3 100644 --- a/rxbinding-leanback-v17-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v17/leanback/widget/RxSearchEditText.kt +++ b/rxbinding-leanback-v17-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v17/leanback/widget/RxSearchEditText.kt @@ -9,4 +9,4 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun SearchEditText.keyboardDismisses(): Observable = RxSearchEditText.keyboardDismisses(this).map { Unit } +inline fun SearchEditText.keyboardDismisses(): Observable = RxSearchEditText.keyboardDismisses(this).map { Unit } diff --git a/rxbinding-recyclerview-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxRecyclerView.kt b/rxbinding-recyclerview-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxRecyclerView.kt index 73e7fbf8..4e68dfe4 100644 --- a/rxbinding-recyclerview-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxRecyclerView.kt +++ b/rxbinding-recyclerview-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxRecyclerView.kt @@ -9,7 +9,7 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `recyclerView`. * Unsubscribe to free this reference. */ -public inline fun RecyclerView.childAttachStateChangeEvents(): Observable = RxRecyclerView.childAttachStateChangeEvents(this) +inline fun RecyclerView.childAttachStateChangeEvents(): Observable = RxRecyclerView.childAttachStateChangeEvents(this) /** * Create an observable of scroll events on `recyclerView`. @@ -17,7 +17,7 @@ public inline fun RecyclerView.childAttachStateChangeEvents(): Observable = RxRecyclerView.scrollEvents(this) +inline fun RecyclerView.scrollEvents(): Observable = RxRecyclerView.scrollEvents(this) /** * Create an observable of scroll state changes on `recyclerView`. @@ -25,4 +25,4 @@ public inline fun RecyclerView.scrollEvents(): Observable = RxRecyclerView.scrollStateChanges(this) +inline fun RecyclerView.scrollStateChanges(): Observable = RxRecyclerView.scrollStateChanges(this) diff --git a/rxbinding-recyclerview-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxRecyclerViewAdapter.kt b/rxbinding-recyclerview-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxRecyclerViewAdapter.kt index 05ead362..b517e23c 100644 --- a/rxbinding-recyclerview-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxRecyclerViewAdapter.kt +++ b/rxbinding-recyclerview-v7-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v7/widget/RxRecyclerViewAdapter.kt @@ -9,4 +9,4 @@ import rx.Observable * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun > T.dataChanges(): Observable = RxRecyclerViewAdapter.dataChanges(this) +inline fun > T.dataChanges(): Observable = RxRecyclerViewAdapter.dataChanges(this) diff --git a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxMenuItemCompat.kt b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxMenuItemCompat.kt index 5350cf80..7ba3279e 100644 --- a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxMenuItemCompat.kt +++ b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxMenuItemCompat.kt @@ -15,7 +15,7 @@ import rx.functions.Func1 * *Warning:* The created observable uses [MenuItem.setOnActionExpandListener] to * observe action view events. Only one observable can be used for a menu item at a time. */ -public inline fun MenuItem.actionViewEvents(): Observable = RxMenuItemCompat.actionViewEvents(this) +inline fun MenuItem.actionViewEvents(): Observable = RxMenuItemCompat.actionViewEvents(this) /** * Create an observable of action view events for `menuItem`. @@ -29,4 +29,4 @@ public inline fun MenuItem.actionViewEvents(): Observable): Observable = RxMenuItemCompat.actionViewEvents(this, handled) +inline fun MenuItem.actionViewEvents(handled: Func1): Observable = RxMenuItemCompat.actionViewEvents(this, handled) diff --git a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt index dcd1d1d9..0884ec92 100644 --- a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt +++ b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/view/RxViewPager.kt @@ -11,7 +11,7 @@ import rx.functions.Action1 * to free this reference. * */ -public inline fun ViewPager.pageScrollStateChanges(): Observable = RxViewPager.pageScrollStateChanges(this) +inline fun ViewPager.pageScrollStateChanges(): Observable = RxViewPager.pageScrollStateChanges(this) /** * Create an observable of page selected events on `view`. @@ -21,7 +21,7 @@ public inline fun ViewPager.pageScrollStateChanges(): Observable = RxViewPa * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun ViewPager.pageSelections(): Observable = RxViewPager.pageSelections(this) +inline fun ViewPager.pageSelections(): Observable = RxViewPager.pageSelections(this) /** * An action which sets the current item of `view`. @@ -29,4 +29,4 @@ public inline fun ViewPager.pageSelections(): Observable = RxViewPager.page * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun ViewPager.currentItem(): Action1 = RxViewPager.currentItem(this) +inline fun ViewPager.currentItem(): Action1 = RxViewPager.currentItem(this) diff --git a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxDrawerLayout.kt b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxDrawerLayout.kt index 63f540fa..3342f0aa 100644 --- a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxDrawerLayout.kt +++ b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxDrawerLayout.kt @@ -12,7 +12,7 @@ import rx.functions.Action1 * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun DrawerLayout.drawerOpen(gravity: Int): Observable = RxDrawerLayout.drawerOpen(this, gravity) +inline fun DrawerLayout.drawerOpen(gravity: Int): Observable = RxDrawerLayout.drawerOpen(this, gravity) /** * An action which sets whether the drawer with `gravity` of `view` is open. @@ -20,4 +20,4 @@ public inline fun DrawerLayout.drawerOpen(gravity: Int): Observable = R * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun DrawerLayout.open(gravity: Int): Action1 = RxDrawerLayout.open(this, gravity) +inline fun DrawerLayout.open(gravity: Int): Action1 = RxDrawerLayout.open(this, gravity) diff --git a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxNestedScrollView.kt b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxNestedScrollView.kt index d734df4d..2491f893 100644 --- a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxNestedScrollView.kt +++ b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxNestedScrollView.kt @@ -10,4 +10,4 @@ import rx.Observable * *Warning:* The created observable keeps a strong reference to `view`. * Unsubscribe to free this reference. */ -public inline fun NestedScrollView.scrollChangeEvents(): Observable = RxNestedScrollView.scrollChangeEvents(this) +inline fun NestedScrollView.scrollChangeEvents(): Observable = RxNestedScrollView.scrollChangeEvents(this) diff --git a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.kt b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.kt index 1a585edf..96468e5b 100644 --- a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.kt +++ b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSlidingPaneLayout.kt @@ -15,7 +15,7 @@ import rx.functions.Action1 * * *Note:* A value will be emitted immediately on subscribe. */ -public inline fun SlidingPaneLayout.panelOpens(): Observable = RxSlidingPaneLayout.panelOpens(this) +inline fun SlidingPaneLayout.panelOpens(): Observable = RxSlidingPaneLayout.panelOpens(this) /** * Create an observable of the slide offset of the pane of `view` @@ -26,7 +26,7 @@ public inline fun SlidingPaneLayout.panelOpens(): Observable = RxSlidin * *Warning:* The created observable uses [SlidingPaneLayout.setPanelSlideListener] * to observe dismiss change. Only one observable can be used for a view at a time. */ -public inline fun SlidingPaneLayout.panelSlides(): Observable = RxSlidingPaneLayout.panelSlides(this) +inline fun SlidingPaneLayout.panelSlides(): Observable = RxSlidingPaneLayout.panelSlides(this) /** * An action which sets whether the pane of `view` is open. @@ -34,4 +34,4 @@ public inline fun SlidingPaneLayout.panelSlides(): Observable = RxSliding * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun SlidingPaneLayout.open(): Action1 = RxSlidingPaneLayout.open(this) +inline fun SlidingPaneLayout.open(): Action1 = RxSlidingPaneLayout.open(this) diff --git a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSwipeRefreshLayout.kt b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSwipeRefreshLayout.kt index a9401e2c..5d2b6fe9 100644 --- a/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSwipeRefreshLayout.kt +++ b/rxbinding-support-v4-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/v4/widget/RxSwipeRefreshLayout.kt @@ -10,7 +10,7 @@ import rx.functions.Action1 * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun SwipeRefreshLayout.refreshes(): Observable = RxSwipeRefreshLayout.refreshes(this).map { Unit } +inline fun SwipeRefreshLayout.refreshes(): Observable = RxSwipeRefreshLayout.refreshes(this).map { Unit } /** * An action which sets whether the layout is showing the refreshing indicator. @@ -18,4 +18,4 @@ public inline fun SwipeRefreshLayout.refreshes(): Observable = RxSwipeRefr * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe * to free this reference. */ -public inline fun SwipeRefreshLayout.refreshing(): Action1 = RxSwipeRefreshLayout.refreshing(this) +inline fun SwipeRefreshLayout.refreshing(): Action1 = RxSwipeRefreshLayout.refreshing(this) From 461780511b4f1e07498dba12ee35e5d01c0a69e8 Mon Sep 17 00:00:00 2001 From: Jake Wharton Date: Sun, 9 Oct 2016 21:57:00 -0400 Subject: [PATCH 09/12] Switch TargetApi for more correct RequiresApi annotation. --- .../com/jakewharton/rxbinding/project/KotlinGenTask.kt | 4 ++-- .../main/java/com/jakewharton/rxbinding/view/RxView.java | 6 ++---- .../java/com/jakewharton/rxbinding/widget/RxToolbar.java | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/buildSrc/src/main/kotlin/com/jakewharton/rxbinding/project/KotlinGenTask.kt b/buildSrc/src/main/kotlin/com/jakewharton/rxbinding/project/KotlinGenTask.kt index e2c2b267..cb052d9a 100644 --- a/buildSrc/src/main/kotlin/com/jakewharton/rxbinding/project/KotlinGenTask.kt +++ b/buildSrc/src/main/kotlin/com/jakewharton/rxbinding/project/KotlinGenTask.kt @@ -36,9 +36,9 @@ open class KotlinGenTask : SourceTask() { */ private val IGNORED_IMPORTS = listOf( "java.util.List", - "android.annotation.TargetApi", "android.support.annotation.CheckResult", - "android.support.annotation.NonNull" + "android.support.annotation.NonNull", + "android.support.annotation.RequiresApi" ) fun resolveKotlinTypeByName(input: String): String { diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/RxView.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/RxView.java index 53a4f1e7..d2b8b583 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/RxView.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/RxView.java @@ -1,16 +1,14 @@ package com.jakewharton.rxbinding.view; -import android.annotation.TargetApi; import android.support.annotation.CheckResult; import android.support.annotation.NonNull; +import android.support.annotation.RequiresApi; import android.view.DragEvent; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.ViewTreeObserver; - import com.jakewharton.rxbinding.internal.Functions; - import rx.Observable; import rx.functions.Action1; import rx.functions.Func0; @@ -294,7 +292,7 @@ public static Observable preDraws(@NonNull View view, * Warning: The created observable keeps a strong reference to {@code view}. Unsubscribe * to free this reference. */ - @TargetApi(M) + @RequiresApi(M) @CheckResult @NonNull public static Observable scrollChangeEvents(@NonNull View view) { checkNotNull(view, "view == null"); diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RxToolbar.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RxToolbar.java index e4f1d6f6..e35623fd 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RxToolbar.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RxToolbar.java @@ -1,11 +1,10 @@ package com.jakewharton.rxbinding.widget; -import android.annotation.TargetApi; import android.support.annotation.CheckResult; import android.support.annotation.NonNull; +import android.support.annotation.RequiresApi; import android.view.MenuItem; import android.widget.Toolbar; - import rx.Observable; import static android.os.Build.VERSION_CODES.LOLLIPOP; @@ -14,7 +13,7 @@ /** * Static factory methods for creating {@linkplain Observable observables} for {@link Toolbar}. */ -@TargetApi(LOLLIPOP) +@RequiresApi(LOLLIPOP) public final class RxToolbar { /** * Create an observable which emits the clicked item in {@code view}'s menu. From 3759aaae388c89059b3953efffa6fa027d7eb03f Mon Sep 17 00:00:00 2001 From: Jake Wharton Date: Sun, 9 Oct 2016 22:37:26 -0400 Subject: [PATCH 10/12] Add listeners after setting the unsubscribe action. This ensures that synchronous unsubscription (like take(1)) does not leak the listener onto the view. --- .../v7/widget/ActionMenuViewItemClickOnSubscribe.java | 3 ++- .../support/v7/widget/PopupMenuDismissOnSubscribe.java | 4 ++-- .../support/v7/widget/PopupMenuItemClickOnSubscribe.java | 4 ++-- .../widget/SearchViewQueryTextChangeEventsOnSubscribe.java | 4 ++-- .../v7/widget/SearchViewQueryTextChangesOnSubscribe.java | 4 ++-- .../support/v7/widget/ToolbarItemClickOnSubscribe.java | 3 ++- .../v7/widget/ToolbarNavigationClickOnSubscribe.java | 3 ++- .../design/widget/AppBarLayoutOffsetChangeOnSubscribe.java | 3 ++- .../widget/NavigationViewItemSelectionsOnSubscribe.java | 3 ++- .../support/design/widget/SnackbarDismissesOnSubscribe.java | 4 ++-- .../design/widget/SwipeDismissBehaviorOnSubscribe.java | 3 ++- .../design/widget/TabLayoutSelectionEventOnSubscribe.java | 3 ++- .../design/widget/TabLayoutSelectionsOnSubscribe.java | 3 ++- .../widget/SearchBarSearchQueryChangeEventsOnSubscribe.java | 4 ++-- .../widget/SearchBarSearchQueryChangesOnSubscribe.java | 4 ++-- .../widget/SearchEditTextKeyboardDismissOnSubscribe.java | 4 ++-- .../v7/widget/RecyclerAdapterDataChangeOnSubscribe.java | 4 ++-- .../RecyclerViewChildAttachStateChangeEventOnSubscribe.java | 4 ++-- .../v7/widget/RecyclerViewScrollEventOnSubscribe.java | 3 ++- .../v7/widget/RecyclerViewScrollStateChangeOnSubscribe.java | 3 ++- .../support/v4/view/MenuItemActionViewEventOnSubscribe.java | 4 ++-- .../v4/view/ViewPagerPageScrollStateChangedOnSubscribe.java | 3 ++- .../support/v4/view/ViewPagerPageSelectedOnSubscribe.java | 3 ++- .../v4/widget/DrawerLayoutDrawerOpenedOnSubscribe.java | 3 ++- .../NestedScrollViewScrollChangeEventOnSubscribe.java | 3 ++- .../v4/widget/SlidingPaneLayoutPaneOpenedOnSubscribe.java | 4 ++-- .../v4/widget/SlidingPaneLayoutSlideOnSubscribe.java | 4 ++-- .../v4/widget/SwipeRefreshLayoutRefreshOnSubscribe.java | 3 ++- .../rxbinding/view/MenuItemActionViewEventOnSubscribe.java | 4 ++-- .../rxbinding/view/MenuItemClickOnSubscribe.java | 4 ++-- .../rxbinding/view/ViewAttachEventOnSubscribe.java | 3 ++- .../jakewharton/rxbinding/view/ViewAttachesOnSubscribe.java | 3 ++- .../jakewharton/rxbinding/view/ViewClickOnSubscribe.java | 3 ++- .../com/jakewharton/rxbinding/view/ViewDragOnSubscribe.java | 3 ++- .../rxbinding/view/ViewFocusChangeOnSubscribe.java | 3 ++- .../view/ViewGroupHierarchyChangeEventOnSubscribe.java | 4 ++-- .../jakewharton/rxbinding/view/ViewHoverOnSubscribe.java | 3 ++- .../com/jakewharton/rxbinding/view/ViewKeyOnSubscribe.java | 3 ++- .../rxbinding/view/ViewLayoutChangeEventOnSubscribe.java | 3 ++- .../rxbinding/view/ViewLayoutChangeOnSubscribe.java | 3 ++- .../rxbinding/view/ViewLongClickOnSubscribe.java | 3 ++- .../rxbinding/view/ViewScrollChangeEventOnSubscribe.java | 3 ++- .../view/ViewSystemUiVisibilityChangeOnSubscribe.java | 3 ++- .../jakewharton/rxbinding/view/ViewTouchOnSubscribe.java | 3 ++- .../rxbinding/view/ViewTreeObserverDrawOnSubscribe.java | 4 ++-- .../view/ViewTreeObserverGlobalLayoutOnSubscribe.java | 4 ++-- .../rxbinding/view/ViewTreeObserverPreDrawOnSubscribe.java | 4 ++-- .../rxbinding/widget/AbsListViewScrollEventOnSubscribe.java | 6 +++--- .../rxbinding/widget/AdapterDataChangeOnSubscribe.java | 3 ++- .../widget/AdapterViewItemClickEventOnSubscribe.java | 3 ++- .../rxbinding/widget/AdapterViewItemClickOnSubscribe.java | 3 ++- .../widget/AdapterViewItemLongClickEventOnSubscribe.java | 3 ++- .../widget/AdapterViewItemLongClickOnSubscribe.java | 3 ++- .../widget/AdapterViewItemSelectionOnSubscribe.java | 3 ++- .../rxbinding/widget/AdapterViewSelectionOnSubscribe.java | 3 ++- .../AutoCompleteTextViewItemClickEventOnSubscribe.java | 3 ++- .../widget/CompoundButtonCheckedChangeOnSubscribe.java | 3 ++- .../rxbinding/widget/PopupMenuDismissOnSubscribe.java | 4 ++-- .../rxbinding/widget/PopupMenuItemClickOnSubscribe.java | 4 ++-- .../widget/RadioGroupCheckedChangeOnSubscribe.java | 3 ++- .../widget/RatingBarRatingChangeEventOnSubscribe.java | 3 ++- .../rxbinding/widget/RatingBarRatingChangeOnSubscribe.java | 3 ++- .../widget/SearchViewQueryTextChangeEventsOnSubscribe.java | 4 ++-- .../widget/SearchViewQueryTextChangesOnSubscribe.java | 4 ++-- .../rxbinding/widget/SeekBarChangeEventOnSubscribe.java | 3 ++- .../rxbinding/widget/SeekBarChangeOnSubscribe.java | 3 ++- .../widget/TextViewAfterTextChangeEventOnSubscribe.java | 3 ++- .../widget/TextViewBeforeTextChangeEventOnSubscribe.java | 3 ++- .../widget/TextViewEditorActionEventOnSubscribe.java | 3 ++- .../rxbinding/widget/TextViewEditorActionOnSubscribe.java | 3 ++- .../widget/TextViewTextChangeEventOnSubscribe.java | 3 ++- .../rxbinding/widget/TextViewTextOnSubscribe.java | 3 ++- .../rxbinding/widget/ToolbarItemClickOnSubscribe.java | 3 ++- .../rxbinding/widget/ToolbarNavigationClickOnSubscribe.java | 3 ++- 74 files changed, 149 insertions(+), 99 deletions(-) diff --git a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/ActionMenuViewItemClickOnSubscribe.java b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/ActionMenuViewItemClickOnSubscribe.java index 810c2117..a5af63e8 100644 --- a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/ActionMenuViewItemClickOnSubscribe.java +++ b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/ActionMenuViewItemClickOnSubscribe.java @@ -28,7 +28,6 @@ final class ActionMenuViewItemClickOnSubscribe implements Observable.OnSubscribe return true; } }; - view.setOnMenuItemClickListener(listener); subscriber.add(new MainThreadSubscription() { @Override @@ -36,5 +35,7 @@ protected void onUnsubscribe() { view.setOnMenuItemClickListener(null); } }); + + view.setOnMenuItemClickListener(listener); } } diff --git a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/PopupMenuDismissOnSubscribe.java b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/PopupMenuDismissOnSubscribe.java index 5cbf1cb4..36767ec9 100644 --- a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/PopupMenuDismissOnSubscribe.java +++ b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/PopupMenuDismissOnSubscribe.java @@ -26,12 +26,12 @@ public PopupMenuDismissOnSubscribe(PopupMenu view) { } }; - view.setOnDismissListener(listener); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnDismissListener(null); } }); + + view.setOnDismissListener(listener); } } diff --git a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/PopupMenuItemClickOnSubscribe.java b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/PopupMenuItemClickOnSubscribe.java index c1eba1ba..2d89928f 100644 --- a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/PopupMenuItemClickOnSubscribe.java +++ b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/PopupMenuItemClickOnSubscribe.java @@ -28,12 +28,12 @@ public PopupMenuItemClickOnSubscribe(PopupMenu view) { } }; - view.setOnMenuItemClickListener(listener); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnMenuItemClickListener(null); } }); + + view.setOnMenuItemClickListener(listener); } } diff --git a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/SearchViewQueryTextChangeEventsOnSubscribe.java b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/SearchViewQueryTextChangeEventsOnSubscribe.java index 869034f8..d855704d 100644 --- a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/SearchViewQueryTextChangeEventsOnSubscribe.java +++ b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/SearchViewQueryTextChangeEventsOnSubscribe.java @@ -36,14 +36,14 @@ final class SearchViewQueryTextChangeEventsOnSubscribe } }; - view.setOnQueryTextListener(watcher); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnQueryTextListener(null); } }); + view.setOnQueryTextListener(watcher); + // Emit initial value. subscriber.onNext(SearchViewQueryTextEvent.create(view, view.getQuery(), false)); } diff --git a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/SearchViewQueryTextChangesOnSubscribe.java b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/SearchViewQueryTextChangesOnSubscribe.java index d5c9e5eb..9396c4a0 100644 --- a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/SearchViewQueryTextChangesOnSubscribe.java +++ b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/SearchViewQueryTextChangesOnSubscribe.java @@ -31,14 +31,14 @@ final class SearchViewQueryTextChangesOnSubscribe implements Observable.OnSubscr } }; - view.setOnQueryTextListener(watcher); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnQueryTextListener(null); } }); + view.setOnQueryTextListener(watcher); + // Emit initial value. subscriber.onNext(view.getQuery()); } diff --git a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/ToolbarItemClickOnSubscribe.java b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/ToolbarItemClickOnSubscribe.java index 4508f4e7..6d5db542 100644 --- a/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/ToolbarItemClickOnSubscribe.java +++ b/rxbinding-appcompat-v7/src/main/java/com/jakewharton/rxbinding/support/v7/widget/ToolbarItemClickOnSubscribe.java @@ -26,12 +26,13 @@ final class ToolbarItemClickOnSubscribe implements Observable.OnSubscribe { } }; - menuItem.setOnMenuItemClickListener(listener); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { menuItem.setOnMenuItemClickListener(null); } }); + + menuItem.setOnMenuItemClickListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewAttachEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewAttachEventOnSubscribe.java index 497a15f2..ca75affa 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewAttachEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewAttachEventOnSubscribe.java @@ -33,12 +33,13 @@ final class ViewAttachEventOnSubscribe implements Observable.OnSubscribe { } } }; - view.addOnAttachStateChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.removeOnAttachStateChangeListener(listener); } }); + + view.addOnAttachStateChangeListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewClickOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewClickOnSubscribe.java index f96d5516..7d2ebabc 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewClickOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewClickOnSubscribe.java @@ -24,12 +24,13 @@ final class ViewClickOnSubscribe implements Observable.OnSubscribe { } } }; - view.setOnClickListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnClickListener(null); } }); + + view.setOnClickListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewDragOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewDragOnSubscribe.java index e9e7f8b7..fb2c740f 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewDragOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewDragOnSubscribe.java @@ -32,12 +32,13 @@ final class ViewDragOnSubscribe implements Observable.OnSubscribe { return false; } }; - view.setOnDragListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnDragListener(null); } }); + + view.setOnDragListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewFocusChangeOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewFocusChangeOnSubscribe.java index ca72c6bc..c0c5210b 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewFocusChangeOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewFocusChangeOnSubscribe.java @@ -24,7 +24,6 @@ final class ViewFocusChangeOnSubscribe implements Observable.OnSubscribe return false; } }; - view.setOnHoverListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnHoverListener(null); } }); + + view.setOnHoverListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewKeyOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewKeyOnSubscribe.java index a07c52d7..24810903 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewKeyOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewKeyOnSubscribe.java @@ -36,12 +36,13 @@ final class ViewKeyOnSubscribe implements Observable.OnSubscribe { } } }; - view.setOnKeyListener(keyListener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnKeyListener(null); } }); + + view.setOnKeyListener(keyListener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLayoutChangeEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLayoutChangeEventOnSubscribe.java index 317f2b06..077220b6 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLayoutChangeEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLayoutChangeEventOnSubscribe.java @@ -27,12 +27,13 @@ final class ViewLayoutChangeEventOnSubscribe } } }; - view.addOnLayoutChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.removeOnLayoutChangeListener(listener); } }); + + view.addOnLayoutChangeListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLayoutChangeOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLayoutChangeOnSubscribe.java index f5bb8446..abeeb243 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLayoutChangeOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLayoutChangeOnSubscribe.java @@ -25,12 +25,13 @@ final class ViewLayoutChangeOnSubscribe implements Observable.OnSubscribe } } }; - view.addOnLayoutChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.removeOnLayoutChangeListener(listener); } }); + + view.addOnLayoutChangeListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLongClickOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLongClickOnSubscribe.java index 1030ac77..8786ae58 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLongClickOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewLongClickOnSubscribe.java @@ -31,12 +31,13 @@ final class ViewLongClickOnSubscribe implements Observable.OnSubscribe { return false; } }; - view.setOnLongClickListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnLongClickListener(null); } }); + + view.setOnLongClickListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewScrollChangeEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewScrollChangeEventOnSubscribe.java index 5d1a7f6c..22bba1a3 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewScrollChangeEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewScrollChangeEventOnSubscribe.java @@ -30,12 +30,13 @@ public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int } } }; - view.setOnScrollChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnScrollChangeListener(null); } }); + + view.setOnScrollChangeListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewSystemUiVisibilityChangeOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewSystemUiVisibilityChangeOnSubscribe.java index adfc4192..d2670da4 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewSystemUiVisibilityChangeOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewSystemUiVisibilityChangeOnSubscribe.java @@ -25,12 +25,13 @@ final class ViewSystemUiVisibilityChangeOnSubscribe implements Observable.OnSubs } } }; - view.setOnSystemUiVisibilityChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnSystemUiVisibilityChangeListener(null); } }); + + view.setOnSystemUiVisibilityChangeListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTouchOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTouchOnSubscribe.java index 445af3df..c9ad98f8 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTouchOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTouchOnSubscribe.java @@ -33,12 +33,13 @@ final class ViewTouchOnSubscribe implements Observable.OnSubscribe return false; } }; - view.setOnTouchListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnTouchListener(null); } }); + + view.setOnTouchListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTreeObserverDrawOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTreeObserverDrawOnSubscribe.java index 57d43b3b..18cf9807 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTreeObserverDrawOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTreeObserverDrawOnSubscribe.java @@ -29,12 +29,12 @@ final class ViewTreeObserverDrawOnSubscribe implements Observable.OnSubscribe= Build.VERSION_CODES.JELLY_BEAN) { @@ -38,5 +36,7 @@ final class ViewTreeObserverGlobalLayoutOnSubscribe implements Observable.OnSubs } } }); + + view.getViewTreeObserver().addOnGlobalLayoutListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTreeObserverPreDrawOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTreeObserverPreDrawOnSubscribe.java index 9a6abe41..74e0d009 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTreeObserverPreDrawOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/view/ViewTreeObserverPreDrawOnSubscribe.java @@ -31,12 +31,12 @@ final class ViewTreeObserverPreDrawOnSubscribe implements Observable.OnSubscribe } }; - view.getViewTreeObserver().addOnPreDrawListener(listener); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.getViewTreeObserver().removeOnPreDrawListener(listener); } }); + + view.getViewTreeObserver().addOnPreDrawListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AbsListViewScrollEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AbsListViewScrollEventOnSubscribe.java index dd6c2b67..966b832f 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AbsListViewScrollEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AbsListViewScrollEventOnSubscribe.java @@ -44,13 +44,13 @@ final class AbsListViewScrollEventOnSubscribe } }; - // Setting the listener automatically triggers the initial value. - view.setOnScrollListener(listener); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnScrollListener(null); } }); + + // Setting the listener automatically triggers the initial value. + view.setOnScrollListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterDataChangeOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterDataChangeOnSubscribe.java index 3b220b13..dc125818 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterDataChangeOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterDataChangeOnSubscribe.java @@ -26,7 +26,6 @@ public AdapterDataChangeOnSubscribe(T adapter) { } } }; - adapter.registerDataSetObserver(observer); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -34,6 +33,8 @@ public AdapterDataChangeOnSubscribe(T adapter) { } }); + adapter.registerDataSetObserver(observer); + // Emit initial value. subscriber.onNext(adapter); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemClickEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemClickEventOnSubscribe.java index 949ce765..b8889efd 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemClickEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemClickEventOnSubscribe.java @@ -26,12 +26,13 @@ public AdapterViewItemClickEventOnSubscribe(AdapterView view) { } } }; - view.setOnItemClickListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnItemClickListener(null); } }); + + view.setOnItemClickListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemClickOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemClickOnSubscribe.java index 2849e812..b150e86f 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemClickOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemClickOnSubscribe.java @@ -25,12 +25,13 @@ public AdapterViewItemClickOnSubscribe(AdapterView view) { } } }; - view.setOnItemClickListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnItemClickListener(null); } }); + + view.setOnItemClickListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemLongClickEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemLongClickEventOnSubscribe.java index 839d3023..fde2cdd3 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemLongClickEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemLongClickEventOnSubscribe.java @@ -37,12 +37,13 @@ public boolean onItemLongClick(AdapterView parent, View view, int position, l return false; } }; - view.setOnItemLongClickListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnItemLongClickListener(null); } }); + + view.setOnItemLongClickListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemLongClickOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemLongClickOnSubscribe.java index 461b480d..2fc1b8b6 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemLongClickOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemLongClickOnSubscribe.java @@ -33,12 +33,13 @@ public boolean onItemLongClick(AdapterView parent, View view, int position, l return false; } }; - view.setOnItemLongClickListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnItemLongClickListener(null); } }); + + view.setOnItemLongClickListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemSelectionOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemSelectionOnSubscribe.java index 5eb227e2..d96f8d82 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemSelectionOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewItemSelectionOnSubscribe.java @@ -33,7 +33,6 @@ public void onItemSelected(AdapterView parent, View view, int position, long } } }; - view.setOnItemSelectedListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -41,6 +40,8 @@ public void onItemSelected(AdapterView parent, View view, int position, long } }); + view.setOnItemSelectedListener(listener); + // Emit initial value. subscriber.onNext(view.getSelectedItemPosition()); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewSelectionOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewSelectionOnSubscribe.java index 093576c9..4315f24f 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewSelectionOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AdapterViewSelectionOnSubscribe.java @@ -34,7 +34,6 @@ public void onItemSelected(AdapterView parent, View view, int position, long } } }; - view.setOnItemSelectedListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -42,6 +41,8 @@ public void onItemSelected(AdapterView parent, View view, int position, long } }); + view.setOnItemSelectedListener(listener); + // Emit initial value. int selectedPosition = view.getSelectedItemPosition(); if (selectedPosition == INVALID_POSITION) { diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AutoCompleteTextViewItemClickEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AutoCompleteTextViewItemClickEventOnSubscribe.java index 133fca59..5099a3bc 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AutoCompleteTextViewItemClickEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/AutoCompleteTextViewItemClickEventOnSubscribe.java @@ -27,12 +27,13 @@ public AutoCompleteTextViewItemClickEventOnSubscribe(AutoCompleteTextView view) } } }; - view.setOnItemClickListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnItemClickListener(null); } }); + + view.setOnItemClickListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/CompoundButtonCheckedChangeOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/CompoundButtonCheckedChangeOnSubscribe.java index 925a1b47..3d137cee 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/CompoundButtonCheckedChangeOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/CompoundButtonCheckedChangeOnSubscribe.java @@ -24,7 +24,6 @@ public CompoundButtonCheckedChangeOnSubscribe(CompoundButton view) { } } }; - view.setOnCheckedChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -32,6 +31,8 @@ public CompoundButtonCheckedChangeOnSubscribe(CompoundButton view) { } }); + view.setOnCheckedChangeListener(listener); + // Emit initial value. subscriber.onNext(view.isChecked()); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/PopupMenuDismissOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/PopupMenuDismissOnSubscribe.java index 26195c18..b5057d77 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/PopupMenuDismissOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/PopupMenuDismissOnSubscribe.java @@ -26,12 +26,12 @@ public PopupMenuDismissOnSubscribe(PopupMenu view) { } }; - view.setOnDismissListener(listener); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnDismissListener(null); } }); + + view.setOnDismissListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/PopupMenuItemClickOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/PopupMenuItemClickOnSubscribe.java index bdcbd0ff..42312d14 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/PopupMenuItemClickOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/PopupMenuItemClickOnSubscribe.java @@ -28,12 +28,12 @@ public PopupMenuItemClickOnSubscribe(PopupMenu view) { } }; - view.setOnMenuItemClickListener(listener); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnMenuItemClickListener(null); } }); + + view.setOnMenuItemClickListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RadioGroupCheckedChangeOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RadioGroupCheckedChangeOnSubscribe.java index 64ab9398..8018783f 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RadioGroupCheckedChangeOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RadioGroupCheckedChangeOnSubscribe.java @@ -24,7 +24,6 @@ public RadioGroupCheckedChangeOnSubscribe(RadioGroup view) { } } }; - view.setOnCheckedChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -32,6 +31,8 @@ public RadioGroupCheckedChangeOnSubscribe(RadioGroup view) { } }); + view.setOnCheckedChangeListener(listener); + // Emit initial value. subscriber.onNext(view.getCheckedRadioButtonId()); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RatingBarRatingChangeEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RatingBarRatingChangeEventOnSubscribe.java index 89270627..4d5e06ec 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RatingBarRatingChangeEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RatingBarRatingChangeEventOnSubscribe.java @@ -25,7 +25,6 @@ public RatingBarRatingChangeEventOnSubscribe(RatingBar view) { } } }; - view.setOnRatingBarChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -33,6 +32,8 @@ public RatingBarRatingChangeEventOnSubscribe(RatingBar view) { } }); + view.setOnRatingBarChangeListener(listener); + // Emit initial value. subscriber.onNext(RatingBarChangeEvent.create(view, view.getRating(), false)); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RatingBarRatingChangeOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RatingBarRatingChangeOnSubscribe.java index 2276793a..7b8e75df 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RatingBarRatingChangeOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/RatingBarRatingChangeOnSubscribe.java @@ -24,7 +24,6 @@ public RatingBarRatingChangeOnSubscribe(RatingBar view) { } } }; - view.setOnRatingBarChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -32,6 +31,8 @@ public RatingBarRatingChangeOnSubscribe(RatingBar view) { } }); + view.setOnRatingBarChangeListener(listener); + // Emit initial value. subscriber.onNext(view.getRating()); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SearchViewQueryTextChangeEventsOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SearchViewQueryTextChangeEventsOnSubscribe.java index 6c2fe444..855d8ec1 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SearchViewQueryTextChangeEventsOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SearchViewQueryTextChangeEventsOnSubscribe.java @@ -36,14 +36,14 @@ final class SearchViewQueryTextChangeEventsOnSubscribe } }; - view.setOnQueryTextListener(watcher); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnQueryTextListener(null); } }); + view.setOnQueryTextListener(watcher); + // Emit initial value. subscriber.onNext(SearchViewQueryTextEvent.create(view, view.getQuery(), false)); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SearchViewQueryTextChangesOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SearchViewQueryTextChangesOnSubscribe.java index 895896cb..c147b25d 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SearchViewQueryTextChangesOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SearchViewQueryTextChangesOnSubscribe.java @@ -31,14 +31,14 @@ final class SearchViewQueryTextChangesOnSubscribe implements Observable.OnSubscr } }; - view.setOnQueryTextListener(watcher); - subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnQueryTextListener(null); } }); + view.setOnQueryTextListener(watcher); + // Emit initial value. subscriber.onNext(view.getQuery()); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SeekBarChangeEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SeekBarChangeEventOnSubscribe.java index 61810a3d..c9985559 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SeekBarChangeEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SeekBarChangeEventOnSubscribe.java @@ -37,7 +37,6 @@ public SeekBarChangeEventOnSubscribe(SeekBar view) { } } }; - view.setOnSeekBarChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -45,6 +44,8 @@ public SeekBarChangeEventOnSubscribe(SeekBar view) { } }); + view.setOnSeekBarChangeListener(listener); + // Emit initial value. subscriber.onNext(SeekBarProgressChangeEvent.create(view, view.getProgress(), false)); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SeekBarChangeOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SeekBarChangeOnSubscribe.java index 755da122..ecfb27e3 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SeekBarChangeOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/SeekBarChangeOnSubscribe.java @@ -34,7 +34,6 @@ public SeekBarChangeOnSubscribe(SeekBar view, @Nullable Boolean shouldBeFromUser @Override public void onStopTrackingTouch(SeekBar seekBar) { } }; - view.setOnSeekBarChangeListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -42,6 +41,8 @@ public SeekBarChangeOnSubscribe(SeekBar view, @Nullable Boolean shouldBeFromUser } }); + view.setOnSeekBarChangeListener(listener); + // Emit initial value. subscriber.onNext(view.getProgress()); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewAfterTextChangeEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewAfterTextChangeEventOnSubscribe.java index 7fa0ccc9..dea27667 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewAfterTextChangeEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewAfterTextChangeEventOnSubscribe.java @@ -33,7 +33,6 @@ final class TextViewAfterTextChangeEventOnSubscribe } } }; - view.addTextChangedListener(watcher); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -41,6 +40,8 @@ final class TextViewAfterTextChangeEventOnSubscribe } }); + view.addTextChangedListener(watcher); + // Emit initial value. subscriber.onNext(TextViewAfterTextChangeEvent.create(view, view.getEditableText())); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewBeforeTextChangeEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewBeforeTextChangeEventOnSubscribe.java index f5d1745f..147e9f79 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewBeforeTextChangeEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewBeforeTextChangeEventOnSubscribe.java @@ -33,7 +33,6 @@ final class TextViewBeforeTextChangeEventOnSubscribe @Override public void afterTextChanged(Editable s) { } }; - view.addTextChangedListener(watcher); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { @@ -41,6 +40,8 @@ final class TextViewBeforeTextChangeEventOnSubscribe } }); + view.addTextChangedListener(watcher); + // Emit initial value. subscriber.onNext(TextViewBeforeTextChangeEvent.create(view, view.getText(), 0, 0, 0)); } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewEditorActionEventOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewEditorActionEventOnSubscribe.java index 2be5f18f..8fda30c7 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewEditorActionEventOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewEditorActionEventOnSubscribe.java @@ -35,12 +35,13 @@ final class TextViewEditorActionEventOnSubscribe return false; } }; - view.setOnEditorActionListener(listener); subscriber.add(new MainThreadSubscription() { @Override protected void onUnsubscribe() { view.setOnEditorActionListener(null); } }); + + view.setOnEditorActionListener(listener); } } diff --git a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewEditorActionOnSubscribe.java b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewEditorActionOnSubscribe.java index 8778ef74..ca16ad3b 100644 --- a/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewEditorActionOnSubscribe.java +++ b/rxbinding/src/main/java/com/jakewharton/rxbinding/widget/TextViewEditorActionOnSubscribe.java @@ -32,12 +32,13 @@ final class TextViewEditorActionOnSubscribe implements Observable.OnSubscribe Date: Sun, 9 Oct 2016 23:09:51 -0400 Subject: [PATCH 11/12] Depend only on the Core UI artifact from support-v4. Because other artifacts might depend on older versions of support-v4, force them to the current version so that normal resolution semantics apply properly. --- dependencies.gradle | 25 +++++++++++++++++++------ rxbinding-support-v4/build.gradle | 2 +- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 60ce9943..080eec45 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -9,12 +9,13 @@ ext { kotlinPlugin = 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.3' kotlinStdlib = 'org.jetbrains.kotlin:kotlin-stdlib:1.0.3' - supportAnnotations = 'com.android.support:support-annotations:24.0.0' - supportV4 = 'com.android.support:support-v4:24.0.0' - supportRecyclerView = 'com.android.support:recyclerview-v7:24.0.0' - supportAppCompat = 'com.android.support:appcompat-v7:24.0.0' - supportDesign = 'com.android.support:design:24.0.0' - supportLeanback = 'com.android.support:leanback-v17:24.0.0' + supportVersion = '24.2.1' + supportAnnotations = "com.android.support:support-annotations:$supportVersion" + supportV4CoreUi = "com.android.support:support-core-ui:$supportVersion" + supportRecyclerView = "com.android.support:recyclerview-v7:$supportVersion" + supportAppCompat = "com.android.support:appcompat-v7:$supportVersion" + supportDesign = "com.android.support:design:$supportVersion" + supportLeanback = "com.android.support:leanback-v17:$supportVersion" supportTestRunner = 'com.android.support.test:runner:0.5' supportTestRules = 'com.android.support.test:rules:0.5' @@ -27,3 +28,15 @@ ext { javaParser = 'com.github.javaparser:javaparser-core:2.1.0' } + +subprojects { project -> + project.configurations.all { + resolutionStrategy { + eachDependency { details -> + if (details.requested.group == 'com.android.support') { + details.useVersion(rootProject.ext.supportVersion) + } + } + } + } +} diff --git a/rxbinding-support-v4/build.gradle b/rxbinding-support-v4/build.gradle index e5c349fe..07c1ba04 100644 --- a/rxbinding-support-v4/build.gradle +++ b/rxbinding-support-v4/build.gradle @@ -9,7 +9,7 @@ apply plugin: 'rxbinding-module' dependencies { compile project(':rxbinding') - compile rootProject.ext.supportV4 + compile rootProject.ext.supportV4CoreUi androidTestCompile project(':testing-utils') androidTestCompile rootProject.ext.supportTestRunner From 1384644f788e6215d7e4e6a60a9be76c2c27b287 Mon Sep 17 00:00:00 2001 From: Alex Townsend Date: Thu, 20 Oct 2016 15:26:54 -0400 Subject: [PATCH 12/12] Add BottomNavigationView binding --- dependencies.gradle | 2 +- .../design/widget/RxBottomNavigationView.kt | 15 +++++ .../widget/RxBottomNavigationViewTest.java | 57 +++++++++++++++++++ .../src/androidTest/res/menu/menu.xml | 13 +++++ ...vigationViewItemSelectionsOnSubscribe.java | 52 +++++++++++++++++ .../design/widget/RxBottomNavigationView.java | 34 +++++++++++ 6 files changed, 172 insertions(+), 1 deletion(-) create mode 100644 rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationView.kt create mode 100644 rxbinding-design/src/androidTest/java/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationViewTest.java create mode 100644 rxbinding-design/src/androidTest/res/menu/menu.xml create mode 100644 rxbinding-design/src/main/java/com/jakewharton/rxbinding/support/design/widget/BottomNavigationViewItemSelectionsOnSubscribe.java create mode 100644 rxbinding-design/src/main/java/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationView.java diff --git a/dependencies.gradle b/dependencies.gradle index 080eec45..ce87815b 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -9,7 +9,7 @@ ext { kotlinPlugin = 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.3' kotlinStdlib = 'org.jetbrains.kotlin:kotlin-stdlib:1.0.3' - supportVersion = '24.2.1' + supportVersion = '25.0.0' supportAnnotations = "com.android.support:support-annotations:$supportVersion" supportV4CoreUi = "com.android.support:support-core-ui:$supportVersion" supportRecyclerView = "com.android.support:recyclerview-v7:$supportVersion" diff --git a/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationView.kt b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationView.kt new file mode 100644 index 00000000..23b3e471 --- /dev/null +++ b/rxbinding-design-kotlin/src/main/kotlin/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationView.kt @@ -0,0 +1,15 @@ +package com.jakewharton.rxbinding.support.design.widget + +import android.support.design.widget.BottomNavigationView +import android.view.MenuItem +import rx.Observable + +/** + * Create an observable which emits the selected item in `view`. + * + * *Warning:* The created observable keeps a strong reference to `view`. Unsubscribe + * to free this reference. + * + * *Note:* If an item is already selected, it will be emitted immediately on subscribe. + */ +inline fun BottomNavigationView.itemSelections(): Observable = RxBottomNavigationView.itemSelections(this) diff --git a/rxbinding-design/src/androidTest/java/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationViewTest.java b/rxbinding-design/src/androidTest/java/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationViewTest.java new file mode 100644 index 00000000..8c37cf94 --- /dev/null +++ b/rxbinding-design/src/androidTest/java/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationViewTest.java @@ -0,0 +1,57 @@ +package com.jakewharton.rxbinding.support.design.widget; + +import android.content.Context; +import android.support.design.widget.BottomNavigationView; +import android.support.test.InstrumentationRegistry; +import android.support.test.annotation.UiThreadTest; +import android.support.test.rule.UiThreadTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.view.ContextThemeWrapper; +import android.view.Menu; +import android.view.MenuItem; +import com.jakewharton.rxbinding.RecordingObserver; +import com.jakewharton.rxbinding.support.design.test.R; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import rx.Subscription; + +import static com.google.common.truth.Truth.assertThat; + +@RunWith(AndroidJUnit4.class) public final class RxBottomNavigationViewTest { + @Rule public final UiThreadTestRule uiThreadTestRule = new UiThreadTestRule(); + + private final Context rawContext = InstrumentationRegistry.getContext(); + private final Context context = new ContextThemeWrapper(rawContext, R.style.Theme_AppCompat); + private final BottomNavigationView view = new BottomNavigationView(context); + private final Menu menu = view.getMenu(); + + @Before public void setUp() { + view.inflateMenu(R.menu.menu); + } + + @After public void teardown() { + menu.clear(); + } + + @Test @UiThreadTest public void itemSelections() { + RecordingObserver o = new RecordingObserver<>(); + Subscription subscription = RxBottomNavigationView.itemSelections(view).subscribe(o); + + // initial value + assertThat(o.takeNext().getItemId()).isEqualTo(R.id.menu_item_one); + + menu.performIdentifierAction(R.id.menu_item_two, 0); + assertThat(o.takeNext().getItemId()).isEqualTo(R.id.menu_item_two); + + menu.performIdentifierAction(R.id.menu_item_one, 0); + assertThat(o.takeNext().getItemId()).isEqualTo(R.id.menu_item_one); + + subscription.unsubscribe(); + + menu.performIdentifierAction(R.id.menu_item_two, 0); + o.assertNoMoreEvents(); + } +} diff --git a/rxbinding-design/src/androidTest/res/menu/menu.xml b/rxbinding-design/src/androidTest/res/menu/menu.xml new file mode 100644 index 00000000..893ed34b --- /dev/null +++ b/rxbinding-design/src/androidTest/res/menu/menu.xml @@ -0,0 +1,13 @@ + +

+ + + + + \ No newline at end of file diff --git a/rxbinding-design/src/main/java/com/jakewharton/rxbinding/support/design/widget/BottomNavigationViewItemSelectionsOnSubscribe.java b/rxbinding-design/src/main/java/com/jakewharton/rxbinding/support/design/widget/BottomNavigationViewItemSelectionsOnSubscribe.java new file mode 100644 index 00000000..58ccb9bb --- /dev/null +++ b/rxbinding-design/src/main/java/com/jakewharton/rxbinding/support/design/widget/BottomNavigationViewItemSelectionsOnSubscribe.java @@ -0,0 +1,52 @@ +package com.jakewharton.rxbinding.support.design.widget; + +import android.support.annotation.NonNull; +import android.support.design.widget.BottomNavigationView; +import android.view.Menu; +import android.view.MenuItem; +import rx.Observable; +import rx.Subscriber; +import rx.android.MainThreadSubscription; + +import static rx.android.MainThreadSubscription.verifyMainThread; + +final class BottomNavigationViewItemSelectionsOnSubscribe + implements Observable.OnSubscribe { + final BottomNavigationView view; + + BottomNavigationViewItemSelectionsOnSubscribe(BottomNavigationView view) { + this.view = view; + } + + @Override public void call(final Subscriber subscriber) { + verifyMainThread(); + + final BottomNavigationView.OnNavigationItemSelectedListener listener = + new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { + if (!subscriber.isUnsubscribed()) { + subscriber.onNext(item); + } + return true; + } + }; + + subscriber.add(new MainThreadSubscription() { + @Override protected void onUnsubscribe() { + view.setOnNavigationItemSelectedListener(null); + } + }); + + view.setOnNavigationItemSelectedListener(listener); + + // Emit initial item, if one can be found + Menu menu = view.getMenu(); + for (int i = 0, count = menu.size(); i < count; i++) { + MenuItem item = menu.getItem(i); + if (item.isChecked()) { + subscriber.onNext(item); + break; + } + } + } +} diff --git a/rxbinding-design/src/main/java/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationView.java b/rxbinding-design/src/main/java/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationView.java new file mode 100644 index 00000000..882337db --- /dev/null +++ b/rxbinding-design/src/main/java/com/jakewharton/rxbinding/support/design/widget/RxBottomNavigationView.java @@ -0,0 +1,34 @@ +package com.jakewharton.rxbinding.support.design.widget; + +import android.support.annotation.CheckResult; +import android.support.annotation.NonNull; +import android.support.design.widget.BottomNavigationView; +import android.view.MenuItem; +import rx.Observable; + +import static com.jakewharton.rxbinding.internal.Preconditions.checkNotNull; + +/** + * Static factory methods for creating {@linkplain Observable observables} for + * {@link BottomNavigationView}. + */ +public final class RxBottomNavigationView { + + /** + * Create an observable which emits the selected item in {@code view}. + *

+ * Warning: The created observable keeps a strong reference to {@code view}. Unsubscribe + * to free this reference. + *

+ * Note: If an item is already selected, it will be emitted immediately on subscribe. + */ + @CheckResult @NonNull public static Observable itemSelections( + @NonNull BottomNavigationView view) { + checkNotNull(view, "view == null"); + return Observable.create(new BottomNavigationViewItemSelectionsOnSubscribe(view)); + } + + private RxBottomNavigationView() { + throw new AssertionError("No instances."); + } +}