diff --git a/app/src/main/java/org/ntlab/developrx/JavaMainActivity.java b/app/src/main/java/org/ntlab/developrx/JavaMainActivity.java index cfc7e69..ac684e7 100644 --- a/app/src/main/java/org/ntlab/developrx/JavaMainActivity.java +++ b/app/src/main/java/org/ntlab/developrx/JavaMainActivity.java @@ -23,5 +23,7 @@ findViewById(R.id.timer_btn).setOnClickListener(view -> rxProcess.timer()); 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()); } } diff --git a/app/src/main/java/org/ntlab/developrx/JavaRxProcess.java b/app/src/main/java/org/ntlab/developrx/JavaRxProcess.java index 02d8c3e..aeca684 100644 --- a/app/src/main/java/org/ntlab/developrx/JavaRxProcess.java +++ b/app/src/main/java/org/ntlab/developrx/JavaRxProcess.java @@ -182,4 +182,26 @@ .map(data -> data.toLowerCase()); flowable.subscribe(new DebugSubscriber<>()); } + + /** + * からのFlowable/Observableを生成する + */ + public void empy() { + Flowable.empty().subscribe(new DebugSubscriber<>()); + } + + /** + * 受け取ったデータをFlowable/Observableに変換し、そのFlowable/Obsevableが持つデータを通知する + */ + public void flatmap() { + Flowable flowable = Flowable.just("A", "", "B", "", "C") + .flatMap(data -> { + if (data.isEmpty()) { + return Flowable.empty(); + } else { + return Flowable.just(data.toUpperCase()); + } + }); + 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 29157da..9f3b624 100644 --- a/app/src/main/res/layout/activity_main_java.xml +++ b/app/src/main/res/layout/activity_main_java.xml @@ -82,6 +82,22 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/error_btn" /> +