From 41394ead3cfdb1a9fb8103c3852fd6860f095584 Mon Sep 17 00:00:00 2001 From: Daniele Verducci Date: Wed, 27 Dec 2017 17:00:59 +0100 Subject: [PATCH 1/5] Added support for sevar83's IndeterminateCheckBox --- app/build.gradle | 1 + app/src/main/res/layout/item_first_level.xml | 2 +- app/src/main/res/layout/item_second_level.xml | 2 +- app/src/main/res/layout/item_third_level.xml | 2 +- build.gradle | 3 ++- treeview_lib/build.gradle | 2 ++ .../main/java/me/texy/treeview/TreeViewAdapter.java | 12 +++++++++++- .../java/me/texy/treeview/helper/TreeHelper.java | 7 +++++++ 8 files changed, 26 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f90b194..b462e0c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,5 +29,6 @@ dependencies { testCompile 'junit:junit:4.12' compile project(':treeview_lib') // compile 'me.texy.treeview:treeview_lib:1.0.1' + compile 'com.github.sevar83:indeterminate-checkbox:1.0.5@aar' } diff --git a/app/src/main/res/layout/item_first_level.xml b/app/src/main/res/layout/item_first_level.xml index 2df1cbb..b06cb8f 100644 --- a/app/src/main/res/layout/item_first_level.xml +++ b/app/src/main/res/layout/item_first_level.xml @@ -30,7 +30,7 @@ - - - selectParentIfNeedWhenNodeSelected(TreeNode treeNod parent.setSelected(true); impactedParents.add(parent); impactedParents.addAll(selectParentIfNeedWhenNodeSelected(parent, true)); + } else if(select){ + impactedParents.add(parent); + impactedParents.addAll(selectParentIfNeedWhenNodeSelected(parent, true)); } else if (!select && selectedBrotherCount == brothers.size() - 1) { // only the condition that the size of selected's brothers // is one less than total count can trigger the deselect parent.setSelected(false); impactedParents.add(parent); impactedParents.addAll(selectParentIfNeedWhenNodeSelected(parent, false)); + } else { + // only some selected/deselected: refresh parent view + impactedParents.add(parent); + impactedParents.addAll(selectParentIfNeedWhenNodeSelected(parent, false)); } return impactedParents; } From 8e851ed4e4b6fda1d8cb376990c75916a002f160 Mon Sep 17 00:00:00 2001 From: Daniele Verducci Date: Wed, 27 Dec 2017 17:06:02 +0100 Subject: [PATCH 2/5] Updated readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5732648..db39005 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ There are some gifs from Demo: - selectAll/deselectAll - getAllSelectedNodes +Now supports [sevar83's IndeterminateCheckBox](https://github.com/sevar83/indeterminate-checkbox) as well as Android's android.widget.CheckBox + ### Usage **1.Reference the library from your module's build.gradle:** ```groovy From e8de52fa3b02e68a346254a366e5a5068e008a47 Mon Sep 17 00:00:00 2001 From: Daniele Verducci Date: Wed, 27 Dec 2017 17:24:35 +0100 Subject: [PATCH 3/5] Updated readme --- README.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index db39005..c6b7f47 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,23 @@ Now supports [sevar83's IndeterminateCheckBox](https://github.com/sevar83/indete ### Usage **1.Reference the library from your module's build.gradle:** -```groovy -compile 'me.texy.treeview:treeview_lib:1.0.3' -``` +1. You need to have this in your project's `build.gradle` file: + + ```Gradle + allprojects { + repositories { + jcenter() + maven { url "https://jitpack.io" } + } + } + ``` +2. You need this in your app's module `build.gradle` file: + ```Gradle + dependencies { + compile 'com.github.penguin86:TreeView:1.0.5@aar' + } + ``` + **2.Implement your all level's BaseNodeViewBinder** Sample: From 3134f2bee61fe0b1f5945d30cc33a02842221646 Mon Sep 17 00:00:00 2001 From: Daniele Verducci Date: Wed, 27 Dec 2017 19:04:21 +0100 Subject: [PATCH 4/5] Fixed build for jitpack --- build.gradle | 4 +++- gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 21af5ab..c8fa56d 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,10 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:2.3.3' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6' // NOTE: Do not place your application dependencies here; they belong @@ -17,6 +18,7 @@ allprojects { repositories { jcenter() maven { url "https://jitpack.io" } + google() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d0a9b3c..b347011 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip From 9aa604eba54a1a8278048f7551170a8533aaaedd Mon Sep 17 00:00:00 2001 From: Daniele Verducci Date: Tue, 9 Jan 2018 12:06:03 +0100 Subject: [PATCH 5/5] Modified to compile with Android Support Library v26+ --- app/build.gradle | 6 +++--- treeview_lib/build.gradle | 6 +++--- .../java/me/texy/treeview/animator/DefaultItemAnimator.java | 3 +-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b462e0c..0f1e216 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 + compileSdkVersion 27 buildToolsVersion "25.0.2" defaultConfig { applicationId "me.texy.treeviewdemo" @@ -24,8 +24,8 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:appcompat-v7:25.0.0' - compile 'com.android.support:recyclerview-v7:25.0.0' + compile 'com.android.support:appcompat-v7:27.0.2' + compile 'com.android.support:recyclerview-v7:27.0.2' testCompile 'junit:junit:4.12' compile project(':treeview_lib') // compile 'me.texy.treeview:treeview_lib:1.0.1' diff --git a/treeview_lib/build.gradle b/treeview_lib/build.gradle index afdbce1..4d3d7a3 100644 --- a/treeview_lib/build.gradle +++ b/treeview_lib/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 25 + compileSdkVersion 27 buildToolsVersion "25.0.2" defaultConfig { @@ -26,8 +26,8 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:recyclerview-v7:25.0.0' - compile 'com.android.support:appcompat-v7:25.0.0' + compile 'com.android.support:recyclerview-v7:27.0.2' + compile 'com.android.support:appcompat-v7:27.0.2' testCompile 'junit:junit:4.12' compile 'org.jetbrains:annotations-java5:15.0' compile 'com.github.sevar83:indeterminate-checkbox:1.0.5@aar' diff --git a/treeview_lib/src/main/java/me/texy/treeview/animator/DefaultItemAnimator.java b/treeview_lib/src/main/java/me/texy/treeview/animator/DefaultItemAnimator.java index 76267bd..0c3cc76 100644 --- a/treeview_lib/src/main/java/me/texy/treeview/animator/DefaultItemAnimator.java +++ b/treeview_lib/src/main/java/me/texy/treeview/animator/DefaultItemAnimator.java @@ -16,7 +16,6 @@ package me.texy.treeview.animator; import android.support.annotation.NonNull; -import android.support.v4.animation.AnimatorCompatHelper; import android.support.v4.view.ViewCompat; import android.support.v4.view.ViewPropertyAnimatorCompat; import android.support.v4.view.ViewPropertyAnimatorListener; @@ -517,7 +516,7 @@ public void endAnimation(ViewHolder item) { } private void resetAnimation(ViewHolder holder) { - AnimatorCompatHelper.clearInterpolator(holder.itemView); + //AnimatorCompatHelper.clearInterpolator(holder.itemView); endAnimation(holder); }