From ee5189230ffa85cc40f277b81f2056c7ab623138 Mon Sep 17 00:00:00 2001 From: Aan Patel Date: Thu, 24 Dec 2020 15:52:58 -0500 Subject: [PATCH] Add long click support * onLongClickListener method in TreeViewAdapter.OnTreeNodeListener * Declare long click listener for View in TreeViewAdapter.onBindViewHolder * Update build.gradle for loading demo on Android Studio 4.x --- .idea/caches/build_file_checksums.ser | Bin 0 -> 597 bytes .idea/compiler.xml | 18 +------ .idea/gradle.xml | 3 ++ .idea/jarRepositories.xml | 50 ++++++++++++++++++ .idea/misc.xml | 12 +---- .idea/modules.xml | 6 +-- .idea/vcs.xml | 6 +++ .../com/recyclertreeview/MainActivity.java | 20 +++++++ build.gradle | 1 + .../recyclertreeview_lib/TreeViewAdapter.java | 14 +++++ 10 files changed, 99 insertions(+), 31 deletions(-) create mode 100644 .idea/caches/build_file_checksums.ser create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser new file mode 100644 index 0000000000000000000000000000000000000000..d3c11a5a6c2397b6b52f4f9868f41c166c0cfda6 GIT binary patch literal 597 zcmZ4UmVvdnh`~NNKUXg?FQq6yGexf?KR>5fFEb@IQ7^qHF(oHeub?PDD>b=9F91S2 zm1gFoxMk*~I%lLNXBU^|7Q2L-Ts|(GuF1r};TL2`N^IX#cW;tZfX zEBmd3hs6>uGBYr_F>vMNC#JY1CYR(Fc`|U8WE7H z;?$Co%)Insn8reeItDh7+Orywr8_O}Kg&8%Q>wqVF}#F9u_!gUGC3!;sH7-0wJbBW zTsJ2(3DsJ-Za2;c#yqL*d(XK9DV8;NDwZ(tptujN@bbchs`=}uxH`?0Q&n|Ny$keA zPJVJ?4k%&@fL3Lu7MH>m7lbHh&04AFE&fZw+)>{}s)Rw!*(xTqIJKxa#xXH32I`3z xMBHK+aYeT0W - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 31a27b7..c2f6c66 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,8 +1,10 @@ + diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..7b8cee7 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 3be1ace..e552dbf 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,17 +27,7 @@ - - - - - - - - - - - + diff --git a/.idea/modules.xml b/.idea/modules.xml index bb2e094..8a8f9cc 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,9 +2,9 @@ - - - + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/java/tellh/com/recyclertreeview/MainActivity.java b/app/src/main/java/tellh/com/recyclertreeview/MainActivity.java index 5fc3861..c9d038e 100644 --- a/app/src/main/java/tellh/com/recyclertreeview/MainActivity.java +++ b/app/src/main/java/tellh/com/recyclertreeview/MainActivity.java @@ -7,6 +7,7 @@ import android.view.Menu; import android.view.MenuItem; import android.widget.ImageView; +import android.widget.Toast; import java.util.ArrayList; import java.util.Arrays; @@ -91,6 +92,25 @@ public void onToggle(boolean isExpand, RecyclerView.ViewHolder holder) { ivArrow.animate().rotationBy(rotateDegree) .start(); } + + @Override + public boolean onLongClick(TreeNode node, RecyclerView.ViewHolder holder) { + if (!node.isLeaf()) { + //read name of dir + Toast.makeText( + MainActivity.this, + "Long clicked: "+((Dir) node.getContent()).dirName, + Toast.LENGTH_SHORT + ).show(); + } else { + Toast.makeText( + MainActivity.this, + "Long clicked: "+ ((File) node.getContent()).fileName, + Toast.LENGTH_SHORT + ).show(); + } + return true; + } }); rv.setAdapter(adapter); } diff --git a/build.gradle b/build.gradle index 987db10..644dd70 100644 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,7 @@ buildscript { repositories { jcenter() + google() } dependencies { //JitPack diff --git a/recyclertreeview-lib/src/main/java/tellh/com/recyclertreeview_lib/TreeViewAdapter.java b/recyclertreeview-lib/src/main/java/tellh/com/recyclertreeview_lib/TreeViewAdapter.java index eb973bf..5efd98f 100644 --- a/recyclertreeview-lib/src/main/java/tellh/com/recyclertreeview_lib/TreeViewAdapter.java +++ b/recyclertreeview-lib/src/main/java/tellh/com/recyclertreeview_lib/TreeViewAdapter.java @@ -1,5 +1,6 @@ package tellh.com.recyclertreeview_lib; +import android.app.Fragment; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; @@ -119,6 +120,17 @@ public void onClick(View v) { } } }); + + holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View view) { + TreeNode selectedNode = displayNodes.get(holder.getLayoutPosition()); + if (onTreeNodeListener != null && onTreeNodeListener.onLongClick(selectedNode, holder)) + return true; + return false; + } + }); + for (TreeViewBinder viewBinder : viewBinders) { if (viewBinder.getLayoutId() == displayNodes.get(position).getContent().getLayoutId()) viewBinder.bindView(holder, position, displayNodes.get(position)); @@ -190,6 +202,8 @@ public interface OnTreeNodeListener { * @param isExpand the status of TreeNodes after being toggled. */ void onToggle(boolean isExpand, RecyclerView.ViewHolder holder); + + boolean onLongClick(TreeNode node, RecyclerView.ViewHolder holder); } public void refresh(List treeNodes) {