Skip to content

Commit 5aa04f7

Browse files
committed
added binding adapter to set recyclerview
1 parent cbc7cd9 commit 5aa04f7

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

.idea/compiler.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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

Comments
 (0)