Skip to content

Commit 517101a

Browse files
author
Kaushik Gopal
committed
refactor: replace Subject with WidgetObservable
1 parent 5c3c31c commit 517101a

File tree

1 file changed

+13
-18
lines changed

1 file changed

+13
-18
lines changed

app/src/main/java/com/morihacky/android/rxjava/SubjectDebounceSearchEmitterFragment.java

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,23 @@
99
import android.view.View;
1010
import android.view.ViewGroup;
1111
import android.widget.ArrayAdapter;
12+
import android.widget.EditText;
1213
import android.widget.ListView;
1314
import butterknife.ButterKnife;
1415
import butterknife.InjectView;
15-
import butterknife.OnTextChanged;
1616
import java.util.ArrayList;
1717
import java.util.List;
1818
import java.util.concurrent.TimeUnit;
19+
import rx.Observable;
1920
import rx.Observer;
2021
import rx.Subscription;
2122
import rx.android.schedulers.AndroidSchedulers;
23+
import rx.android.widget.OnTextChangeEvent;
24+
import rx.android.widget.WidgetObservable;
2225
import rx.schedulers.Schedulers;
23-
import rx.subjects.PublishSubject;
2426
import timber.log.Timber;
2527

28+
import static java.lang.String.format;
2629
import static rx.android.app.AppObservable.bindFragment;
2730

2831
/**
@@ -46,12 +49,12 @@ public class SubjectDebounceSearchEmitterFragment
4649
extends BaseFragment {
4750

4851
@InjectView(R.id.list_threading_log) ListView _logsList;
52+
@InjectView(R.id.input_txt_subject_debounce) EditText _inputSearchText;
4953

5054
private LogAdapter _adapter;
5155
private List<String> _logs;
5256

5357
private Subscription _subscription;
54-
private PublishSubject<String> _searchTextEmitterSubject;
5558

5659
@Override
5760
public void onDestroy() {
@@ -75,27 +78,20 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
7578
super.onActivityCreated(savedInstanceState);
7679
_setupLogger();
7780

78-
_searchTextEmitterSubject = PublishSubject.create();
81+
Observable<OnTextChangeEvent> textChangeObservable = WidgetObservable.text(_inputSearchText);
7982

8083
_subscription = bindFragment(this,//
81-
_searchTextEmitterSubject//
84+
textChangeObservable//
8285
.debounce(400, TimeUnit.MILLISECONDS, Schedulers.io())//
8386
.observeOn(AndroidSchedulers.mainThread()))//
8487
.subscribe(_getSearchObserver());
8588
}
8689

87-
@OnTextChanged(R.id.input_txt_subject_debounce)
88-
public void onTextEntered(CharSequence charsEntered) {
89-
Timber.d("---------- text entered %s", charsEntered);
90-
_searchTextEmitterSubject.onNext(charsEntered.toString());
91-
}
92-
9390
// -----------------------------------------------------------------------------------
9491
// Main Rx entities
9592

96-
private Observer<String> _getSearchObserver() {
97-
return new Observer<String>() {
98-
93+
private Observer<OnTextChangeEvent> _getSearchObserver() {
94+
return new Observer<OnTextChangeEvent>() {
9995
@Override
10096
public void onCompleted() {
10197
Timber.d("--------- onComplete");
@@ -104,13 +100,12 @@ public void onCompleted() {
104100
@Override
105101
public void onError(Throwable e) {
106102
Timber.e(e, "--------- Woops on error!");
107-
_log(String.format("Dang error. check your logs"));
103+
_log("Dang error. check your logs");
108104
}
109105

110106
@Override
111-
public void onNext(String searchText) {
112-
_log(String.format("onNext You searched for %s", searchText));
113-
onCompleted();
107+
public void onNext(OnTextChangeEvent onTextChangeEvent) {
108+
_log(format("onNext You searched for %s", onTextChangeEvent.text().toString()));
114109
}
115110
};
116111
}

0 commit comments

Comments
 (0)