X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/0627629e7df6d4ee515c9c72c331e05c34911bf3..7e20e39f259981e923fff4f3470c39757b70d48d:/src/eu/alefzero/owncloud/PathLayout.java diff --git a/src/eu/alefzero/owncloud/PathLayout.java b/src/eu/alefzero/owncloud/PathLayout.java new file mode 100644 index 00000000..1927404a --- /dev/null +++ b/src/eu/alefzero/owncloud/PathLayout.java @@ -0,0 +1,82 @@ +package eu.alefzero.owncloud; + +import java.net.Inet4Address; +import java.util.Stack; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.HorizontalScrollView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.TextView; + +public class PathLayout extends LinearLayout { + + private Stack paths; + ScrollView internalScroll; + LinearLayout view; + + public PathLayout(Context context) { + super(context); + initialize(); + } + + public PathLayout(Context context, AttributeSet attrs) { + super(context, attrs); + initialize(); + } + + public String pop() { + if (paths.empty()) { + return null; + } + int start = paths.size()*2-2; + int count = 2; + if (paths.size() == 1) { + start++; + count--; + } + view.removeViews(start, count); + return paths.pop(); + } + + public void push(String path) { + // its weird that we cannot declare static imgView as path separator + if (!paths.empty()) { + ImageView iv = new ImageView(getContext()); + iv.setImageDrawable(getResources().getDrawable(R.drawable.breadcrumb)); + iv.setPadding(2, 0, 2, 0); + view.addView(iv); + } + TextView tv = new TextView(getContext()); + tv.setLayoutParams(getLayoutParams()); + tv.setText(path); + view.addView(tv); + HorizontalScrollView hsv = (HorizontalScrollView) internalScroll.getChildAt(0); + hsv.smoothScrollTo(hsv.getMaxScrollAmount()*2, 0); + paths.push(path); + } + + public String peek() { + return paths.peek(); + } + + private void initialize() { + paths = new Stack(); + internalScroll = new ScrollView(getContext()); + internalScroll.setFillViewport(true); + HorizontalScrollView hsv = new HorizontalScrollView(getContext()); + hsv.setSmoothScrollingEnabled(true); + internalScroll.addView(hsv); + view = new LinearLayout(getContext()); + addView(internalScroll); + hsv.addView(view); + ImageView iv = new ImageView(getContext()); + iv.setImageDrawable(getResources().getDrawable(R.drawable.breadcrumb)); + view.addView(iv); + } + +}