99import android .view .View ;
1010import android .view .ViewGroup ;
1111import android .widget .ArrayAdapter ;
12+ import android .widget .EditText ;
1213import android .widget .ListView ;
1314import butterknife .ButterKnife ;
1415import butterknife .InjectView ;
15- import butterknife .OnTextChanged ;
1616import java .util .ArrayList ;
1717import java .util .List ;
1818import java .util .concurrent .TimeUnit ;
19+ import rx .Observable ;
1920import rx .Observer ;
2021import rx .Subscription ;
2122import rx .android .schedulers .AndroidSchedulers ;
23+ import rx .android .widget .OnTextChangeEvent ;
24+ import rx .android .widget .WidgetObservable ;
2225import rx .schedulers .Schedulers ;
23- import rx .subjects .PublishSubject ;
2426import timber .log .Timber ;
2527
28+ import static java .lang .String .format ;
2629import 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