1010import android .os .Bundle ;
1111import android .util .Log ;
1212import android .widget .Button ;
13+ import android .widget .TextView ;
1314import android .widget .Toast ;
1415import butterknife .ButterKnife ;
1516import butterknife .InjectView ;
@@ -27,6 +28,11 @@ public class SampleActivityObservableTransfor extends Activity {
2728
2829 private static final String LOG_TAG = "SampleActivityObservableTransfor" ;
2930
31+ private static final String SEPARATOR = " " ;
32+
33+ @ InjectView (R .id .tv_streamOriginalOrder ) TextView tv_streamOriginalOrder ;
34+ @ InjectView (R .id .tv_flatMapResult ) TextView tv_flatMapResult ;
35+ @ InjectView (R .id .tv_concatMapResult ) TextView tv_concatMapResult ;
3036 @ InjectView (R .id .btn_flatMap ) Button btn_flatMap ;
3137 @ InjectView (R .id .btn_concatMap ) Button btn_concatMap ;
3238
@@ -52,6 +58,7 @@ protected void onCreate(Bundle savedInstanceState) {
5258
5359 ButterKnife .inject (this );
5460 initialize ();
61+ populateData ();
5562 }
5663
5764 @ Override
@@ -66,12 +73,12 @@ private void initialize() {
6673 }
6774
6875 @ OnClick (R .id .btn_flatMap ) void onFlatMapClick () {
69- this . buildNumbersObservable (). flatMap ( SQUARE_OF_NUMBER ). subscribe ( new Observer <Integer >() {
70- final StringBuilder stringBuilder = new StringBuilder (10 );
76+ final Observer < Integer > observer = new Observer <Integer >() {
77+ final StringBuilder stringBuilder = new StringBuilder (40 );
7178
7279 @ Override public void onNext (Integer number ) {
7380 stringBuilder .append (number );
74- stringBuilder .append (Character . SPACE_SEPARATOR );
81+ stringBuilder .append (SEPARATOR );
7582 debugLog ("onFlatMapClick() ------>>>> " + number );
7683 }
7784
@@ -84,16 +91,19 @@ private void initialize() {
8491 @ Override public void onError (Throwable e ) {
8592 // handle the exception
8693 }
87- });
94+ };
95+
96+ this .buildNumbersObservable ().flatMap (SQUARE_OF_NUMBER )
97+ .observeOn (AndroidSchedulers .mainThread ()).subscribe (observer );
8898 }
8999
90100 @ OnClick (R .id .btn_concatMap ) void onConcatMapClick () {
91- this . buildNumbersObservable (). concatMap ( SQUARE_OF_NUMBER ). subscribe ( new Observer <Integer >() {
92- final StringBuilder stringBuilder = new StringBuilder (10 );
101+ final Observer < Integer > observer = new Observer <Integer >() {
102+ final StringBuilder stringBuilder = new StringBuilder (40 );
93103
94104 @ Override public void onNext (Integer number ) {
95105 stringBuilder .append (number );
96- stringBuilder .append (Character . SPACE_SEPARATOR );
106+ stringBuilder .append (SEPARATOR );
97107 debugLog ("onConcatMapClick() ------>>>> " + number );
98108 }
99109
@@ -106,11 +116,14 @@ private void initialize() {
106116 @ Override public void onError (Throwable e ) {
107117 // handle the exception
108118 }
109- });
119+ };
120+
121+ this .buildNumbersObservable ().concatMap (SQUARE_OF_NUMBER )
122+ .observeOn (AndroidSchedulers .mainThread ()).subscribe (observer );
110123 }
111124
112125 private Observable <Integer > buildNumbersObservable () {
113- return this .dataManager .getNumbers (). subscribeOn ( AndroidSchedulers . mainThread ()) ;
126+ return this .dataManager .getNumbers ();
114127 }
115128
116129 private void showToast (String message ) {
@@ -121,11 +134,20 @@ private void debugLog(String message) {
121134 Log .d (LOG_TAG , message );
122135 }
123136
124- private void printConcatMapResult (String result ) {
125-
137+ private void printFlatMapResult (String result ) {
138+ this . tv_flatMapResult . setText ( result );
126139 }
127140
128- private void printFlatMapResult (String result ) {
141+ private void printConcatMapResult (String result ) {
142+ this .tv_concatMapResult .setText (result );
143+ }
129144
145+ private void populateData () {
146+ StringBuilder stringBuilder = new StringBuilder (15 );
147+ for (int number : dataManager .getNumbersSync ()) {
148+ stringBuilder .append (number );
149+ stringBuilder .append (SEPARATOR );
150+ }
151+ this .tv_streamOriginalOrder .setText (stringBuilder .toString ());
130152 }
131153}
0 commit comments