-/* ownCloud Android client application\r
- * Copyright (C) 2011 Bartek Przybylski\r
- *\r
- * This program is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see <http://www.gnu.org/licenses/>.\r
- *\r
- */\r
-package eu.alefzero.owncloud.ui.fragment;\r
-\r
-import java.util.LinkedList;\r
-import java.util.Stack;\r
-\r
-import eu.alefzero.owncloud.R;\r
-import eu.alefzero.owncloud.R.drawable;\r
-\r
-import android.content.Context;\r
-import android.util.AttributeSet;\r
-import android.widget.HorizontalScrollView;\r
-import android.widget.ImageView;\r
-import android.widget.LinearLayout;\r
-import android.widget.ScrollView;\r
-import android.widget.TextView;\r
-\r
-/**\r
- * Part of the ActionBar Layout\r
- * @author Bartek Przybylski\r
- *\r
- */\r
-public class PathLayout extends LinearLayout {\r
-\r
- private LinkedList<String> paths;\r
- ScrollView internalScroll;\r
- LinearLayout view;\r
-\r
- public PathLayout(Context context) {\r
- super(context);\r
- initialize();\r
- }\r
- \r
- public PathLayout(Context context, AttributeSet attrs) {\r
- super(context, attrs);\r
- initialize();\r
- }\r
-\r
- public String pop() {\r
- if (paths.size() == 0) {\r
- return null;\r
- }\r
- int start = paths.size()*2-2;\r
- int count = 2;\r
- if (paths.size() == 1) {\r
- start++;\r
- count--;\r
- }\r
- view.removeViews(start, count);\r
- return paths.removeLast();\r
- }\r
-\r
- public void addPath(String path) {\r
- for (String s : path.split("/")) if (s.length() != 0) push(s);\r
- }\r
- \r
- public void push(String path) {\r
- // its weird that we cannot declare static imgView as path separator\r
- if (paths.size() != 0) {\r
- ImageView iv = new ImageView(getContext());\r
- iv.setImageDrawable(getResources().getDrawable(R.drawable.breadcrumb));\r
- iv.setPadding(2, 0, 2, 0);\r
- view.addView(iv);\r
- }\r
- TextView tv = new TextView(getContext());\r
- tv.setLayoutParams(getLayoutParams());\r
- tv.setText(path);\r
- view.addView(tv);\r
- HorizontalScrollView hsv = (HorizontalScrollView) internalScroll.getChildAt(0);\r
- hsv.smoothScrollTo(hsv.getMaxScrollAmount()*2, 0);\r
- paths.addLast(path);\r
- }\r
- \r
- public String peek() {\r
- return paths.peek();\r
- }\r
-\r
- public String getFullPath() {\r
- String ret = new String();\r
- for (int i = 0; i < paths.size(); i++) {\r
- ret += "/" + paths.get(i);\r
- }\r
- return ret;\r
- }\r
- \r
- private void initialize() {\r
- paths = new LinkedList<String>();\r
- internalScroll = new ScrollView(getContext());\r
- internalScroll.setFillViewport(true);\r
- HorizontalScrollView hsv = new HorizontalScrollView(getContext());\r
- hsv.setSmoothScrollingEnabled(true);\r
- internalScroll.addView(hsv);\r
- view = new LinearLayout(getContext());\r
- addView(internalScroll);\r
- hsv.addView(view);\r
- ImageView iv = new ImageView(getContext());\r
- iv.setImageDrawable(getResources().getDrawable(R.drawable.breadcrumb));\r
- view.addView(iv);\r
- }\r
-\r
-}\r