1
+ package com.yogeshpaliyal.universal_adapter.extensions
2
+
3
+ import androidx.annotation.LayoutRes
4
+ import androidx.databinding.BindingAdapter
5
+ import androidx.lifecycle.LifecycleOwner
6
+ import androidx.recyclerview.widget.RecyclerView
7
+ import com.yogeshpaliyal.universal_adapter.adapter.UniversalAdapterViewType
8
+ import com.yogeshpaliyal.universal_adapter.adapter.UniversalRecyclerAdapter
9
+ import com.yogeshpaliyal.universal_adapter.utils.Resource
10
+ import java.util.*
11
+
12
+
13
+ @BindingAdapter(" recycler_adapter" )
14
+ fun RecyclerView.setRecyclerAdapter (adapter : RecyclerView .Adapter <* >) {
15
+ this .adapter = adapter
16
+ }
17
+
18
+
19
+ @BindingAdapter(value = [" lifecycleOwner" , " data" , " item_layout" , " loading_layout" , " error_layout" , " load_more_layout" , " no_data_layout" , " item_listener" , " error_listener" , " no_data_listener" ])
20
+ fun <T > RecyclerView.setRecyclerAdapter (
21
+ lifecycleOwner : LifecycleOwner ? ,
22
+ data : Resource <List <T >>? ,
23
+ @LayoutRes itemLayout : Int ,
24
+ @LayoutRes loadingLayout : Int? ,
25
+ @LayoutRes errorLayout : Int? ,
26
+ @LayoutRes loadMoreLayout : Int? ,
27
+ @LayoutRes noDataLayout : Int? ,
28
+ itemListener : Any? ,
29
+ errorListener : Any? ,
30
+ noDataListener : Any?
31
+ ) {
32
+ val tempAdapter = UniversalRecyclerAdapter .Builder (
33
+ lifecycleOwner = lifecycleOwner, data = data,
34
+ content = UniversalAdapterViewType .Content (itemLayout, itemListener),
35
+ loading = UniversalAdapterViewType .Loading (loadingLayout),
36
+ loadingFooter = UniversalAdapterViewType .LoadingFooter (loadMoreLayout),
37
+ error = UniversalAdapterViewType .Error (errorLayout, errorListener),
38
+ noData = UniversalAdapterViewType .NoData (noDataLayout,noDataListener)
39
+ ).build()
40
+ adapter = tempAdapter.getAdapter()
41
+ }
0 commit comments