Skip to content

Commit d888cfe

Browse files
committed
fix #18: updated recycler view to 1.2.0. Deprecated older declarative extensions. Implemented Maven Central publishing. Dropped Bintray.
1 parent e2671fe commit d888cfe

File tree

13 files changed

+106
-111
lines changed

13 files changed

+106
-111
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Recycler Adapter [ ![Download](https://api.bintray.com/packages/gotev/maven/recycler-adapter/images/download.svg) ](https://bintray.com/gotev/maven/recycler-adapter/_latestVersion) [ ![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.gotev/recycleradapter/badge.svg) ](https://search.maven.org/search?q=g:net.gotev)
1+
# Recycler Adapter [ ![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.gotev/recycleradapter/badge.svg) ](https://search.maven.org/search?q=g:net.gotev)
22
#### [Latest version Release Notes and Demo App](https://github.com/gotev/recycler-adapter/releases/latest)
33

44
RecyclerView-driven declarative UIs.
@@ -62,7 +62,7 @@ def recyclerAdapterVersion = "x.y.z" // change it with the version you want to u
6262
implementation "net.gotev:recycleradapter:$recyclerAdapterVersion"
6363
implementation "net.gotev:recycleradapter-extensions:$recyclerAdapterVersion"
6464
```
65-
This is the latest version: [ ![Download](https://api.bintray.com/packages/gotev/maven/recycler-adapter/images/download.svg) ](https://bintray.com/gotev/maven/recycler-adapter/_latestVersion)
65+
This is the latest version: [ ![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.gotev/recycleradapter/badge.svg) ](https://search.maven.org/search?q=g:net.gotev)
6666

6767
## <a name="basicTutorial"></a>Basic usage tutorial
6868
### 1. Declare the RecyclerView

app/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ buildscript {
1515

1616
//classpath dependencies to import library project
1717
classpath "com.github.ben-manes:gradle-versions-plugin:$gradle_versions_plugin_version"
18-
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:$bintray_plugin_version"
1918
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
2019

2120
// NOTE: Do not place your application dependencies here; they belong

build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ buildscript {
1313
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1414
classpath "com.android.tools.build:gradle:$gradle_version"
1515
classpath "com.github.ben-manes:gradle-versions-plugin:$gradle_versions_plugin_version"
16-
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:$bintray_plugin_version"
1716

1817
// NOTE: Do not place your application dependencies here; they belong
1918
// in the individual module build.gradle files

manifest.gradle

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,19 @@ ext {
66

77
maintainer = 'Aleksandar Gotev'
88

9-
bintray_project_name = 'recycler-adapter'
10-
library_description = 'Easily create a RecyclerView Adapter'
11-
library_keywords = ['android', 'recycler', 'recyclerview', 'adapter', 'fast', 'easy']
129
library_licenses = ["Apache-2.0"]
1310
library_licenses_url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
1411
library_project_group = 'net.gotev'
15-
library_version = '3.1.2'
12+
library_version = '3.2.0'
1613
version_code = 5
1714
min_sdk = 21
1815
target_sdk = 29
1916
demo_app_id = 'net.gotev.recycleradapterdemo'
2017

2118
// Gradle classpath dependencies versions
2219
kotlin_version = '1.4.10'
23-
gradle_version = '4.1.2'
20+
gradle_version = '4.1.3'
2421
gradle_versions_plugin_version = '0.20.0'
25-
bintray_plugin_version = '1.8.4'
2622

2723
// Library and app testing dependencies versions
2824
junit_version = '4.13'
@@ -35,7 +31,7 @@ ext {
3531
androidx_test_espresso_version = '3.3.0'
3632

3733
// Library and app dependencies versions
38-
androidx_recyclerview_version = '1.1.0'
34+
androidx_recyclerview_version = '1.2.0'
3935
androidx_appcompat_version = '1.0.2'
4036

4137
// App dependencies

recycleradapter-extensions/build.gradle

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,16 @@
11
apply plugin: 'com.android.library'
22
apply plugin: 'kotlin-android'
3-
apply plugin: 'com.jfrog.bintray'
43
apply plugin: 'com.github.ben-manes.versions'
54

6-
Properties properties = new Properties()
7-
if (project.rootProject.file("local.properties").exists()) {
8-
properties.load(project.rootProject.file('local.properties').newDataInputStream())
9-
}
10-
11-
// start - module specific overrides of default values written in manifest.gradle
12-
def bintray_project_name = "recycler-adapter-extensions"
13-
def library_description = "RecyclerAdapter Extensions"
14-
def library_keywords = ['android', 'recycler', 'recyclerview', 'adapter', 'extensions', 'fast', 'easy']
15-
// end - module specific overrides
16-
175
// start - do not modify this if your project is on github
186
project.ext{
19-
mavDevelopers = [(properties.getProperty("bintray.user")):(maintainer)]
7+
mavDevelopers = [(github_username):(maintainer)]
208
mavSiteUrl = "https://github.com/${github_username}/${github_repository_name}"
219
mavGitUrl = mavSiteUrl + '.git'
2210
bugTrackerUrl = mavSiteUrl + '/issues/'
23-
mavProjectName = bintray_project_name
11+
mavProjectName = "recycler-adapter-extensions"
2412
mavLibraryLicenses = ["Apache-2.0": 'http://www.apache.org/licenses/LICENSE-2.0.txt']
25-
mavLibraryDescription = library_description
13+
mavLibraryDescription = "RecyclerAdapter Extensions"
2614
mavVersion = library_version
2715
}
2816
// end - do not modify this if your project is on github
@@ -84,22 +72,4 @@ dependencies {
8472

8573
}
8674

87-
bintray {
88-
user = properties.getProperty("bintray.user")
89-
key = properties.getProperty("bintray.apikey")
90-
publications = ['mavenPublish']
91-
pkg {
92-
repo = "maven"
93-
name = mavProjectName
94-
desc = library_description
95-
websiteUrl = mavSiteUrl
96-
vcsUrl = mavGitUrl
97-
issueTrackerUrl = bugTrackerUrl
98-
licenses = library_licenses
99-
labels = library_keywords
100-
publicDownloadNumbers = true
101-
publish = true
102-
}
103-
}
104-
10575
apply from: 'https://raw.githubusercontent.com/sky-uk/gradle-maven-plugin/master/gradle-mavenizer.gradle'

recycleradapter-extensions/src/main/java/net/gotev/recycleradapter/ext/DeclarativeExtensions.kt

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ import kotlin.collections.ArrayList
1010

1111
typealias AdapterItems = ArrayList<AdapterItem<*>>
1212

13+
@Deprecated(
14+
message = "use renderableItems{ }.toAdapter() instead",
15+
level = DeprecationLevel.WARNING,
16+
replaceWith = ReplaceWith("renderableItems")
17+
)
1318
fun createRecyclerAdapterWith(vararg items: AdapterItem<*>?): RecyclerAdapter {
1419
return RecyclerAdapter().apply {
1520
val filtered = items.filterNotNull()
@@ -19,6 +24,11 @@ fun createRecyclerAdapterWith(vararg items: AdapterItem<*>?): RecyclerAdapter {
1924
}
2025
}
2126

27+
@Deprecated(
28+
message = "use renderableItems{ }.toAdapter() instead",
29+
level = DeprecationLevel.WARNING,
30+
replaceWith = ReplaceWith("renderableItems")
31+
)
2232
fun createRecyclerAdapterWith(list: List<AdapterItem<*>?>?): RecyclerAdapter {
2333
return RecyclerAdapter().apply {
2434
val filtered = list?.filterNotNull() ?: emptyList()
@@ -28,6 +38,11 @@ fun createRecyclerAdapterWith(list: List<AdapterItem<*>?>?): RecyclerAdapter {
2838
}
2939
}
3040

41+
@Deprecated(
42+
message = "use renderableItems{ } instead",
43+
level = DeprecationLevel.WARNING,
44+
replaceWith = ReplaceWith("renderableItems")
45+
)
3146
fun listOfAdapterItems(vararg items: AdapterItem<*>?): AdapterItems {
3247
return if (items.isEmpty()) {
3348
ArrayList(1)
@@ -36,6 +51,11 @@ fun listOfAdapterItems(vararg items: AdapterItem<*>?): AdapterItems {
3651
}
3752
}
3853

54+
@Deprecated(
55+
message = "use renderableItems{ +itemToAdd(..) } instead",
56+
level = DeprecationLevel.WARNING,
57+
replaceWith = ReplaceWith("renderableItems")
58+
)
3959
fun AdapterItems.adding(item: AdapterItem<*>?): AdapterItems {
4060
return if (item == null) {
4161
this
@@ -44,34 +64,75 @@ fun AdapterItems.adding(item: AdapterItem<*>?): AdapterItems {
4464
}
4565
}
4666

67+
@Deprecated(
68+
message = "use renderableItems{ } instead",
69+
level = DeprecationLevel.WARNING,
70+
replaceWith = ReplaceWith("renderableItems")
71+
)
4772
fun adapterItems(vararg items: AdapterItem<*>?): AdapterItems {
4873
return ArrayList(listOfNotNull(*items))
4974
}
5075

76+
@Deprecated(
77+
message = "use renderableItems{ } instead",
78+
level = DeprecationLevel.WARNING,
79+
replaceWith = ReplaceWith("renderableItems")
80+
)
5181
inline fun <T> Iterable<T>.mapItems(transform: (T) -> AdapterItem<*>?): Array<AdapterItem<*>> {
5282
return mapNotNull(transform).toTypedArray()
5383
}
5484

85+
@Deprecated(
86+
message = "use renderableItems{ map.forEach{ (key, value) -> +item(..) } } instead",
87+
level = DeprecationLevel.WARNING,
88+
replaceWith = ReplaceWith("renderableItems")
89+
)
5590
inline fun <K, V> Map<out K, V>.mapToManyAdapterItems(transform: (Map.Entry<K, V>) -> List<AdapterItem<*>>): Array<AdapterItem<*>> {
5691
return map(transform).flatten().toTypedArray()
5792
}
5893

94+
@Deprecated(
95+
message = "use renderableItems{ array.forEach{ +item(..) } } instead",
96+
level = DeprecationLevel.WARNING,
97+
replaceWith = ReplaceWith("renderableItems")
98+
)
5999
inline fun <T> Array<T>.mapToManyAdapterItems(transform: (T) -> List<AdapterItem<*>>): Array<AdapterItem<*>> {
60100
return map(transform).flatten().toTypedArray()
61101
}
62102

103+
@Deprecated(
104+
message = "use renderableItems{ iterable.forEach{ +item(..) } } instead",
105+
level = DeprecationLevel.WARNING,
106+
replaceWith = ReplaceWith("renderableItems")
107+
)
63108
inline fun <T> Iterable<T>.mapToManyAdapterItems(transform: (T) -> List<AdapterItem<*>>): Array<AdapterItem<*>> {
64109
return map(transform).flatten().toTypedArray()
65110
}
66111

112+
@Deprecated(
113+
message = "use renderableItems{ }.toAdapter() instead",
114+
level = DeprecationLevel.WARNING,
115+
replaceWith = ReplaceWith("renderableItems")
116+
)
117+
@Suppress("DEPRECATION")
67118
inline fun <T> Iterable<T>.createRecyclerAdapterByMapping(transform: (T) -> AdapterItem<*>?): RecyclerAdapter {
68119
return RecyclerAdapter().add(mapToAdapterItems(transform))
69120
}
70121

122+
@Deprecated(
123+
message = "use renderableItems{ iterable.forEach{ +item(..) } } instead",
124+
level = DeprecationLevel.WARNING,
125+
replaceWith = ReplaceWith("renderableItems")
126+
)
71127
inline fun <T> Iterable<T>.mapToAdapterItems(transform: (T) -> AdapterItem<*>?): AdapterItems {
72128
return ArrayList(mapNotNull(transform))
73129
}
74130

131+
@Deprecated(
132+
message = "use renderableItems{ array.forEach{ +item(..) } } instead",
133+
level = DeprecationLevel.WARNING,
134+
replaceWith = ReplaceWith("renderableItems")
135+
)
75136
inline fun <T> Array<T>.mapToAdapterItems(transform: (T) -> AdapterItem<*>?): AdapterItems {
76137
return ArrayList(mapNotNull(transform))
77138
}
@@ -115,6 +176,11 @@ fun renderableItems(action: RenderableItems.() -> Unit): RenderableItems {
115176
interface RecyclerAdapterProvider {
116177
val recyclerAdapter: RecyclerAdapter
117178

179+
@Deprecated(
180+
message = "use render(renderableItems) instead",
181+
level = DeprecationLevel.WARNING,
182+
replaceWith = ReplaceWith("render(renderableItems)")
183+
)
118184
fun AdapterItems.render() {
119185
recyclerAdapter.syncWithItems(this)
120186
}
@@ -129,14 +195,25 @@ interface RecyclerAdapterProvider {
129195
recyclerAdapter.syncWithItems(builder.items)
130196
}
131197

198+
@Deprecated(
199+
message = "use render(renderableItems) instead",
200+
level = DeprecationLevel.WARNING,
201+
replaceWith = ReplaceWith("render(renderableItems)")
202+
)
132203
fun render(vararg items: AdapterItem<*>?) {
133204
renderList(items.filterNotNull())
134205
}
135206

207+
@Deprecated(
208+
message = "use render(renderableItems) instead",
209+
level = DeprecationLevel.WARNING,
210+
replaceWith = ReplaceWith("render(renderableItems)")
211+
)
136212
fun render(list: List<AdapterItem<*>?>?) {
137213
renderList(list?.filterNotNull() ?: emptyList())
138214
}
139215

216+
@Suppress("DEPRECATION")
140217
private fun renderList(list: List<AdapterItem<*>>) {
141218
if (list.isEmpty()) {
142219
recyclerAdapter.clear()

recycleradapter-extensions/src/main/java/net/gotev/recycleradapter/ext/RecyclerViewExtensions.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ fun RecyclerView.applySwipeGesture(listener: SwipeListener) {
2727
}
2828

2929
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, swipeDir: Int) {
30-
listener.onItemSwiped(viewHolder.adapterPosition, swipeDir)
30+
listener.onItemSwiped(viewHolder.bindingAdapterPosition, swipeDir)
3131
}
3232
}).attachToRecyclerView(this)
3333
}
@@ -96,8 +96,8 @@ fun RecyclerAdapter.enableDragDrop(recyclerView: RecyclerView, directions: Int =
9696
viewHolder: RecyclerView.ViewHolder,
9797
target: RecyclerView.ViewHolder
9898
): Boolean {
99-
val sourcePosition = viewHolder.adapterPosition
100-
val targetPosition = target.adapterPosition
99+
val sourcePosition = viewHolder.bindingAdapterPosition
100+
val targetPosition = target.bindingAdapterPosition
101101

102102
swap(sourcePosition, targetPosition)
103103

recycleradapter-paging/build.gradle

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,16 @@
11
apply plugin: 'com.android.library'
22
apply plugin: 'kotlin-android'
3-
apply plugin: 'com.jfrog.bintray'
43
apply plugin: 'com.github.ben-manes.versions'
54

6-
Properties properties = new Properties()
7-
if (project.rootProject.file("local.properties").exists()) {
8-
properties.load(project.rootProject.file('local.properties').newDataInputStream())
9-
}
10-
11-
// start - module specific overrides of default values written in manifest.gradle
12-
def bintray_project_name = "recycler-adapter-paging"
13-
def library_description = "RecyclerAdapter Paging"
14-
def library_keywords = ['android', 'recycler', 'recyclerview', 'adapter', 'paging', 'fast', 'easy']
15-
// end - module specific overrides
16-
175
// start - do not modify this if your project is on github
186
project.ext{
19-
mavDevelopers = [(properties.getProperty("bintray.user")):(maintainer)]
7+
mavDevelopers = [(github_username):(maintainer)]
208
mavSiteUrl = "https://github.com/${github_username}/${github_repository_name}"
219
mavGitUrl = mavSiteUrl + '.git'
2210
bugTrackerUrl = mavSiteUrl + '/issues/'
23-
mavProjectName = bintray_project_name
11+
mavProjectName = "recycler-adapter-paging"
2412
mavLibraryLicenses = ["Apache-2.0": 'http://www.apache.org/licenses/LICENSE-2.0.txt']
25-
mavLibraryDescription = library_description
13+
mavLibraryDescription = "RecyclerAdapter Paging"
2614
mavVersion = library_version
2715
}
2816
// end - do not modify this if your project is on github
@@ -86,22 +74,4 @@ dependencies {
8674

8775
}
8876

89-
bintray {
90-
user = properties.getProperty("bintray.user")
91-
key = properties.getProperty("bintray.apikey")
92-
publications = ['mavenPublish']
93-
pkg {
94-
repo = "maven"
95-
name = mavProjectName
96-
desc = library_description
97-
websiteUrl = mavSiteUrl
98-
vcsUrl = mavGitUrl
99-
issueTrackerUrl = bugTrackerUrl
100-
licenses = library_licenses
101-
labels = library_keywords
102-
publicDownloadNumbers = true
103-
publish = true
104-
}
105-
}
106-
10777
apply from: 'https://raw.githubusercontent.com/sky-uk/gradle-maven-plugin/master/gradle-mavenizer.gradle'

recycleradapter-paging/src/main/java/net/gotev/recycleradapter/paging/PagingAdapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class PagingAdapter(
8888
}
8989

9090
override fun getAdapterItem(holder: RecyclerAdapterViewHolder): AdapterItem<*>? {
91-
return getItem(holder.adapterPosition)
91+
return getItem(holder.bindingAdapterPosition)
9292
}
9393

9494
override fun notifyItemChanged(holder: RecyclerAdapterViewHolder) {

0 commit comments

Comments
 (0)