@@ -6,11 +6,9 @@ import android.os.Bundle
6
6
import androidx.appcompat.app.AppCompatActivity
7
7
import androidx.appcompat.widget.AppCompatTextView
8
8
import androidx.lifecycle.AndroidViewModel
9
- import androidx.lifecycle.LiveData
10
- import androidx.lifecycle.Observer
11
9
import androidx.lifecycle.ViewModelProviders
12
- import androidx.paging.LivePagedListBuilder
13
10
import androidx.paging.PagedList
11
+ import androidx.paging.RxPagedListBuilder
14
12
import androidx.recyclerview.widget.LinearLayoutManager
15
13
import androidx.recyclerview.widget.RecyclerView
16
14
import androidx.room.Room
@@ -19,6 +17,9 @@ import com.airbnb.epoxy.EpoxyModel
19
17
import com.airbnb.epoxy.ModelView
20
18
import com.airbnb.epoxy.TextProp
21
19
import com.airbnb.epoxy.paging.PagedListEpoxyController
20
+ import io.reactivex.Observable
21
+ import io.reactivex.android.schedulers.AndroidSchedulers
22
+ import io.reactivex.observers.DisposableObserver
22
23
import kotlinx.coroutines.experimental.CommonPool
23
24
import kotlinx.coroutines.experimental.delay
24
25
import kotlinx.coroutines.experimental.launch
@@ -34,11 +35,24 @@ class PagingSampleActivity : AppCompatActivity() {
34
35
recyclerView.layoutManager = LinearLayoutManager (this )
35
36
recyclerView.adapter = pagingController.adapter
36
37
38
+ val observer = object : DisposableObserver <PagedList <User >>() {
39
+ override fun onNext (pagedList : PagedList <User >) {
40
+ pagingController.submitList(pagedList)
41
+
42
+ }
43
+
44
+ override fun onError (e : Throwable ) {
45
+
46
+ }
47
+
48
+ override fun onComplete () {
49
+ }
50
+ }
51
+
37
52
val viewModel = ViewModelProviders .of(this ).get(ActivityViewModel ::class .java)
38
- viewModel.pagedList.observe(this , Observer {
39
- pagingController.submitList(it)
40
- })
53
+ val subscribe = viewModel.pagedList.subscribeWith(observer)
41
54
}
55
+
42
56
}
43
57
44
58
class TestController : PagedListEpoxyController <User >(
@@ -84,15 +98,18 @@ class PagingView(context: Context) : AppCompatTextView(context) {
84
98
85
99
}
86
100
87
- class ActivityViewModel (app : Application ) : AndroidViewModel(app) {
101
+ class ActivityViewModel (app : Application ) : AndroidViewModel(app) {
88
102
val db by lazy {
89
103
Room .inMemoryDatabaseBuilder(app, PagingDatabase ::class .java).build()
90
104
}
91
- val pagedList : LiveData <PagedList <User >> by lazy {
92
- LivePagedListBuilder <Int , User >(
105
+
106
+ val pagedList: Observable <PagedList <User >> by lazy {
107
+ RxPagedListBuilder <Int , User >(
93
108
db.userDao().dataSource, 100
94
- ).build()
109
+ ).setNotifyScheduler(AndroidSchedulers .from(EpoxyAsyncUtil .getAsyncBackgroundHandler().looper))
110
+ .buildObservable()
95
111
}
112
+
96
113
init {
97
114
bg {
98
115
(1 .. 3000 ).map {
0 commit comments