X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/a20681b06320824a80f6da1e86c1c2d52a371636..a4ba6170ea7696e085b07adfef73eeb8b77cb8e2:/src/eu/alefzero/owncloud/ui/QuickAction.java
diff --git a/src/eu/alefzero/owncloud/ui/QuickAction.java b/src/eu/alefzero/owncloud/ui/QuickAction.java
deleted file mode 100644
index e1d97d22..00000000
--- a/src/eu/alefzero/owncloud/ui/QuickAction.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/* ownCloud Android client application
- * Copyright (C) 2011 Bartek Przybylski
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-package eu.alefzero.owncloud.ui;
-
-import android.content.Context;
-
-import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
-
-import android.widget.ImageView;
-import android.widget.TextView;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup.LayoutParams;
-import android.view.ViewGroup;
-
-import java.util.ArrayList;
-
-import eu.alefzero.owncloud.R;
-
-/**
- * Popup window, shows action list as icon and text like the one in Gallery3D
- * app.
- *
- * @author Lorensius. W. T
- */
-public class QuickAction extends CustomPopup {
- private final View root;
- private final ImageView mArrowUp;
- private final ImageView mArrowDown;
- private final LayoutInflater inflater;
- private final Context context;
-
- protected static final int ANIM_GROW_FROM_LEFT = 1;
- protected static final int ANIM_GROW_FROM_RIGHT = 2;
- protected static final int ANIM_GROW_FROM_CENTER = 3;
- protected static final int ANIM_REFLECT = 4;
- protected static final int ANIM_AUTO = 5;
-
- private int animStyle;
- private ViewGroup mTrack;
- private ScrollView scroller;
- private ArrayList actionList;
-
- /**
- * Constructor
- *
- * @param anchor {@link View} on where the popup window should be displayed
- */
- public QuickAction(View anchor) {
- super(anchor);
-
- actionList = new ArrayList();
- context = anchor.getContext();
- inflater = (LayoutInflater) context
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- root = (ViewGroup) inflater.inflate(R.layout.popup, null);
-
- mArrowDown = (ImageView) root.findViewById(R.id.arrow_down);
- mArrowUp = (ImageView) root.findViewById(R.id.arrow_up);
-
- setContentView(root);
-
- mTrack = (ViewGroup) root.findViewById(R.id.tracks);
- scroller = (ScrollView) root.findViewById(R.id.scroller);
- animStyle = ANIM_AUTO;
- }
-
- /**
- * Set animation style
- *
- * @param animStyle animation style, default is set to ANIM_AUTO
- */
- public void setAnimStyle(int animStyle) {
- this.animStyle = animStyle;
- }
-
- /**
- * Add action item
- *
- * @param action {@link ActionItem} object
- */
- public void addActionItem(ActionItem action) {
- actionList.add(action);
- }
-
- /**
- * Show popup window. Popup is automatically positioned, on top or bottom of
- * anchor view.
- *
- */
- public void show() {
- preShow();
-
- int xPos, yPos;
-
- int[] location = new int[2];
-
- mAnchor.getLocationOnScreen(location);
-
- Rect anchorRect = new Rect(location[0], location[1], location[0]
- + mAnchor.getWidth(), location[1] + mAnchor.getHeight());
-
- createActionList();
-
- root.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
- LayoutParams.WRAP_CONTENT));
- root.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
-
- int rootHeight = root.getMeasuredHeight();
- int rootWidth = root.getMeasuredWidth();
-
- int screenWidth = mWManager.getDefaultDisplay().getWidth();
- int screenHeight = mWManager.getDefaultDisplay().getHeight();
-
- // automatically get X coord of popup (top left)
- if ((anchorRect.left + rootWidth) > screenWidth) {
- xPos = anchorRect.left - (rootWidth - mAnchor.getWidth());
- } else {
- if (mAnchor.getWidth() > rootWidth) {
- xPos = anchorRect.centerX() - (rootWidth / 2);
- } else {
- xPos = anchorRect.left;
- }
- }
-
- int dyTop = anchorRect.top;
- int dyBottom = screenHeight - anchorRect.bottom;
-
- boolean onTop = (dyTop > dyBottom) ? true : false;
-
- if (onTop) {
- if (rootHeight > dyTop) {
- yPos = 15;
- LayoutParams l = scroller.getLayoutParams();
- l.height = dyTop - mAnchor.getHeight();
- } else {
- yPos = anchorRect.top - rootHeight;
- }
- } else {
- yPos = anchorRect.bottom;
-
- if (rootHeight > dyBottom) {
- LayoutParams l = scroller.getLayoutParams();
- l.height = dyBottom;
- }
- }
-
- showArrow(((onTop) ? R.id.arrow_down : R.id.arrow_up),
- anchorRect.centerX() - xPos);
-
- setAnimationStyle(screenWidth, anchorRect.centerX(), onTop);
-
- mWindow.showAtLocation(mAnchor, Gravity.NO_GRAVITY, xPos, yPos);
- }
-
- /**
- * Set animation style
- *
- * @param screenWidth screen width
- * @param requestedX distance from left edge
- * @param onTop flag to indicate where the popup should be displayed. Set
- * TRUE if displayed on top of anchor view and vice versa
- */
- private void setAnimationStyle(int screenWidth, int requestedX,
- boolean onTop) {
- int arrowPos = requestedX - mArrowUp.getMeasuredWidth() / 2;
-
- switch (animStyle) {
- case ANIM_GROW_FROM_LEFT:
- mWindow.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Left
- : R.style.Animations_PopDownMenu_Left);
- break;
-
- case ANIM_GROW_FROM_RIGHT:
- mWindow.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Right
- : R.style.Animations_PopDownMenu_Right);
- break;
-
- case ANIM_GROW_FROM_CENTER:
- mWindow.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Center
- : R.style.Animations_PopDownMenu_Center);
- break;
-
- case ANIM_REFLECT:
- mWindow.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Reflect
- : R.style.Animations_PopDownMenu_Reflect);
- break;
-
- case ANIM_AUTO:
- if (arrowPos <= screenWidth / 4) {
- mWindow.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Left
- : R.style.Animations_PopDownMenu_Left);
- } else if (arrowPos > screenWidth / 4
- && arrowPos < 3 * (screenWidth / 4)) {
- mWindow.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Center
- : R.style.Animations_PopDownMenu_Center);
- } else {
- mWindow.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Right
- : R.style.Animations_PopDownMenu_Right);
- }
-
- break;
- }
- }
-
- /**
- * Create action list
- */
- private void createActionList() {
- View view;
- String title;
- Drawable icon;
- OnClickListener listener;
-
- for (int i = 0; i < actionList.size(); i++) {
- title = actionList.get(i).getTitle();
- icon = actionList.get(i).getIcon();
- listener = actionList.get(i).getOnClickListerner();
-
- view = getActionItem(title, icon, listener);
-
- view.setFocusable(true);
- view.setClickable(true);
-
- mTrack.addView(view);
- }
- }
-
- /**
- * Get action item {@link View}
- *
- * @param title action item title
- * @param icon {@link Drawable} action item icon
- * @param listener {@link View.OnClickListener} action item listener
- * @return action item {@link View}
- */
- private View getActionItem(String title, Drawable icon,
- OnClickListener listener) {
- LinearLayout container = (LinearLayout) inflater.inflate(
- R.layout.action_item, null);
-
- ImageView img = (ImageView) container.findViewById(R.id.icon);
- TextView text = (TextView) container.findViewById(R.id.title);
-
- if (icon != null) {
- img.setImageDrawable(icon);
- }
-
- if (title != null) {
- text.setText(title);
- }
-
- if (listener != null) {
- container.setOnClickListener(listener);
- }
-
- return container;
- }
-
- /**
- * Show arrow
- *
- * @param whichArrow arrow type resource id
- * @param requestedX distance from left screen
- */
- private void showArrow(int whichArrow, int requestedX) {
- final View showArrow = (whichArrow == R.id.arrow_up) ? mArrowUp
- : mArrowDown;
- final View hideArrow = (whichArrow == R.id.arrow_up) ? mArrowDown
- : mArrowUp;
-
- final int arrowWidth = mArrowUp.getMeasuredWidth();
-
- showArrow.setVisibility(View.VISIBLE);
-
- ViewGroup.MarginLayoutParams param = (ViewGroup.MarginLayoutParams) showArrow
- .getLayoutParams();
-
- param.leftMargin = requestedX - arrowWidth / 2;
-
- hideArrow.setVisibility(View.INVISIBLE);
- }
-}
\ No newline at end of file