From 0b6090ff1983fafc73048da0cf76d4b5a5f7cff8 Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Sat, 9 Jun 2018 15:33:07 +0200 Subject: [PATCH 1/9] * even further improve and simplify build setup * update gradle * build tools * support libs to 27.1.1 * dependency libs --- .travis.yml | 8 +- app/build.gradle | 12 +- build.gradle | 6 +- gradle-release.gradle | 221 +++++++++--------- library-core/build.gradle | 19 +- library-core/gradle.properties | 1 - library-extensions-expandable/build.gradle | 19 +- .../gradle.properties | 1 - library-extensions/build.gradle | 19 +- library-extensions/gradle.properties | 1 - library/build.gradle | 20 +- library/gradle.properties | 1 - 12 files changed, 132 insertions(+), 196 deletions(-) diff --git a/.travis.yml b/.travis.yml index f7724c2ad..841930852 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,12 +3,12 @@ android: components: - tools - platform-tools - - build-tools-27.0.3 - - android-27 + - build-tools-28.0.0 + - android-28 - sys-img-armeabi-v7a-android-18 before_install: - - yes | sdkmanager "platforms;android-27" - - yes | sdkmanager "build-tools;27.0.3" + - yes | sdkmanager "platforms;android-28" + - yes | sdkmanager "build-tools;28.0.0" jdk: - oraclejdk8 script: diff --git a/app/build.gradle b/app/build.gradle index 85ed70366..a7d0288df 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,12 +61,12 @@ dependencies { // used to provide out of the box icon font support. simplifies development, // and provides scalable icons. the core is very very light // https://github.com/mikepenz/Android-Iconics - implementation 'com.mikepenz:iconics-core:3.0.3@aar' - implementation "com.mikepenz:iconics-views:3.0.3@aar" + implementation 'com.mikepenz:iconics-core:3.0.4@aar' + implementation "com.mikepenz:iconics-views:3.0.4@aar" //used to generate the drawer on the left //https://github.com/mikepenz/MaterialDrawer - implementation('com.mikepenz:materialdrawer:6.0.0@aar') { + implementation('com.mikepenz:materialdrawer:6.0.7@aar') { transitive = true exclude group: "com.mikepenz" } @@ -75,7 +75,7 @@ dependencies { implementation 'com.mikepenz:itemanimators:1.0.2@aar' //used to generate the Open Source section //https://github.com/mikepenz/AboutLibraries - implementation('com.mikepenz:aboutlibraries:6.0.7@aar') { + implementation('com.mikepenz:aboutlibraries:6.0.9@aar') { transitive = true exclude group: "com.mikepenz" } @@ -119,8 +119,8 @@ dependencies { configurations.all { resolutionStrategy.force "com.mikepenz:materialize:1.1.2" - resolutionStrategy.force "com.mikepenz:iconics-core:3.0.0" - resolutionStrategy.force "com.mikepenz:fastadapter:3.0.0" + resolutionStrategy.force "com.mikepenz:iconics-core:3.0.4" + resolutionStrategy.force "com.mikepenz:aboutlibraries:6.0.9" resolutionStrategy.force "com.android.support:support-v4:${versions.supportLib}" resolutionStrategy.force "com.android.support:appcompat-v7:${versions.supportLib}" resolutionStrategy.force "com.android.support:recyclerview-v7:${versions.supportLib}" diff --git a/build.gradle b/build.gradle index b3cc22e29..2445d7590 100644 --- a/build.gradle +++ b/build.gradle @@ -7,10 +7,10 @@ buildscript { ] setup = [ - compileSdk: 27, - buildTools: "27.0.3", + compileSdk: 28, + buildTools: "28.0.0", minSdk : 14, - targetSdk : 27 + targetSdk : 28 ] versions = [ diff --git a/gradle-release.gradle b/gradle-release.gradle index 93ae28cb4..5d6bb422f 100644 --- a/gradle-release.gradle +++ b/gradle-release.gradle @@ -1,7 +1,3 @@ -apply plugin: 'maven-publish' -apply plugin: 'com.github.dcendents.android-maven' -apply plugin: "com.jfrog.bintray" - @SuppressWarnings(["GroovyUnusedDeclaration", "GrMethodMayBeStatic"]) def isReleaseBuild() { return !VERSION_NAME.contains("SNAPSHOT") @@ -17,127 +13,140 @@ def getRepositoryPassword() { return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : "" } -if (JavaVersion.current().isJava8Compatible()) { - allprojects { - tasks.withType(Javadoc) { - options.addStringOption('Xdoclint:none', '-quiet') +afterEvaluate { project -> + apply plugin: 'maven-publish' + apply plugin: 'com.github.dcendents.android-maven' + apply plugin: "com.jfrog.bintray" + + if (JavaVersion.current().isJava8Compatible()) { + allprojects { + tasks.withType(Javadoc) { + options.addStringOption('Xdoclint:none', '-quiet') + } } } -} -task androidJavadocs(type: Javadoc) { - failOnError = false - source = android.sourceSets.main.java.source - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) -} - -task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { - classifier = 'javadoc' - from androidJavadocs.destinationDir -} - -task androidSourcesJar(type: Jar) { - classifier = 'sources' - from android.sourceSets.main.java.source -} + task androidJavadocs(type: Javadoc) { + failOnError = false + source = android.sourceSets.main.java.source + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + } -bintray { - dryRun = false - publish = true - override = true - user = project.hasProperty('bintray.user') ? project.property('bintray.user') : System.getenv('BINTRAY_USER') - key = project.hasProperty('bintray.apikey') ? project.property('bintray.apikey') : System.getenv('BINTRAY_API_KEY') - def gpgkey = project.hasProperty('bintray.gpg.key') ? project.property('bintray.gpg.key') : System.getenv('BINTRAY_GPG_KEY') - def gpgpass = project.hasProperty('bintray.gpg.password') ? project.property('bintray.gpg.password') : System.getenv('BINTRAY_GPG_PASS') + task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { + classifier = 'javadoc' + from androidJavadocs.destinationDir + } - publications('release') - //configurations = ['archives'] // TODO figure out javadoc upload again. + task androidSourcesJar(type: Jar) { + classifier = 'sources' + from android.sourceSets.main.java.source + } - pkg { + bintray { + dryRun = false publish = true - - repo = "maven" - name = POM_ARTIFACT_ID - desc = POM_DESCRIPTION - - websiteUrl = POM_URL - issueTrackerUrl = POM_SCM_URL_ISSUES - vcsUrl = POM_SCM_URL - - githubRepo = POM_GITHUB_REPO - githubReleaseNotesFile = POM_GITHUB_README - - publicDownloadNumbers = true - licenses = ["Apache-2.0"] - version { - name = VERSION_NAME - vcsTag = VERSION_NAME - released = new Date() - - mavenCentralSync { - sync = false - user = getRepositoryUsername() //OSS user token - password = getRepositoryPassword() //OSS user password - close = '1' - } - gpg { - sign = true //Determines whether to GPG sign the files. The default is false - passphrase = gpgpass //Optional. The passphrase for GPG signing' + override = true + user = project.hasProperty('bintray.user') ? project.property('bintray.user') : System.getenv('BINTRAY_USER') + key = project.hasProperty('bintray.apikey') ? project.property('bintray.apikey') : System.getenv('BINTRAY_API_KEY') + def gpgkey = project.hasProperty('bintray.gpg.key') ? project.property('bintray.gpg.key') : System.getenv('BINTRAY_GPG_KEY') + def gpgpass = project.hasProperty('bintray.gpg.password') ? project.property('bintray.gpg.password') : System.getenv('BINTRAY_GPG_PASS') + def versionName = project.release.versionName + + publications('release') + + pkg { + publish = true + + repo = "maven" + name = POM_ARTIFACT_ID + desc = POM_DESCRIPTION + + websiteUrl = POM_URL + issueTrackerUrl = POM_SCM_URL_ISSUES + vcsUrl = POM_SCM_URL + + githubRepo = POM_GITHUB_REPO + githubReleaseNotesFile = POM_GITHUB_README + + publicDownloadNumbers = true + licenses = ["Apache-2.0"] + version { + name = versionName + vcsTag = versionName + released = new Date() + + mavenCentralSync { + sync = false + user = getRepositoryUsername() //OSS user token + password = getRepositoryPassword() //OSS user password + close = '1' + } + gpg { + sign = true //Determines whether to GPG sign the files. The default is false + passphrase = gpgpass //Optional. The passphrase for GPG signing' + } } } } -} -ext.addDependency = { dependencyNode, group, name, version -> - dependencyNode.appendNode('groupId', group) - dependencyNode.appendNode('artifactId', name) - dependencyNode.appendNode('version', version) - //dependencyNode.appendNode('type', "aar") - dependencyNode.appendNode('scope', "compile") -} + ext.addDependency = { dependencyNode, group, name, version -> + dependencyNode.appendNode('groupId', group) + dependencyNode.appendNode('artifactId', name) + dependencyNode.appendNode('version', version) + //dependencyNode.appendNode('type', "aar") + dependencyNode.appendNode('scope', "compile") + } -def pomConfig = { - licenses { - license { - name POM_LICENCE_NAME - url POM_LICENCE_URL - distribution POM_LICENCE_DIST + def pomConfig = { + licenses { + license { + name POM_LICENCE_NAME + url POM_LICENCE_URL + distribution POM_LICENCE_DIST + } } - } - developers { - developer { - id POM_DEVELOPER_ID - name POM_DEVELOPER_NAME - email 'mikepenz@gmail.com' + developers { + developer { + id POM_DEVELOPER_ID + name POM_DEVELOPER_NAME + email 'mikepenz@gmail.com' + } + } + scm { + url POM_SCM_URL + connection POM_SCM_CONNECTION + developerConnection POM_SCM_DEV_CONNECTION } } - scm { - url POM_SCM_URL - connection POM_SCM_CONNECTION - developerConnection POM_SCM_DEV_CONNECTION - } -} -publishing { - publications { - release(MavenPublication) { - pom.withXml { - asNode().appendNode('name', POM_NAME); - asNode().appendNode('description', POM_DESCRIPTION); - asNode().appendNode('url', POM_SCM_URL); - def dependenciesNode = asNode().appendNode('dependencies'); - configurations.implementation.allDependencies.each { - // Ensure dependencies such as fileTree are not included. - if (it.name != 'unspecified') { - def dependencyNode = dependenciesNode.appendNode('dependency') - if (it.version != "unspecified") { - addDependency(dependencyNode, it.group, it.name, it.version) - } else { - addDependency(dependencyNode, it.getDependencyProject().findProperty("GROUP"), it.getDependencyProject().findProperty("POM_ARTIFACT_ID"), it.getDependencyProject().findProperty("VERSION_NAME")) + publishing { + publications { + release(MavenPublication) { + groupId GROUP + artifactId POM_ARTIFACT_ID + version project.release.versionName + artifact("$buildDir/outputs/aar/${project.getName()}-release.aar") + artifact androidSourcesJar + artifact androidJavadocsJar + + pom.withXml { + asNode().appendNode('name', POM_NAME); + asNode().appendNode('description', POM_DESCRIPTION); + asNode().appendNode('url', POM_SCM_URL); + def dependenciesNode = asNode().appendNode('dependencies'); + configurations.implementation.allDependencies.each { + // Ensure dependencies such as fileTree are not included. + if (it.name != 'unspecified') { + def dependencyNode = dependenciesNode.appendNode('dependency') + if (it.version != "unspecified") { + addDependency(dependencyNode, it.group, it.name, it.version) + } else { + addDependency(dependencyNode, it.getDependencyProject().findProperty("GROUP"), it.getDependencyProject().findProperty("POM_ARTIFACT_ID"), project.release.versionName) + } } } + asNode().children().last() + pomConfig } - asNode().children().last() + pomConfig } } } diff --git a/library-core/build.gradle b/library-core/build.gradle index 20cb86a59..6bda42749 100644 --- a/library-core/build.gradle +++ b/library-core/build.gradle @@ -1,7 +1,5 @@ apply plugin: 'com.android.library' -version release.versionName - android { compileSdkVersion setup.compileSdk buildToolsVersion setup.buildTools @@ -37,20 +35,5 @@ dependencies { } if (project.hasProperty('pushall') || project.hasProperty('librarycoreonly')) { - afterEvaluate { project -> - apply from: '../gradle-release.gradle' - - publishing { - publications { - release(MavenPublication) { - groupId 'com.mikepenz' - artifactId 'fastadapter' - version this.version - artifact("$buildDir/outputs/aar/${project.getName()}-release.aar") - artifact androidSourcesJar - artifact androidJavadocsJar - } - } - } - } + apply from: '../gradle-release.gradle' } diff --git a/library-core/gradle.properties b/library-core/gradle.properties index 46defad80..2adbfebdf 100755 --- a/library-core/gradle.properties +++ b/library-core/gradle.properties @@ -2,4 +2,3 @@ POM_NAME=FastAdapter Library POM_DESCRIPTION=The bullet proof, fast and easy to use adapter library, which minimizes developing time to a fraction... POM_ARTIFACT_ID=fastadapter POM_PACKAGING=aar -VERSION_NAME=3.2.7 diff --git a/library-extensions-expandable/build.gradle b/library-extensions-expandable/build.gradle index f73fcafd2..eff24b12a 100644 --- a/library-extensions-expandable/build.gradle +++ b/library-extensions-expandable/build.gradle @@ -1,7 +1,5 @@ apply plugin: 'com.android.library' -version release.versionName - android { compileSdkVersion setup.compileSdk buildToolsVersion setup.buildTools @@ -51,22 +49,7 @@ dependencies { } if (project.hasProperty('pushall') || project.hasProperty('libraryextensiononly')) { - afterEvaluate { project -> - apply from: '../gradle-release.gradle' - - publishing { - publications { - release(MavenPublication) { - groupId 'com.mikepenz' - artifactId 'fastadapter-extensions-expandable' - version this.version - artifact("$buildDir/outputs/aar/${project.getName()}-release.aar") - artifact androidSourcesJar - artifact androidJavadocsJar - } - } - } - } + apply from: '../gradle-release.gradle' } tasks.withType(Test) { diff --git a/library-extensions-expandable/gradle.properties b/library-extensions-expandable/gradle.properties index fa2e1720a..6faeddc83 100755 --- a/library-extensions-expandable/gradle.properties +++ b/library-extensions-expandable/gradle.properties @@ -2,4 +2,3 @@ POM_NAME=FastAdapter Library-Extensions-Expandable POM_DESCRIPTION=Commons extension for the FastAdapter library. The bullet proof, fast and easy to use adapter library. POM_ARTIFACT_ID=fastadapter-extensions-expandable POM_PACKAGING=aar -VERSION_NAME=3.2.7 diff --git a/library-extensions/build.gradle b/library-extensions/build.gradle index 636b8753a..f1cff8a12 100644 --- a/library-extensions/build.gradle +++ b/library-extensions/build.gradle @@ -1,7 +1,5 @@ apply plugin: 'com.android.library' -version release.versionName - android { compileSdkVersion setup.compileSdk buildToolsVersion setup.buildTools @@ -40,20 +38,5 @@ dependencies { } if (project.hasProperty('pushall') || project.hasProperty('libraryextensiononly')) { - afterEvaluate { project -> - apply from: '../gradle-release.gradle' - - publishing { - publications { - release(MavenPublication) { - groupId 'com.mikepenz' - artifactId 'fastadapter-extensions' - version this.version - artifact("$buildDir/outputs/aar/${project.getName()}-release.aar") - artifact androidSourcesJar - artifact androidJavadocsJar - } - } - } - } + apply from: '../gradle-release.gradle' } \ No newline at end of file diff --git a/library-extensions/gradle.properties b/library-extensions/gradle.properties index 3f891b84f..c4b743ccc 100755 --- a/library-extensions/gradle.properties +++ b/library-extensions/gradle.properties @@ -2,4 +2,3 @@ POM_NAME=FastAdapter Library-Extensions POM_DESCRIPTION=Commons extension for the FastAdapter library. The bullet proof, fast and easy to use adapter library. POM_ARTIFACT_ID=fastadapter-extensions POM_PACKAGING=aar -VERSION_NAME=3.2.7 diff --git a/library/build.gradle b/library/build.gradle index ba7e4e569..8eabaf8fe 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,7 +1,5 @@ apply plugin: 'com.android.library' -version release.versionName - android { compileSdkVersion setup.compileSdk buildToolsVersion setup.buildTools @@ -48,25 +46,9 @@ dependencies { } if (project.hasProperty('pushall') || project.hasProperty('librarycommonsonly')) { - afterEvaluate { project -> - apply from: '../gradle-release.gradle' - - publishing { - publications { - release(MavenPublication) { - groupId 'com.mikepenz' - artifactId 'fastadapter-commons' - version this.version - artifact("$buildDir/outputs/aar/${project.getName()}-release.aar") - artifact androidSourcesJar - artifact androidJavadocsJar - } - } - } - } + apply from: '../gradle-release.gradle' } - tasks.withType(Test) { testLogging { // set options for log level LIFECYCLE diff --git a/library/gradle.properties b/library/gradle.properties index 236ef93f7..d7d8180c6 100755 --- a/library/gradle.properties +++ b/library/gradle.properties @@ -2,4 +2,3 @@ POM_NAME=FastAdapter Library POM_DESCRIPTION=Commons extension for the FastAdapter library. The bullet proof, fast and easy to use adapter library. POM_ARTIFACT_ID=fastadapter-commons POM_PACKAGING=aar -VERSION_NAME=3.2.7 From ed5edd5742eaf879147265315a15a54d8b0f2d05 Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Sat, 9 Jun 2018 20:57:32 +0200 Subject: [PATCH 2/9] * also use version from root gradle for app --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a7d0288df..d73d42916 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { defaultConfig { minSdkVersion setup.minSdk targetSdkVersion setup.targetSdk - versionCode 3270 - versionName '3.2.7' + versionCode release.versionCode + versionName release.versionName setProperty("archivesBaseName", "FastAdapter-v$versionName-c$versionCode") } From e61b4ee4e796e5bbbf2f97ccaac681fdcebf073a Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Sat, 9 Jun 2018 21:02:41 +0200 Subject: [PATCH 3/9] * sync to maven central --- gradle-release.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle-release.gradle b/gradle-release.gradle index 5d6bb422f..a4b50082b 100644 --- a/gradle-release.gradle +++ b/gradle-release.gradle @@ -76,7 +76,7 @@ afterEvaluate { project -> released = new Date() mavenCentralSync { - sync = false + sync = true user = getRepositoryUsername() //OSS user token password = getRepositoryPassword() //OSS user password close = '1' From 64225872dc4ce6814009b4652d44bfa37e618410 Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Sun, 17 Jun 2018 09:21:28 +0200 Subject: [PATCH 4/9] * adjust release script --- gradle-release.gradle | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gradle-release.gradle b/gradle-release.gradle index a4b50082b..aced65105 100644 --- a/gradle-release.gradle +++ b/gradle-release.gradle @@ -58,7 +58,7 @@ afterEvaluate { project -> publish = true repo = "maven" - name = POM_ARTIFACT_ID + name = GROUP + ":" + POM_ARTIFACT_ID //the name (= identifier) on bintray desc = POM_DESCRIPTION websiteUrl = POM_URL @@ -77,13 +77,13 @@ afterEvaluate { project -> mavenCentralSync { sync = true - user = getRepositoryUsername() //OSS user token - password = getRepositoryPassword() //OSS user password + user = getRepositoryUsername() + password = getRepositoryPassword() close = '1' } gpg { - sign = true //Determines whether to GPG sign the files. The default is false - passphrase = gpgpass //Optional. The passphrase for GPG signing' + sign = true + passphrase = gpgpass } } } @@ -93,7 +93,6 @@ afterEvaluate { project -> dependencyNode.appendNode('groupId', group) dependencyNode.appendNode('artifactId', name) dependencyNode.appendNode('version', version) - //dependencyNode.appendNode('type', "aar") dependencyNode.appendNode('scope', "compile") } From 8d2462efce2e1187e09396c15e7ccfc90670b6c8 Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Mon, 18 Jun 2018 13:56:43 +0200 Subject: [PATCH 5/9] Update README.md * add jcenter badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 76e4925e7..d7ea3c82c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# FastAdapter [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.mikepenz/fastadapter/badge.svg?style=flat)](https://maven-badges.herokuapp.com/maven-central/com.mikepenz/fastadapter) [![Join the chat at https://gitter.im/mikepenz/fastadapter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mikepenz/fastadapter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +# FastAdapter [![Download](https://api.bintray.com/packages/mikepenz/maven/com.mikepenz%3Afastadapter/images/download.svg?version=3.2.7) ](https://bintray.com/mikepenz/maven/com.mikepenz%3Afastadapter/3.2.7/link) [![Join the chat at https://gitter.im/mikepenz/fastadapter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mikepenz/fastadapter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) > The RecyclerView is one of the most used widgets in the Android world, and with it you have to implement an Adapter which provides the items for the view. Most use cases require the same base logic, but require you to write everything again and again. From 56ad394d2c5eeec50b5bbcc7b7f9a34fb50464a2 Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Sun, 22 Jul 2018 14:15:27 +0200 Subject: [PATCH 6/9] * clear animation before setting the new stateListDrawable to potentially prevent wrong animation states --- .../fastadapter/app/items/HeaderSelectionItem.java | 5 +++-- .../mikepenz/fastadapter/app/items/SimpleImageItem.java | 2 ++ .../app/items/expandable/SimpleSubExpandableItem.java | 4 ++-- .../fastadapter/app/items/expandable/SimpleSubItem.java | 9 +++++---- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/HeaderSelectionItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/HeaderSelectionItem.java index 61bde68e7..3ddded0e8 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/HeaderSelectionItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/HeaderSelectionItem.java @@ -2,6 +2,7 @@ import android.content.Context; import android.graphics.Color; +import android.support.v4.view.ViewCompat; import com.mikepenz.fastadapter.IExpandable; import com.mikepenz.fastadapter.IItem; @@ -9,7 +10,6 @@ import com.mikepenz.fastadapter.app.items.expandable.SimpleSubExpandableItem; import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; import com.mikepenz.materialdrawer.holder.StringHolder; -import com.mikepenz.materialize.util.UIUtils; import java.util.List; @@ -34,7 +34,8 @@ public void bindView(ViewHolder viewHolder, List payloads) { Context ctx = viewHolder.itemView.getContext(); //set the background for the item - UIUtils.setBackground(viewHolder.view, FastAdapterUIUtils.getSelectableBackground(ctx, Color.RED, true)); + viewHolder.view.clearAnimation(); + ViewCompat.setBackground(viewHolder.view, FastAdapterUIUtils.getSelectableBackground(ctx, Color.RED, true)); //set the text for the name StringHolder.applyTo(name, viewHolder.name); //set the text for the description or hide diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleImageItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleImageItem.java index 66590b0f5..6d1f12529 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleImageItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleImageItem.java @@ -81,6 +81,8 @@ public void bindView(SimpleImageItem.ViewHolder viewHolder, List payload //set the background for the item int color = UIUtils.getThemeColor(ctx, R.attr.colorPrimary); + + viewHolder.view.clearAnimation(); viewHolder.view.setForeground(FastAdapterUIUtils.getSelectablePressedBackground(ctx, FastAdapterUIUtils.adjustAlpha(color, 100), 50, true)); //load glide diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubExpandableItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubExpandableItem.java index 6ca29de73..90ef66ad0 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubExpandableItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubExpandableItem.java @@ -19,7 +19,6 @@ import com.mikepenz.fastadapter.expandable.items.AbstractExpandableItem; import com.mikepenz.fastadapter.listeners.OnClickListener; import com.mikepenz.materialdrawer.holder.StringHolder; -import com.mikepenz.materialize.util.UIUtils; import java.util.List; @@ -136,7 +135,8 @@ public void bindView(ViewHolder viewHolder, List payloads) { Context ctx = viewHolder.itemView.getContext(); //set the background for the item - UIUtils.setBackground(viewHolder.view, FastAdapterUIUtils.getSelectableBackground(ctx, Color.RED, true)); + viewHolder.view.clearAnimation(); + ViewCompat.setBackground(viewHolder.view, FastAdapterUIUtils.getSelectableBackground(ctx, Color.RED, true)); //set the text for the name StringHolder.applyTo(name, viewHolder.name); //set the text for the description or hide diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubItem.java index 8c7769f42..0b6ad7fa4 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubItem.java @@ -3,20 +3,20 @@ import android.content.Context; import android.graphics.Color; import android.support.annotation.StringRes; +import android.support.v4.view.ViewCompat; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.mikepenz.fastadapter.IClickable; -import com.mikepenz.fastadapter_extensions.drag.IDraggable; import com.mikepenz.fastadapter.IExpandable; import com.mikepenz.fastadapter.IItem; import com.mikepenz.fastadapter.ISubItem; import com.mikepenz.fastadapter.app.R; -import com.mikepenz.fastadapter.expandable.items.AbstractExpandableItem; import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; +import com.mikepenz.fastadapter.expandable.items.AbstractExpandableItem; +import com.mikepenz.fastadapter_extensions.drag.IDraggable; import com.mikepenz.materialdrawer.holder.StringHolder; -import com.mikepenz.materialize.util.UIUtils; import java.util.List; @@ -100,7 +100,8 @@ public void bindView(ViewHolder viewHolder, List payloads) { Context ctx = viewHolder.itemView.getContext(); //set the background for the item - UIUtils.setBackground(viewHolder.view, FastAdapterUIUtils.getSelectableBackground(ctx, Color.RED, true)); + viewHolder.view.clearAnimation(); + ViewCompat.setBackground(viewHolder.view, FastAdapterUIUtils.getSelectableBackground(ctx, Color.RED, true)); //set the text for the name StringHolder.applyTo(name, viewHolder.name); //set the text for the description or hide From 0b073205384eb467271eed235aed7ff45c0ce418 Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Sun, 22 Jul 2018 14:34:27 +0200 Subject: [PATCH 7/9] * fix only one expanded item auto collapsing for more than 2 sub levels --- .../mikepenz/fastadapter/expandable/ExpandableExtension.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library-extensions-expandable/src/main/java/com/mikepenz/fastadapter/expandable/ExpandableExtension.java b/library-extensions-expandable/src/main/java/com/mikepenz/fastadapter/expandable/ExpandableExtension.java index 77041b8b8..6b0ad097d 100644 --- a/library-extensions-expandable/src/main/java/com/mikepenz/fastadapter/expandable/ExpandableExtension.java +++ b/library-extensions-expandable/src/main/java/com/mikepenz/fastadapter/expandable/ExpandableExtension.java @@ -278,7 +278,7 @@ public int[] getExpandedItemsSameLevel(int position) { */ public int[] getExpandedItemsRootLevel(int position) { int[] expandedItems; - ArrayList expandedItemsList = new ArrayList<>(); + ArraySet expandedItemsList = new ArraySet<>(); Item item = mFastAdapter.getItem(position); for (int i = 0, size = mFastAdapter.getItemCount(); i < size; i++) { @@ -296,7 +296,7 @@ public int[] getExpandedItemsRootLevel(int position) { int expandedItemsListLength = expandedItemsList.size(); expandedItems = new int[expandedItemsListLength]; for (int i = 0; i < expandedItemsListLength; i++) { - expandedItems[i] = expandedItemsList.get(i); + expandedItems[i] = expandedItemsList.valueAt(i); } return expandedItems; } From d128adc83aa6288ece0681433df4cc104c53edd5 Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Sun, 22 Jul 2018 14:43:05 +0200 Subject: [PATCH 8/9] * update to latest gradle build tools --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 2445d7590..c981e20fe 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.2' + classpath 'com.android.tools.build:gradle:3.1.3' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' } From 06d2a95ac63a90cb69082657d51483274a4d1110 Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Sun, 22 Jul 2018 14:44:11 +0200 Subject: [PATCH 9/9] * [release] v3.2.8 --- README.md | 8 ++++---- build.gradle | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d7ea3c82c..7764e81dd 100644 --- a/README.md +++ b/README.md @@ -41,26 +41,26 @@ You can try it out here [Google Play](https://play.google.com/store/apps/details The library is split up into core, commons, and extensions. The core functions are included in the following dependency. ```gradle -implementation 'com.mikepenz:fastadapter:3.2.7' +implementation 'com.mikepenz:fastadapter:3.2.8' implementation 'com.android.support:appcompat-v7:${latestSupportLib}' implementation 'com.android.support:recyclerview-v7:${latestSupportLib}' ``` The commons package comes with some useful helpers (which are not needed in all cases) This one for example includes the `FastItemAdapter` ```gradle -implementation 'com.mikepenz:fastadapter-commons:3.2.7' +implementation 'com.mikepenz:fastadapter-commons:3.2.8' ``` Expandable support is included and can be added via this ```gradle -implementation 'com.mikepenz:fastadapter-extensions-expandable:3.2.7' +implementation 'com.mikepenz:fastadapter-extensions-expandable:3.2.8' //The tiny Materialize library used for its useful helper classes implementation 'com.mikepenz:materialize:${latestVersion}' ``` Many helper classes are included in the following dependency. (This functionality also needs the `Expandable` extension ```gradle -implementation 'com.mikepenz:fastadapter-extensions:3.2.7' +implementation 'com.mikepenz:fastadapter-extensions:3.2.8' implementation 'com.android.support:design:${versions.supportLib}' //The tiny Materialize library used for its useful helper classes implementation 'com.mikepenz:materialize:${latestVersion}' diff --git a/build.gradle b/build.gradle index c981e20fe..e242e26e2 100644 --- a/build.gradle +++ b/build.gradle @@ -2,8 +2,8 @@ buildscript { ext { release = [ - versionName: "3.2.7", - versionCode: 3270 + versionName: "3.2.8", + versionCode: 3280 ] setup = [