From 873bffd9483e217a66407a280401d7b9f18414c7 Mon Sep 17 00:00:00 2001 From: Muhammad Naderi Date: Wed, 18 Nov 2015 09:37:17 +0330 Subject: [PATCH 1/8] Create styles.xml to support rtl, foreach left property should be a start one, and foreach right property should be an End one --- app/src/main/res/values-v17/styles.xml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 app/src/main/res/values-v17/styles.xml diff --git a/app/src/main/res/values-v17/styles.xml b/app/src/main/res/values-v17/styles.xml new file mode 100644 index 0000000..b672c61 --- /dev/null +++ b/app/src/main/res/values-v17/styles.xml @@ -0,0 +1,9 @@ + + + + + From 0eaaf0d3d210f569dd69e115bdaeb70b3c350d4b Mon Sep 17 00:00:00 2001 From: Laokoon Date: Wed, 21 Sep 2016 22:43:15 +0200 Subject: [PATCH 2/8] fixed bug where fast collapsing and expanding would not work without defaultAnimation true --- .../src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java b/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java index 222a43a..153bc0a 100644 --- a/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java +++ b/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java @@ -249,6 +249,9 @@ private void expandNode(final TreeNode node, boolean includeSubnodes) { expand(parentViewHolder.getNodeItemsView()); } else { parentViewHolder.getNodeItemsView().setVisibility(View.VISIBLE); + parentViewHolder.getNodeItemsView().getLayoutParams().height = + LinearLayout.LayoutParams.WRAP_CONTENT; + parentViewHolder.getNodeItemsView().requestLayout(); } } From 6f0843917f084949e7d0bceaa8eeb0115f1529df Mon Sep 17 00:00:00 2001 From: Edgar Alvarado Date: Thu, 19 Aug 2021 18:06:44 -0400 Subject: [PATCH 3/8] Upgrade to androidx --- .project | 28 +++++++++++++++++++ .settings/org.eclipse.buildship.core.prefs | 13 +++++++++ app/build.gradle | 8 +++--- .../b/atv/sample/activity/MainActivity.java | 5 ++-- .../activity/SingleFragmentActivity.java | 17 +++++++---- .../fragment/CustomViewHolderFragment.java | 3 +- .../fragment/FolderStructureFragment.java | 3 +- .../fragment/SelectableTreeFragment.java | 3 +- .../TwoDScrollingArrowExpandFragment.java | 3 +- .../fragment/TwoDScrollingFragment.java | 3 +- .../main/res/layout/layout_header_node.xml | 2 +- app/src/main/res/layout/layout_icon_node.xml | 2 +- app/src/main/res/layout/layout_place_node.xml | 2 +- .../main/res/layout/layout_profile_node.xml | 2 +- .../res/layout/layout_selectable_header.xml | 2 +- .../res/layout/layout_selectable_item.xml | 2 +- .../main/res/layout/layout_social_node.xml | 2 +- app/src/main/res/values/styles.xml | 4 +-- build.gradle | 4 ++- gradle.properties | 10 ++++--- gradle/wrapper/gradle-wrapper.properties | 4 +-- library/build.gradle | 2 +- 22 files changed, 90 insertions(+), 34 deletions(-) create mode 100644 .project create mode 100644 .settings/org.eclipse.buildship.core.prefs diff --git a/.project b/.project new file mode 100644 index 0000000..d1b2824 --- /dev/null +++ b/.project @@ -0,0 +1,28 @@ + + + AndroidTreeView + Project AndroidTreeView created by Buildship. + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.buildship.core.gradleprojectnature + + + + 1629407892783 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/.settings/org.eclipse.buildship.core.prefs b/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 0000000..c3e436b --- /dev/null +++ b/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.0-rc-1)) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home=C\:/Progra~1/Java/jdk-14.0.2 +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/app/build.gradle b/app/build.gradle index 6d144bb..84ec25e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,8 +19,8 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:21.0.3' - compile 'com.github.johnkil.print:print:1.2.2' - compile project(':library') + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'androidx.appcompat:appcompat:1.3.1' + implementation 'com.github.johnkil.print:print:1.2.2' + implementation project(':library') } diff --git a/app/src/main/java/com/unnamed/b/atv/sample/activity/MainActivity.java b/app/src/main/java/com/unnamed/b/atv/sample/activity/MainActivity.java index f74bea2..866cab2 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/activity/MainActivity.java +++ b/app/src/main/java/com/unnamed/b/atv/sample/activity/MainActivity.java @@ -3,12 +3,13 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.v7.app.ActionBarActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; +import androidx.appcompat.app.AppCompatActivity; + import com.unnamed.b.atv.sample.R; import com.unnamed.b.atv.sample.fragment.CustomViewHolderFragment; import com.unnamed.b.atv.sample.fragment.FolderStructureFragment; @@ -21,7 +22,7 @@ import java.util.List; -public class MainActivity extends ActionBarActivity { +public class MainActivity extends AppCompatActivity { @Override diff --git a/app/src/main/java/com/unnamed/b/atv/sample/activity/SingleFragmentActivity.java b/app/src/main/java/com/unnamed/b/atv/sample/activity/SingleFragmentActivity.java index c28f65b..e9d4b83 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/activity/SingleFragmentActivity.java +++ b/app/src/main/java/com/unnamed/b/atv/sample/activity/SingleFragmentActivity.java @@ -1,15 +1,17 @@ package com.unnamed.b.atv.sample.activity; -import android.app.Fragment; import android.os.Bundle; -import android.support.v7.app.ActionBarActivity; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import com.unnamed.b.atv.sample.R; /** * Created by Bogdan Melnychuk on 2/12/15. */ -public class SingleFragmentActivity extends ActionBarActivity { +public class SingleFragmentActivity extends AppCompatActivity { public final static String FRAGMENT_PARAM = "fragment"; @Override @@ -20,9 +22,12 @@ protected void onCreate(Bundle bundle) { Bundle b = getIntent().getExtras(); Class fragmentClass = (Class) b.get(FRAGMENT_PARAM); if (bundle == null) { - Fragment f = Fragment.instantiate(this, fragmentClass.getName()); - f.setArguments(b); - getFragmentManager().beginTransaction().replace(R.id.fragment, f, fragmentClass.getName()).commit(); + getSupportFragmentManager() + .beginTransaction() + .replace(R.id.fragment, (Class) fragmentClass, b, fragmentClass.getName()) + .setReorderingAllowed(true) + .addToBackStack(null) + .commit(); } } } diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/CustomViewHolderFragment.java b/app/src/main/java/com/unnamed/b/atv/sample/fragment/CustomViewHolderFragment.java index 77c96f4..dee3b48 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/CustomViewHolderFragment.java +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/CustomViewHolderFragment.java @@ -1,12 +1,13 @@ package com.unnamed.b.atv.sample.fragment; -import android.app.Fragment; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.fragment.app.Fragment; + import com.unnamed.b.atv.model.TreeNode; import com.unnamed.b.atv.sample.R; import com.unnamed.b.atv.sample.holder.HeaderHolder; diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/FolderStructureFragment.java b/app/src/main/java/com/unnamed/b/atv/sample/fragment/FolderStructureFragment.java index a59790c..a869454 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/FolderStructureFragment.java +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/FolderStructureFragment.java @@ -1,6 +1,5 @@ package com.unnamed.b.atv.sample.fragment; -import android.app.Fragment; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; @@ -12,6 +11,8 @@ import android.widget.TextView; import android.widget.Toast; +import androidx.fragment.app.Fragment; + import com.unnamed.b.atv.model.TreeNode; import com.unnamed.b.atv.sample.R; import com.unnamed.b.atv.sample.holder.IconTreeItemHolder; diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/SelectableTreeFragment.java b/app/src/main/java/com/unnamed/b/atv/sample/fragment/SelectableTreeFragment.java index 3a1a151..535f73a 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/SelectableTreeFragment.java +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/SelectableTreeFragment.java @@ -1,6 +1,5 @@ package com.unnamed.b.atv.sample.fragment; -import android.app.Fragment; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; @@ -8,6 +7,8 @@ import android.view.ViewGroup; import android.widget.Toast; +import androidx.fragment.app.Fragment; + import com.unnamed.b.atv.model.TreeNode; import com.unnamed.b.atv.sample.R; import com.unnamed.b.atv.sample.holder.IconTreeItemHolder; diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingArrowExpandFragment.java b/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingArrowExpandFragment.java index bc64194..a5c5b89 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingArrowExpandFragment.java +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingArrowExpandFragment.java @@ -1,6 +1,5 @@ package com.unnamed.b.atv.sample.fragment; -import android.app.Fragment; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; @@ -8,6 +7,8 @@ import android.view.ViewGroup; import android.widget.Toast; +import androidx.fragment.app.Fragment; + import com.unnamed.b.atv.model.TreeNode; import com.unnamed.b.atv.sample.R; import com.unnamed.b.atv.sample.holder.ArrowExpandSelectableHeaderHolder; diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingFragment.java b/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingFragment.java index 37d62fe..6727b54 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingFragment.java +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingFragment.java @@ -1,12 +1,13 @@ package com.unnamed.b.atv.sample.fragment; -import android.app.Fragment; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.fragment.app.Fragment; + import com.unnamed.b.atv.model.TreeNode; import com.unnamed.b.atv.sample.R; import com.unnamed.b.atv.sample.holder.IconTreeItemHolder; diff --git a/app/src/main/res/layout/layout_header_node.xml b/app/src/main/res/layout/layout_header_node.xml index 1423434..dcdd9af 100644 --- a/app/src/main/res/layout/layout_header_node.xml +++ b/app/src/main/res/layout/layout_header_node.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:minHeight="48dp" android:paddingLeft="10dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/layout_icon_node.xml b/app/src/main/res/layout/layout_icon_node.xml index 41434d4..b296653 100644 --- a/app/src/main/res/layout/layout_icon_node.xml +++ b/app/src/main/res/layout/layout_icon_node.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:minHeight="48dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/layout_place_node.xml b/app/src/main/res/layout/layout_place_node.xml index 89b1ec6..265a9fb 100644 --- a/app/src/main/res/layout/layout_place_node.xml +++ b/app/src/main/res/layout/layout_place_node.xml @@ -5,7 +5,7 @@ android:minHeight="48dp" android:paddingLeft="10dp" android:paddingRight="10dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/layout_profile_node.xml b/app/src/main/res/layout/layout_profile_node.xml index aeb7a09..3032edb 100644 --- a/app/src/main/res/layout/layout_profile_node.xml +++ b/app/src/main/res/layout/layout_profile_node.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:minHeight="56dp" android:paddingLeft="10dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/layout_selectable_header.xml b/app/src/main/res/layout/layout_selectable_header.xml index d565078..d4a0cb7 100644 --- a/app/src/main/res/layout/layout_selectable_header.xml +++ b/app/src/main/res/layout/layout_selectable_header.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:minHeight="48dp" android:paddingLeft="10dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:layout_height="match_parent"> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 114b712..2213e56 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -12,8 +12,8 @@ diff --git a/build.gradle b/build.gradle index ebf706b..1dc9934 100644 --- a/build.gradle +++ b/build.gradle @@ -2,10 +2,11 @@ buildscript { repositories { + google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:4.1.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -22,6 +23,7 @@ allprojects { repositories { jcenter() + google() } } diff --git a/gradle.properties b/gradle.properties index ddb8205..0cce771 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,10 +21,10 @@ VERSION_NAME=1.2.9 VERSION_CODE=11 -ANDROID_BUILD_MIN_SDK_VERSION=11 -ANDROID_BUILD_TARGET_SDK_VERSION=21 -ANDROID_BUILD_SDK_VERSION=21 -ANDROID_BUILD_TOOLS_VERSION=21.1.2 +ANDROID_BUILD_MIN_SDK_VERSION=28 +ANDROID_BUILD_TARGET_SDK_VERSION=28 +ANDROID_BUILD_SDK_VERSION=28 +ANDROID_BUILD_TOOLS_VERSION=28.0.3 GROUP=com.github.bmelnychuk POM_DESCRIPTION=Tree View implementation for android @@ -37,3 +37,5 @@ POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt POM_LICENCE_DIST=repo POM_DEVELOPER_ID=unnamed_b POM_DEVELOPER_NAME=Bogdan Melnychuk +android.useAndroidX=true +android.enableJetifier=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0c71e76..0e2857c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Apr 10 15:27:10 PDT 2013 +#Thu Aug 19 17:23:24 EDT 2021 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip diff --git a/library/build.gradle b/library/build.gradle index 92ecb9f..89f874e 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -19,7 +19,7 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:21.0.3' + compile 'androidx.appcompat:appcompat:1.0.0' } apply from: '../maven_push.gradle' From 7dd464a9dbd7c263aab39a1ab1c0b0b7cd27a4e1 Mon Sep 17 00:00:00 2001 From: Edgar Date: Thu, 19 Aug 2021 19:46:38 -0400 Subject: [PATCH 4/8] Update min version down to allowed --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 0cce771..998b35b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,7 +21,7 @@ VERSION_NAME=1.2.9 VERSION_CODE=11 -ANDROID_BUILD_MIN_SDK_VERSION=28 +ANDROID_BUILD_MIN_SDK_VERSION=14 ANDROID_BUILD_TARGET_SDK_VERSION=28 ANDROID_BUILD_SDK_VERSION=28 ANDROID_BUILD_TOOLS_VERSION=28.0.3 From 9a0bcec6cad08688c4480ab6f3e767433cfdec55 Mon Sep 17 00:00:00 2001 From: Edgar Date: Thu, 19 Aug 2021 19:49:50 -0400 Subject: [PATCH 5/8] Merge remote-tracking branch 'nehchal/insert_node' (cherry picked from commit 322b8e0 from https://github.com/nehchal/AndroidTreeView) --- .../com/unnamed/b/atv/model/TreeNode.java | 17 +++++++++ .../unnamed/b/atv/view/AndroidTreeView.java | 35 ++++++++++++++++--- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/library/src/main/java/com/unnamed/b/atv/model/TreeNode.java b/library/src/main/java/com/unnamed/b/atv/model/TreeNode.java index dbf33f8..3515737 100644 --- a/library/src/main/java/com/unnamed/b/atv/model/TreeNode.java +++ b/library/src/main/java/com/unnamed/b/atv/model/TreeNode.java @@ -53,6 +53,23 @@ public TreeNode addChild(TreeNode childNode) { return this; } + /** + * Adds a child node at give position + * @param childNode + * @param position Fist position is 0. If -1, child is inserted at the end + * @return + */ + public TreeNode addChild(TreeNode childNode, int position) { + childNode.mParent = this; + childNode.mId = generateId(); + + if(position == -1 || position > children.size()) + position = childNode.size(); + + children.add(position, childNode); + return this; + } + public TreeNode addChildren(TreeNode... nodes) { for (TreeNode n : nodes) { addChild(n); diff --git a/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java b/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java index 153bc0a..0f10404 100644 --- a/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java +++ b/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java @@ -238,7 +238,7 @@ private void expandNode(final TreeNode node, boolean includeSubnodes) { parentViewHolder.toggle(true); for (final TreeNode n : node.getChildren()) { - addNode(parentViewHolder.getNodeItemsView(), n); + addNode(parentViewHolder.getNodeItemsView(), n, -1); if (n.isExpanded() || includeSubnodes) { expandNode(n, includeSubnodes); @@ -256,10 +256,20 @@ private void expandNode(final TreeNode node, boolean includeSubnodes) { } - private void addNode(ViewGroup container, final TreeNode n) { + /** + * Add the view corresponding to TreeNode to the View Group + * @param container + * @param n + */ + private void addNode(ViewGroup container, final TreeNode n, int index) { final TreeNode.BaseNodeViewHolder viewHolder = getViewHolderForNode(n); final View nodeView = viewHolder.getView(); - container.addView(nodeView); + + if(index == -1) + container.addView(nodeView); + else + container.addView(nodeView, index); + if (mSelectionModeEnabled) { viewHolder.toggleSelectionMode(mSelectionModeEnabled); } @@ -470,11 +480,26 @@ public boolean willChangeBounds() { //----------------------------------------------------------------- //Add / Remove + /** + * Add the node in the end + * @param parent + * @param nodeToAdd + */ public void addNode(TreeNode parent, final TreeNode nodeToAdd) { - parent.addChild(nodeToAdd); + addNode(parent, nodeToAdd, -1); + } + + /** + * Adds the node at given position + * @param parent + * @param nodeToAdd + * @param position if -1, node is add in the last + */ + public void addNode(TreeNode parent, final TreeNode nodeToAdd, int position) { + parent.addChild(nodeToAdd, position); if (parent.isExpanded()) { final TreeNode.BaseNodeViewHolder parentViewHolder = getViewHolderForNode(parent); - addNode(parentViewHolder.getNodeItemsView(), nodeToAdd); + addNode(parentViewHolder.getNodeItemsView(), nodeToAdd, position); } } From b9bc386ece73fd7d656fe0efb05c64a255f3fce8 Mon Sep 17 00:00:00 2001 From: pe1uca Date: Fri, 20 Aug 2021 18:21:13 -0400 Subject: [PATCH 6/8] Always send if nodes should be included --- .../com/unnamed/b/atv/view/AndroidTreeView.java | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java b/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java index 0f10404..5bd9874 100644 --- a/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java +++ b/library/src/main/java/com/unnamed/b/atv/view/AndroidTreeView.java @@ -158,14 +158,6 @@ private void expandLevel(TreeNode node, int level) { } } - public void expandNode(TreeNode node) { - expandNode(node, false); - } - - public void collapseNode(TreeNode node) { - collapseNode(node, false); - } - public String getSaveState() { final StringBuilder builder = new StringBuilder(); getSaveState(mRoot, builder); @@ -187,7 +179,7 @@ public void restoreState(String saveState) { private void restoreNodeState(TreeNode node, Set openNodes) { for (TreeNode n : node.getChildren()) { if (openNodes.contains(n.getPath())) { - expandNode(n); + expandNode(n, false); restoreNodeState(n, openNodes); } } @@ -212,7 +204,7 @@ public void toggleNode(TreeNode node) { } - private void collapseNode(TreeNode node, final boolean includeSubnodes) { + public void collapseNode(TreeNode node, final boolean includeSubnodes) { node.setExpanded(false); TreeNode.BaseNodeViewHolder nodeViewHolder = getViewHolderForNode(node); @@ -229,7 +221,7 @@ private void collapseNode(TreeNode node, final boolean includeSubnodes) { } } - private void expandNode(final TreeNode node, boolean includeSubnodes) { + public void expandNode(final TreeNode node, boolean includeSubnodes) { node.setExpanded(true); final TreeNode.BaseNodeViewHolder parentViewHolder = getViewHolderForNode(node); parentViewHolder.getNodeItemsView().removeAllViews(); From ea5fa30429fa87ce9ffe33362a08a3a0a4b4514c Mon Sep 17 00:00:00 2001 From: pe1uca Date: Fri, 20 Aug 2021 18:21:38 -0400 Subject: [PATCH 7/8] Update compile to implementation --- library/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/build.gradle b/library/build.gradle index 89f874e..8141446 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -18,8 +18,8 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'androidx.appcompat:appcompat:1.0.0' + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'androidx.appcompat:appcompat:1.3.1' } apply from: '../maven_push.gradle' From 0e43be8a0f283ecfa49da00951f77bcdd0fdc3ba Mon Sep 17 00:00:00 2001 From: pe1uca Date: Fri, 20 Aug 2021 18:22:50 -0400 Subject: [PATCH 8/8] Update readme Include how to add to project. Copied from https://github.com/jleuser/AndroidTreeView/releases --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 89074e2..ed8b74a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,26 @@ AndroidTreeView ==================== +[![Release](https://jitpack.io/v/pe1uca/AndroidTreeView.svg)](https://jitpack.io/#pe1uca/AndroidTreeView) + +This is a fork of the original [AndroidTreeView](https://github.com/bmelnychuk/AndroidTreeView) library provided by [Bogdan Melnychuk](https://github.com/bmelnychuk). + +Compared to the original library, some of the pull requests to the original library have been merged into this version. + +This fork can be used in your build files thanks to jitpack.io. You have to add these lines in your `build.gradle` file: + + ```java +repositories { + maven { url "https://jitpack.io" } +} + +dependencies { + implementation 'com.github.pe1uca:AndroidTreeView:v1.0.0' +} + ``` + +## Original readme + ### Recent changes