1 package eu
.alefzero
.owncloud
;
3 import java
.util
.LinkedList
;
4 import java
.util
.Stack
;
6 import android
.content
.Context
;
7 import android
.util
.AttributeSet
;
8 import android
.widget
.HorizontalScrollView
;
9 import android
.widget
.ImageView
;
10 import android
.widget
.LinearLayout
;
11 import android
.widget
.ScrollView
;
12 import android
.widget
.TextView
;
14 public class PathLayout
extends LinearLayout
{
16 private LinkedList
<String
> paths
;
17 ScrollView internalScroll
;
20 public PathLayout(Context context
) {
25 public PathLayout(Context context
, AttributeSet attrs
) {
26 super(context
, attrs
);
31 if (paths
.size() == 0) {
34 int start
= paths
.size()*2-2;
36 if (paths
.size() == 1) {
40 view
.removeViews(start
, count
);
41 return paths
.removeLast();
44 public void addPath(String path
) {
45 for (String s
: path
.split("/")) if (s
.length() != 0) push(s
);
48 public void push(String path
) {
49 // its weird that we cannot declare static imgView as path separator
50 if (paths
.size() != 0) {
51 ImageView iv
= new ImageView(getContext());
52 iv
.setImageDrawable(getResources().getDrawable(R
.drawable
.breadcrumb
));
53 iv
.setPadding(2, 0, 2, 0);
56 TextView tv
= new TextView(getContext());
57 tv
.setLayoutParams(getLayoutParams());
60 HorizontalScrollView hsv
= (HorizontalScrollView
) internalScroll
.getChildAt(0);
61 hsv
.smoothScrollTo(hsv
.getMaxScrollAmount()*2, 0);
65 public String
peek() {
69 public String
getFullPath() {
70 String ret
= new String();
71 for (int i
= 0; i
< paths
.size(); i
++) {
72 ret
+= "/" + paths
.get(i
);
77 private void initialize() {
78 paths
= new LinkedList
<String
>();
79 internalScroll
= new ScrollView(getContext());
80 internalScroll
.setFillViewport(true
);
81 HorizontalScrollView hsv
= new HorizontalScrollView(getContext());
82 hsv
.setSmoothScrollingEnabled(true
);
83 internalScroll
.addView(hsv
);
84 view
= new LinearLayout(getContext());
85 addView(internalScroll
);
87 ImageView iv
= new ImageView(getContext());
88 iv
.setImageDrawable(getResources().getDrawable(R
.drawable
.breadcrumb
));