Skip to content

Commit f6ef344

Browse files
committed
Add groupie-ktx module for extension functions
1 parent 635b727 commit f6ef344

8 files changed

Lines changed: 122 additions & 3 deletions

File tree

library-groupie-ktx/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

library-groupie-ktx/build.gradle

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
apply plugin: 'com.android.library'
2+
apply plugin: 'kotlin-android'
3+
apply plugin: 'maven-publish'
4+
5+
6+
archivesBaseName = 'groupie-ktx'
7+
8+
9+
android {
10+
compileSdkVersion rootProject.sdkVersion
11+
12+
13+
defaultConfig {
14+
minSdkVersion rootProject.minimumSdkVersion
15+
targetSdkVersion rootProject.sdkVersion
16+
versionCode 20
17+
versionName "1.0"
18+
}
19+
20+
signingConfigs {
21+
release {
22+
}
23+
}
24+
buildTypes {
25+
release {
26+
signingConfig signingConfigs.release
27+
minifyEnabled false
28+
}
29+
}
30+
31+
}
32+
33+
dependencies {
34+
implementation project(':library')
35+
implementation "androidx.recyclerview:recyclerview:1.2.1"
36+
}
37+
38+
tasks.withType(Javadoc).all {
39+
enabled = false
40+
}
41+
42+
43+
group = "com.github.lisawray.groupie"
44+
version = "2.10.1"
45+
46+
task javadoc(type: Javadoc) {
47+
configurations.implementation.canBeResolved(true)
48+
configurations.api.canBeResolved(true)
49+
50+
failOnError false
51+
52+
source = android.sourceSets.main.java.srcDirs
53+
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
54+
//destinationDir = file("../javadoc/")
55+
classpath += configurations.api
56+
}
57+
58+
task sourcesJar(type: Jar) {
59+
from android.sourceSets.main.java.srcDirs
60+
archiveClassifier = "sources"
61+
}
62+
63+
task javadocJar(type: Jar, dependsOn: javadoc) {
64+
classifier = 'javadoc'
65+
from javadoc.destinationDir
66+
}
67+
68+
artifacts {
69+
archives sourcesJar
70+
archives javadocJar
71+
}
72+
73+
// Because the components are created only during the afterEvaluate phase, you must
74+
// configure your publications using the afterEvaluate() lifecycle method.
75+
afterEvaluate {
76+
publishing {
77+
publications {
78+
// Creates a Maven publication called "release".
79+
release(MavenPublication) {
80+
// Applies the component for the release build variant.
81+
from components.release
82+
artifact(sourcesJar)
83+
84+
// You can then customize attributes of the publication as shown below.
85+
groupId = 'com.github.lisawray.groupie'
86+
artifactId = 'groupie-ktx'
87+
version = '2.10.1'
88+
89+
pom.withXml {
90+
def dependenciesNode = (asNode().get("dependencies") as groovy.util.NodeList).get(0) as groovy.util.Node
91+
def configurationNames = ["implementation", "api"]
92+
93+
configurationNames.forEach { configurationName ->
94+
configurations[configurationName].allDependencies.forEach {
95+
if (it.group != null && it.version != "unspecified") {
96+
def dependencyNode = dependenciesNode.appendNode("dependency")
97+
dependencyNode.appendNode("groupId", it.group)
98+
dependencyNode.appendNode("artifactId", it.name)
99+
dependencyNode.appendNode("version", it.version)
100+
// dependencyNode.appendNode("scope", configurationName)
101+
}
102+
}
103+
}
104+
}
105+
}
106+
}
107+
}
108+
}
109+
110+
111+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
POM_NAME=groupie-ktx
2+
POM_DESCRIPTION=Library to help with complex RecyclerViews
3+
POM_BINTRAY_NAME=groupie-ktx
4+
POM_ARTIFACT_ID=groupie-ktx
5+
POM_PACKAGING=aar
6+
POM_VERSION=2.10.1
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
package="com.xwray.groupie.groupie-ktx" />

library-kotlin-android-extensions/src/main/java/com/xwray/groupie/groupiex/GroupAdapterExt.kt renamed to library-groupie-ktx/src/main/java/com/xwray/groupie/groupiex/GroupAdapterExt.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import com.xwray.groupie.Group
44
import com.xwray.groupie.GroupAdapter
55
import com.xwray.groupie.GroupieViewHolder
66

7-
// TODO(zhuinden): move this into its own artifact later: `groupiex` (or rather, `groupie-ktx`)
87
operator fun GroupAdapter<out GroupieViewHolder>.plusAssign(element: Group) = this.add(element)
98
operator fun GroupAdapter<out GroupieViewHolder>.plusAssign(groups: Collection<Group>) = this.addAll(groups)
109
operator fun GroupAdapter<out GroupieViewHolder>.minusAssign(element: Group) = this.remove(element)

library-kotlin-android-extensions/src/main/java/com/xwray/groupie/groupiex/SectionExt.kt renamed to library-groupie-ktx/src/main/java/com/xwray/groupie/groupiex/SectionExt.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.xwray.groupie.groupiex
33
import com.xwray.groupie.Group
44
import com.xwray.groupie.Section
55

6-
// TODO(zhuinden): move this into its own artifact later: `groupiex` (or rather, `groupie-ktx`)
76
operator fun Section.plusAssign(element: Group) = this.add(element)
87
operator fun Section.plusAssign(groups: Collection<Group>) = this.addAll(groups)
98
operator fun Section.minusAssign(element: Group) = this.remove(element)

library-kotlin-android-extensions/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ android {
3939

4040
dependencies {
4141
implementation project(':library')
42+
implementation project(':library-groupie-ktx')
4243
implementation "androidx.recyclerview:recyclerview:1.2.1"
4344
}
4445

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
include ':example-databinding', ':library-databinding', ':library', ':example', ':example-shared', ':library-kotlin-android-extensions', 'example-viewbinding', ':library-viewbinding'
1+
include ':example-databinding', ':library-databinding', ':library', ':example', ':example-shared', ':library-kotlin-android-extensions', ':library-groupie-ktx', 'example-viewbinding', ':library-viewbinding'

0 commit comments

Comments
 (0)