Skip to content

Commit f0235be

Browse files
omoHajime Morita
authored and
Hajime Morita
committed
Split part of ViewObservable to WidgetObservable. (ReactiveX#65)
Some ViewObservable methods are for android.widget.* classes. This change moves these to newly introduced WidgetObservable. This turns some internal classes from public to package-local.
1 parent 1e5d7bf commit f0235be

20 files changed

+82
-80
lines changed

rxandroid/src/main/java/rx/android/view/OperatorViewClick.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import java.util.Map;
2727
import java.util.WeakHashMap;
2828

29-
public final class OperatorViewClick implements Observable.OnSubscribe<OnClickEvent> {
29+
final class OperatorViewClick implements Observable.OnSubscribe<OnClickEvent> {
3030
private final boolean emitInitialValue;
3131
private final View view;
3232

rxandroid/src/main/java/rx/android/view/OperatorViewDetachedFromWindowFirst.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* An internal class that is used from #{@link ViewObservable#bindView}.
2424
* This emits an event when the given #{@code View} is detached from the window for the first time.
2525
*/
26-
public class OperatorViewDetachedFromWindowFirst implements Observable.OnSubscribe<View> {
26+
final class OperatorViewDetachedFromWindowFirst implements Observable.OnSubscribe<View> {
2727
private final View view;
2828

2929
public OperatorViewDetachedFromWindowFirst(View view) {

rxandroid/src/main/java/rx/android/view/ViewObservable.java

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,13 @@
2121

2222
import rx.Observable;
2323
import rx.android.util.Assertions;
24-
import rx.android.widget.OnItemClickEvent;
25-
import rx.android.widget.OnListViewScrollEvent;
26-
import rx.android.widget.OperatorAdapterViewOnItemClick;
27-
import rx.android.widget.OperatorCompoundButtonInput;
28-
import rx.android.widget.OnSubscribeListViewScroll;
29-
import rx.android.widget.OperatorTextViewInput;
30-
import rx.android.widget.OnTextChangeEvent;
3124

3225
import static rx.android.schedulers.AndroidSchedulers.mainThread;
3326

34-
public class ViewObservable {
27+
public final class ViewObservable {
28+
29+
private ViewObservable() {
30+
}
3531

3632
public static Observable<OnClickEvent> clicks(final View view) {
3733
return clicks(view, false);
@@ -41,36 +37,6 @@ public static Observable<OnClickEvent> clicks(final View view, final boolean emi
4137
return Observable.create(new OperatorViewClick(view, emitInitialValue));
4238
}
4339

44-
public static Observable<OnTextChangeEvent> text(final TextView input) {
45-
return text(input, false);
46-
}
47-
48-
public static Observable<OnTextChangeEvent> text(final TextView input, final boolean emitInitialValue) {
49-
return Observable.create(new OperatorTextViewInput(input, emitInitialValue));
50-
}
51-
52-
public static Observable<OnCheckedChangeEvent> input(final CompoundButton button) {
53-
return input(button, false);
54-
}
55-
56-
public static Observable<OnCheckedChangeEvent> input(final CompoundButton button, final boolean emitInitialValue) {
57-
return Observable.create(new OperatorCompoundButtonInput(button, emitInitialValue));
58-
}
59-
60-
public static Observable<OnItemClickEvent> itemClicks(final AdapterView<?> adapterView) {
61-
return Observable.create(new OperatorAdapterViewOnItemClick(adapterView));
62-
}
63-
64-
/**
65-
* Returns an observable that emits all the scroll events from the provided ListView.
66-
* Note that this will replace any listeners previously set through
67-
* {@link android.widget.AbsListView#setOnScrollListener(android.widget.AbsListView.OnScrollListener)} unless those
68-
* were set by this method or {@link rx.android.widget.OnSubscribeListViewScroll}.
69-
*/
70-
public static Observable<OnListViewScrollEvent> listScrollEvents(final AbsListView listView) {
71-
return Observable.create(new OnSubscribeListViewScroll(listView));
72-
}
73-
7440
/**
7541
* Binds the given source sequence to the view.
7642
* <p>

rxandroid/src/main/java/rx/android/widget/OnSubscribeListViewScroll.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import java.util.Map;
2828
import java.util.WeakHashMap;
2929

30-
public class OnSubscribeListViewScroll implements Observable.OnSubscribe<OnListViewScrollEvent> {
30+
class OnSubscribeListViewScroll implements Observable.OnSubscribe<OnListViewScrollEvent> {
3131

3232
private final AbsListView listView;
3333

rxandroid/src/main/java/rx/android/widget/OperatorAdapterViewOnItemClick.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import rx.android.AndroidSubscriptions;
3030
import rx.functions.Action0;
3131

32-
public class OperatorAdapterViewOnItemClick implements Observable.OnSubscribe<OnItemClickEvent> {
32+
class OperatorAdapterViewOnItemClick implements Observable.OnSubscribe<OnItemClickEvent> {
3333

3434
private final AdapterView<?> adapterView;
3535

rxandroid/src/main/java/rx/android/widget/OperatorCompoundButtonInput.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import java.util.Map;
2929
import java.util.WeakHashMap;
3030

31-
public class OperatorCompoundButtonInput implements Observable.OnSubscribe<OnCheckedChangeEvent> {
31+
class OperatorCompoundButtonInput implements Observable.OnSubscribe<OnCheckedChangeEvent> {
3232
private final boolean emitInitialValue;
3333
private final CompoundButton button;
3434

rxandroid/src/main/java/rx/android/widget/OperatorTextViewInput.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import android.text.TextWatcher;
2424
import android.widget.TextView;
2525

26-
public class OperatorTextViewInput implements Observable.OnSubscribe<OnTextChangeEvent> {
26+
class OperatorTextViewInput implements Observable.OnSubscribe<OnTextChangeEvent> {
2727
private final boolean emitInitialValue;
2828
private final TextView input;
2929

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package rx.android.widget;
2+
3+
import android.widget.AbsListView;
4+
import android.widget.AdapterView;
5+
import android.widget.CompoundButton;
6+
import android.widget.TextView;
7+
8+
import rx.Observable;
9+
import rx.android.view.OnCheckedChangeEvent;
10+
11+
public final class WidgetObservable {
12+
private WidgetObservable() {
13+
}
14+
15+
public static Observable<OnTextChangeEvent> text(final TextView input) {
16+
return text(input, false);
17+
}
18+
19+
public static Observable<OnTextChangeEvent> text(final TextView input, final boolean emitInitialValue) {
20+
return Observable.create(new OperatorTextViewInput(input, emitInitialValue));
21+
}
22+
23+
public static Observable<OnCheckedChangeEvent> input(final CompoundButton button) {
24+
return input(button, false);
25+
}
26+
27+
public static Observable<OnCheckedChangeEvent> input(final CompoundButton button, final boolean emitInitialValue) {
28+
return Observable.create(new OperatorCompoundButtonInput(button, emitInitialValue));
29+
}
30+
31+
public static Observable<OnItemClickEvent> itemClicks(final AdapterView<?> adapterView) {
32+
return Observable.create(new OperatorAdapterViewOnItemClick(adapterView));
33+
}
34+
35+
/**
36+
* Returns an observable that emits all the scroll events from the provided ListView.
37+
* Note that this will replace any listeners previously set through
38+
* {@link android.widget.AbsListView#setOnScrollListener(android.widget.AbsListView.OnScrollListener)} unless those
39+
* were set by this method or {@link OnSubscribeListViewScroll}.
40+
*/
41+
public static Observable<OnListViewScrollEvent> listScrollEvents(final AbsListView listView) {
42+
return Observable.create(new OnSubscribeListViewScroll(listView));
43+
}
44+
}

rxandroid/src/test/java/rx/android/view/OperatorViewClickTest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,24 @@
1515

1616
import android.app.Activity;
1717
import android.view.View;
18+
1819
import org.junit.Test;
1920
import org.junit.runner.RunWith;
2021
import org.mockito.InOrder;
2122
import org.robolectric.Robolectric;
2223
import org.robolectric.RobolectricTestRunner;
24+
2325
import rx.Observable;
2426
import rx.Observer;
2527
import rx.Subscription;
26-
import rx.android.view.OnClickEvent;
27-
import rx.android.view.ViewObservable;
2828
import rx.observers.TestObserver;
2929

3030
import static org.mockito.Matchers.any;
31-
import static org.mockito.Mockito.*;
31+
import static org.mockito.Mockito.inOrder;
32+
import static org.mockito.Mockito.mock;
33+
import static org.mockito.Mockito.never;
34+
import static org.mockito.Mockito.refEq;
35+
import static org.mockito.Mockito.times;
3236

3337
@RunWith(RobolectricTestRunner.class)
3438
public class OperatorViewClickTest {

rxandroid/src/test/java/rx/android/view/ViewAction1Test.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.junit.runner.RunWith;
2020
import org.robolectric.RobolectricTestRunner;
2121

22-
import rx.android.view.ViewAction1;
2322
import rx.subjects.PublishSubject;
2423

2524
import static org.junit.Assert.assertFalse;

rxandroid/src/test/java/rx/android/view/ViewActionSetActivatedTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.junit.runner.RunWith;
2020
import org.robolectric.RobolectricTestRunner;
2121

22-
import rx.android.view.ViewActions;
2322
import rx.subjects.PublishSubject;
2423

2524
import static org.junit.Assert.assertFalse;

rxandroid/src/test/java/rx/android/view/ViewActionSetClickableTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.junit.runner.RunWith;
2020
import org.robolectric.RobolectricTestRunner;
2121

22-
import rx.android.view.ViewActions;
2322
import rx.subjects.PublishSubject;
2423

2524
import static org.junit.Assert.assertFalse;

rxandroid/src/test/java/rx/android/view/ViewActionSetEnabledTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.junit.runner.RunWith;
2020
import org.robolectric.RobolectricTestRunner;
2121

22-
import rx.android.view.ViewActions;
2322
import rx.subjects.PublishSubject;
2423

2524
import static org.junit.Assert.assertFalse;

rxandroid/src/test/java/rx/android/view/ViewActionSetFocusableTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.junit.runner.RunWith;
2020
import org.robolectric.RobolectricTestRunner;
2121

22-
import rx.android.view.ViewActions;
2322
import rx.subjects.PublishSubject;
2423

2524
import static org.junit.Assert.assertFalse;

rxandroid/src/test/java/rx/android/view/ViewActionSetSelectedTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.junit.runner.RunWith;
2020
import org.robolectric.RobolectricTestRunner;
2121

22-
import rx.android.view.ViewActions;
2322
import rx.subjects.PublishSubject;
2423

2524
import static org.junit.Assert.assertFalse;

rxandroid/src/test/java/rx/android/view/ViewActionSetVisibilityTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.junit.runner.RunWith;
2020
import org.robolectric.RobolectricTestRunner;
2121

22-
import rx.android.view.ViewActions;
2322
import rx.subjects.PublishSubject;
2423

2524
import static org.junit.Assert.assertEquals;

rxandroid/src/test/java/rx/android/widget/OperatorAdapterViewOnItemClickTest.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@
3636
import rx.Observable;
3737
import rx.Observer;
3838
import rx.Subscription;
39-
import rx.android.widget.OnItemClickEvent;
40-
import rx.android.view.ViewObservable;
4139
import rx.observers.TestObserver;
4240

4341
import static org.mockito.Matchers.any;
@@ -209,7 +207,7 @@ public void testMultipleSubscriptionsGridViewNeverEmitOnCompletedAfterUnsubscrib
209207
private void performTestAdapterViewNeverEmitEventBeforeSubscribed(AdapterView<? extends Adapter> adapterView) {
210208
Adapter adapter = adapterView.getAdapter();
211209
Assert.assertNotNull(adapter);
212-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
210+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
213211
final Observer<OnItemClickEvent> observer = mock(Observer.class);
214212
final Subscription subscription = observable.subscribe(new TestObserver<OnItemClickEvent>(observer));
215213

@@ -223,7 +221,7 @@ private void performTestAdapterViewNeverEmitEventBeforeSubscribed(AdapterView<?
223221
private void performTestAdapterViewClickAllViewsEmitAllEvents(AdapterView<? extends Adapter> adapterView) {
224222
Adapter adapter = adapterView.getAdapter();
225223
Assert.assertNotNull(adapter);
226-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
224+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
227225
final Observer<OnItemClickEvent> observer = mock(Observer.class);
228226
final Subscription subscription = observable.subscribe(new TestObserver<OnItemClickEvent>(observer));
229227

@@ -241,7 +239,7 @@ private void performTestAdapterViewClickAllViewsEmitAllEvents(AdapterView<? exte
241239
private void performTestAdapterViewNeverEmitEventAfterUnsubscribed(AdapterView<? extends Adapter> adapterView) {
242240
Adapter adapter = adapterView.getAdapter();
243241
Assert.assertNotNull(adapter);
244-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
242+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
245243
final Observer<OnItemClickEvent> observer = mock(Observer.class);
246244
final Subscription subscription = observable.subscribe(new TestObserver<OnItemClickEvent>(observer));
247245

@@ -256,7 +254,7 @@ private void performTestAdapterViewNeverEmitEventAfterUnsubscribed(AdapterView<?
256254
private void performTestAdapterViewNeverEmitAnyThrowableAfterUnsubscribed(AdapterView<? extends Adapter> adapterView) {
257255
Adapter adapter = adapterView.getAdapter();
258256
Assert.assertNotNull(adapter);
259-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
257+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
260258
final Observer<OnItemClickEvent> observer = mock(Observer.class);
261259
final Subscription subscription = observable.subscribe(new TestObserver<OnItemClickEvent>(observer));
262260

@@ -270,7 +268,7 @@ private void performTestAdapterViewNeverEmitAnyThrowableAfterUnsubscribed(Adapte
270268
private void performTestAdapterViewNeverEmitOnCompletedAfterUnsubscribed(AdapterView<? extends Adapter> adapterView) {
271269
Adapter adapter = adapterView.getAdapter();
272270
Assert.assertNotNull(adapter);
273-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
271+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
274272
final Observer<OnItemClickEvent> observer = mock(Observer.class);
275273
final Subscription subscription = observable.subscribe(new TestObserver<OnItemClickEvent>(observer));
276274

@@ -284,7 +282,7 @@ private void performTestAdapterViewNeverEmitOnCompletedAfterUnsubscribed(Adapter
284282
private void performTestAdapterViewMultipleSubscriptionsNeverEmitEventBeforeSubscribed(AdapterView<? extends Adapter> adapterView) {
285283
Adapter adapter = adapterView.getAdapter();
286284
Assert.assertNotNull(adapter);
287-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
285+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
288286
final Observer<OnItemClickEvent> observer1 = mock(Observer.class);
289287
final Observer<OnItemClickEvent> observer2 = mock(Observer.class);
290288
final Subscription subscription1 = observable.subscribe(new TestObserver<OnItemClickEvent>(observer1));
@@ -304,7 +302,7 @@ private void performTestAdapterViewMultipleSubscriptionsNeverEmitEventBeforeSubs
304302
private void performTestAdapterViewMultipleSubscriptionsClickAllViewsEmitAllEvents(AdapterView<? extends Adapter> adapterView) {
305303
Adapter adapter = adapterView.getAdapter();
306304
Assert.assertNotNull(adapter);
307-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
305+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
308306
final Observer<OnItemClickEvent> observer1 = mock(Observer.class);
309307
final Observer<OnItemClickEvent> observer2 = mock(Observer.class);
310308
final Subscription subscription1 = observable.subscribe(new TestObserver<OnItemClickEvent>(observer1));
@@ -328,7 +326,7 @@ private void performTestAdapterViewMultipleSubscriptionsClickAllViewsEmitAllEven
328326
private void performTestAdapterViewMultipleSubscriptionsClickAllViewsEmitAllEventsForOneSubscriber(AdapterView<? extends Adapter> adapterView) {
329327
Adapter adapter = adapterView.getAdapter();
330328
Assert.assertNotNull(adapter);
331-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
329+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
332330
final Observer<OnItemClickEvent> observer1 = mock(Observer.class);
333331
final Observer<OnItemClickEvent> observer2 = mock(Observer.class);
334332
final Subscription subscription1 = observable.subscribe(new TestObserver<OnItemClickEvent>(observer1));
@@ -355,7 +353,7 @@ private void performTestAdapterViewMultipleSubscriptionsClickAllViewsEmitAllEven
355353
private void performTestAdapterViewMultipleSubscriptionsNeverEmitEventAfterUnsubscribed(AdapterView<? extends Adapter> adapterView) {
356354
Adapter adapter = adapterView.getAdapter();
357355
Assert.assertNotNull(adapter);
358-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
356+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
359357
final Observer<OnItemClickEvent> observer1 = mock(Observer.class);
360358
final Observer<OnItemClickEvent> observer2 = mock(Observer.class);
361359
final Subscription subscription1 = observable.subscribe(new TestObserver<OnItemClickEvent>(observer1));
@@ -375,7 +373,7 @@ private void performTestAdapterViewMultipleSubscriptionsNeverEmitEventAfterUnsub
375373
private void performTestAdapterViewMultipleSubscriptionsNeverEmitAnyThrowableAfterUnsubscribed(AdapterView<? extends Adapter> adapterView) {
376374
Adapter adapter = adapterView.getAdapter();
377375
Assert.assertNotNull(adapter);
378-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
376+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
379377
final Observer<OnItemClickEvent> observer1 = mock(Observer.class);
380378
final Observer<OnItemClickEvent> observer2 = mock(Observer.class);
381379
final Subscription subscription1 = observable.subscribe(new TestObserver<OnItemClickEvent>(observer1));
@@ -395,7 +393,7 @@ private void performTestAdapterViewMultipleSubscriptionsNeverEmitAnyThrowableAft
395393
private void performTestAdapterViewMultipleSubscriptionsNeverEmitOnCompletedAfterUnsubscribed(AdapterView<? extends Adapter> adapterView) {
396394
Adapter adapter = adapterView.getAdapter();
397395
Assert.assertNotNull(adapter);
398-
final Observable<OnItemClickEvent> observable = ViewObservable.itemClicks(adapterView);
396+
final Observable<OnItemClickEvent> observable = WidgetObservable.itemClicks(adapterView);
399397
final Observer<OnItemClickEvent> observer1 = mock(Observer.class);
400398
final Observer<OnItemClickEvent> observer2 = mock(Observer.class);
401399
final Subscription subscription1 = observable.subscribe(new TestObserver<OnItemClickEvent>(observer1));

rxandroid/src/test/java/rx/android/widget/OperatorCompoundButtonInputTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import rx.Observer;
2626
import rx.Subscription;
2727
import rx.android.view.OnCheckedChangeEvent;
28-
import rx.android.view.ViewObservable;
2928
import rx.observers.TestObserver;
3029

3130
import static org.mockito.Mockito.*;
@@ -48,7 +47,7 @@ private static CompoundButton mkCompoundButton(final boolean value) {
4847
@SuppressWarnings("unchecked")
4948
public void testWithoutInitialValue() {
5049
final CompoundButton button = mkCompoundButton(true);
51-
final Observable<OnCheckedChangeEvent> observable = ViewObservable.input(button, false);
50+
final Observable<OnCheckedChangeEvent> observable = WidgetObservable.input(button, false);
5251
final Observer<OnCheckedChangeEvent> observer = mock(Observer.class);
5352
final Subscription subscription = observable.subscribe(new TestObserver<OnCheckedChangeEvent>(observer));
5453

@@ -80,7 +79,7 @@ public void testWithoutInitialValue() {
8079
@SuppressWarnings("unchecked")
8180
public void testWithInitialValue() {
8281
final CompoundButton button = mkCompoundButton(true);
83-
final Observable<OnCheckedChangeEvent> observable = ViewObservable.input(button, true);
82+
final Observable<OnCheckedChangeEvent> observable = WidgetObservable.input(button, true);
8483
final Observer<OnCheckedChangeEvent> observer = mock(Observer.class);
8584
final Subscription subscription = observable.subscribe(new TestObserver<OnCheckedChangeEvent>(observer));
8685

@@ -112,7 +111,7 @@ public void testWithInitialValue() {
112111
@SuppressWarnings("unchecked")
113112
public void testMultipleSubscriptions() {
114113
final CompoundButton button = mkCompoundButton(false);
115-
final Observable<OnCheckedChangeEvent> observable = ViewObservable.input(button, false);
114+
final Observable<OnCheckedChangeEvent> observable = WidgetObservable.input(button, false);
116115

117116
final Observer<OnCheckedChangeEvent> observer1 = mock(Observer.class);
118117
final Observer<OnCheckedChangeEvent> observer2 = mock(Observer.class);

0 commit comments

Comments
 (0)