4. var page = 1 var isLoading = false var hasBeenReachedPageEnd = false var isInitialLoading = true fun showData(data: Data) { page++ hasBeenReachedPageEnd = checkPageEnd(data) adapter.setDataAndNotifyChanged(data) } if (!isLoading && !hasBeenReachedPageEnd) { repository .getData() .subscribe(object: Observer { override fun onNext(data: Data) { showData(data) } override fun onStart() { isLoading =