diff --git a/app/src/main/java/org/ntlab/developrx/JavaMainActivity.java b/app/src/main/java/org/ntlab/developrx/JavaMainActivity.java index ac684e7..b029fc4 100644 --- a/app/src/main/java/org/ntlab/developrx/JavaMainActivity.java +++ b/app/src/main/java/org/ntlab/developrx/JavaMainActivity.java @@ -24,6 +24,7 @@ findViewById(R.id.error_btn).setOnClickListener(view -> rxProcess.error()); findViewById(R.id.map_btn).setOnClickListener(view -> rxProcess.map()); findViewById(R.id.empty_btn).setOnClickListener(view -> rxProcess.empy()); - findViewById(R.id.flatmap_btn).setOnClickListener(view -> rxProcess.flatmap()); + findViewById(R.id.flatmap_1_btn).setOnClickListener(view -> rxProcess.flatmap1()); + findViewById(R.id.flatmap_2_btn).setOnClickListener(view -> rxProcess.flatmap2()); } } diff --git a/app/src/main/java/org/ntlab/developrx/JavaRxProcess.java b/app/src/main/java/org/ntlab/developrx/JavaRxProcess.java index aeca684..49a8d1e 100644 --- a/app/src/main/java/org/ntlab/developrx/JavaRxProcess.java +++ b/app/src/main/java/org/ntlab/developrx/JavaRxProcess.java @@ -193,7 +193,7 @@ /** * 受け取ったデータをFlowable/Observableに変換し、そのFlowable/Obsevableが持つデータを通知する */ - public void flatmap() { + public void flatmap1() { Flowable flowable = Flowable.just("A", "", "B", "", "C") .flatMap(data -> { if (data.isEmpty()) { @@ -204,4 +204,13 @@ }); flowable.subscribe(new DebugSubscriber<>()); } + + public void flatmap2() { + Flowable flowable = Flowable.range(1, 3) + .flatMap( + data -> Flowable.interval(100L, TimeUnit.MILLISECONDS).take(3), + (sourceData, newData) -> "[" + sourceData + "] " + newData + ); + flowable.subscribe(new DebugSubscriber<>()); + } } diff --git a/app/src/main/res/layout/activity_main_java.xml b/app/src/main/res/layout/activity_main_java.xml index 9f3b624..53f4a00 100644 --- a/app/src/main/res/layout/activity_main_java.xml +++ b/app/src/main/res/layout/activity_main_java.xml @@ -91,13 +91,21 @@ app:layout_constraintTop_toBottomOf="@id/map_btn" />