Skip to content

Commit cfd8ab6

Browse files
authored
Merge pull request #2 from ffelini/missing-features
Implement missing features sample
2 parents acb6899 + b1f324f commit cfd8ab6

File tree

4 files changed

+92
-2
lines changed

4 files changed

+92
-2
lines changed

app/src/main/java/com/unnamed/b/atv/sample/activity/MainActivity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.unnamed.b.atv.sample.fragment.FolderStructureFragment;
1515
import com.unnamed.b.atv.sample.fragment.SelectableTreeFragment;
1616
import com.unnamed.b.atv.sample.fragment.TwoDScrollingArrowExpandFragment;
17+
import com.unnamed.b.atv.sample.fragment.TwoDScrollingArrowExpandNodeFragment;
1718
import com.unnamed.b.atv.sample.fragment.TwoDScrollingFragment;
1819

1920
import java.util.ArrayList;
@@ -36,6 +37,7 @@ protected void onCreate(Bundle savedInstanceState) {
3637
listItems.put("Selectable Nodes", SelectableTreeFragment.class);
3738
listItems.put("2d scrolling", TwoDScrollingFragment.class);
3839
listItems.put("Expand with arrow only", TwoDScrollingArrowExpandFragment.class);
40+
listItems.put("Expand with arrow one node only", TwoDScrollingArrowExpandNodeFragment.class);
3941

4042

4143
final List<String> list = new ArrayList(listItems.keySet());

app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingArrowExpandFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
4646
tView.setDefaultNodeClickListener(TwoDScrollingArrowExpandFragment.this);
4747
tView.setDefaultViewHolder(ArrowExpandSelectableHeaderHolder.class);
4848
containerView.addView(tView.getView());
49-
tView.setUseAutoToggle(false);
49+
tView.setExpansionAutoToggle(false);
5050

5151
tView.expandAll();
5252

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package com.unnamed.b.atv.sample.fragment;
2+
3+
import android.app.Fragment;
4+
import android.os.Bundle;
5+
import android.text.TextUtils;
6+
import android.view.LayoutInflater;
7+
import android.view.View;
8+
import android.view.ViewGroup;
9+
import android.widget.Toast;
10+
11+
import com.unnamed.b.atv.model.TreeNode;
12+
import com.unnamed.b.atv.sample.R;
13+
import com.unnamed.b.atv.sample.holder.ArrowExpandSelectableHeaderHolder;
14+
import com.unnamed.b.atv.sample.holder.IconTreeItemHolder;
15+
import com.unnamed.b.atv.view.AndroidTreeView;
16+
17+
/**
18+
* Created by Bogdan Melnychuk on 2/12/15 modified by Szigeti Peter 2/2/16.
19+
*/
20+
public class TwoDScrollingArrowExpandNodeFragment extends Fragment implements TreeNode.TreeNodeClickListener{
21+
private static final String NAME = "Very long name for folder";
22+
private AndroidTreeView tView;
23+
24+
@Override
25+
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
26+
View rootView = inflater.inflate(R.layout.fragment_selectable_nodes, null, false);
27+
rootView.findViewById(R.id.status).setVisibility(View.GONE);
28+
ViewGroup containerView = (ViewGroup) rootView.findViewById(R.id.container);
29+
30+
TreeNode root = TreeNode.root();
31+
32+
TreeNode s1 = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder with very long name ")).setViewHolder(
33+
new ArrowExpandSelectableHeaderHolder(getActivity()));
34+
TreeNode s2 = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Another folder with very long name")).setViewHolder(
35+
new ArrowExpandSelectableHeaderHolder(getActivity()));
36+
37+
fillFolder(s1);
38+
TreeNode nodeToExpand = fillFolder(s2);
39+
40+
root.addChildren(s1, s2);
41+
42+
tView = new AndroidTreeView(getActivity(), root);
43+
tView.setDefaultAnimation(true);
44+
tView.setUse2dScroll(true);
45+
tView.setDefaultContainerStyle(R.style.TreeNodeStyleCustom);
46+
tView.setDefaultNodeClickListener(TwoDScrollingArrowExpandNodeFragment.this);
47+
tView.setDefaultViewHolder(ArrowExpandSelectableHeaderHolder.class);
48+
containerView.addView(tView.getView());
49+
50+
tView.setAutoScrollToExpandedNode(true);
51+
tView.setAutoScrollToSelectedLeafs(true);
52+
tView.setLeafSelectionAutoToggle(true);
53+
54+
tView.expandNode(s1);
55+
tView.expandNodeIncludingParents(nodeToExpand, true);
56+
57+
if (savedInstanceState != null) {
58+
String state = savedInstanceState.getString("tState");
59+
if (!TextUtils.isEmpty(state)) {
60+
tView.restoreState(state);
61+
}
62+
}
63+
return rootView;
64+
}
65+
66+
private TreeNode fillFolder(TreeNode folder) {
67+
TreeNode currentNode = folder;
68+
TreeNode file = null;
69+
for (int i = 0; i < 6; i++) {
70+
file = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_folder, NAME + " " + i));
71+
currentNode.addChild(file);
72+
currentNode = file;
73+
}
74+
return file;
75+
}
76+
77+
@Override
78+
public void onSaveInstanceState(Bundle outState) {
79+
super.onSaveInstanceState(outState);
80+
outState.putString("tState", tView.getSaveState());
81+
}
82+
83+
@Override
84+
public void onClick(TreeNode node, Object value) {
85+
Toast toast = Toast.makeText(getActivity(), ((IconTreeItemHolder.IconTreeItem)value).text, Toast.LENGTH_SHORT);
86+
toast.show();
87+
}
88+
}

app/src/main/java/com/unnamed/b/atv/sample/holder/ArrowExpandSelectableHeaderHolder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public View createNodeView(final TreeNode node, IconTreeItemHolder.IconTreeItem
4242
arrowView.setOnClickListener(new View.OnClickListener() {
4343
@Override
4444
public void onClick(View view) {
45-
tView.toggleNode(node);
45+
tView.toggleNodeExpansion(node);
4646
}
4747
});
4848

0 commit comments

Comments
 (0)