We have made our API calls reactive, but what about our events? Remember the ToDoAdapter; we took a lambda, used it inside ToDoViewHolder, and created and passed the lambda at TodoListActivity. Quite messy. This should be reactive as well, shouldn't it? So, let's make the events reactive as well.
Subject plays an awesome role in making events reactive. As Subject is a great combination of Observable and Observer, we can use them as Observer inside Adapter and as Observable inside Activity, thus making passing events easy.
So, let's modify the ToDoAdapter as follows:
class ToDoAdapter( private val context:Context, //(1) val onClickTodoSubject:Subject<Pair<View,ToDoModel?>>//(2) ):RecyclerView.Adapter<ToDoAdapter.ToDoViewHolder>() { private val inflater:LayoutInflater =
LayoutInflater...