summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/IconDropTarget.java
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2010-12-15 13:14:23 -0800
committerWinson Chung <winsonc@google.com>2010-12-15 16:11:18 -0800
commit760e5375f003accf04f789e90a919ed476d4c335 (patch)
treeddfc87c374eb5d2fc0877e82e5953b6c1b4418e5 /src/com/android/launcher2/IconDropTarget.java
parentfc1fd8dca0829a331035336a092a6bf8bff44b83 (diff)
downloadandroid_packages_apps_Trebuchet-760e5375f003accf04f789e90a919ed476d4c335.tar.gz
android_packages_apps_Trebuchet-760e5375f003accf04f789e90a919ed476d4c335.tar.bz2
android_packages_apps_Trebuchet-760e5375f003accf04f789e90a919ed476d4c335.zip
Fixing drawing order issue in bg gradient
- Synchronizing icon button animations + some initial code refactoring for icon buttons - Fixing crash in non-xlarge devices - Adding fix to prevent customization bg protection from being drawn in all apps Change-Id: If231a1bf4b32f59fb1de85ff67143ee08d2c93a1
Diffstat (limited to 'src/com/android/launcher2/IconDropTarget.java')
-rw-r--r--src/com/android/launcher2/IconDropTarget.java136
1 files changed, 136 insertions, 0 deletions
diff --git a/src/com/android/launcher2/IconDropTarget.java b/src/com/android/launcher2/IconDropTarget.java
new file mode 100644
index 000000000..5b375c3ff
--- /dev/null
+++ b/src/com/android/launcher2/IconDropTarget.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher2;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.graphics.Paint;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ImageView;
+
+import com.android.launcher.R;
+
+/**
+ * Implements a DropTarget which allows applications to be dropped on it,
+ * in order to launch the application info for that app.
+ */
+public class IconDropTarget extends ImageView implements DropTarget, DragController.DragListener {
+ protected Launcher mLauncher;
+
+ /**
+ * If true, this View responsible for managing its own visibility, and that of its handle.
+ * This is generally the case, but it will be set to false when this is part of the
+ * Contextual Action Bar.
+ */
+ protected boolean mDragAndDropEnabled;
+
+ /** Whether this drop target is active for the current drag */
+ protected boolean mActive;
+
+ /** The view that this view should appear in the place of. */
+ protected View mHandle = null;
+
+ /** The paint applied to the drag view on hover */
+ protected final Paint mHoverPaint = new Paint();
+
+ /** Drag zone padding */
+ protected int mInnerDragPadding;
+ protected int mOuterDragPadding;
+
+ public IconDropTarget(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public IconDropTarget(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ mDragAndDropEnabled = true;
+ }
+
+ void setLauncher(Launcher launcher) {
+ mLauncher = launcher;
+ }
+
+ void setHandle(View view) {
+ mHandle = view;
+ }
+
+ void setDragAndDropEnabled(boolean enabled) {
+ mDragAndDropEnabled = enabled;
+ }
+
+ public boolean acceptDrop(DragSource source, int x, int y, int xOffset, int yOffset,
+ DragView dragView, Object dragInfo) {
+ return false;
+ }
+
+ public void onDrop(DragSource source, int x, int y, int xOffset, int yOffset,
+ DragView dragView, Object dragInfo) {
+ // Do nothing
+ }
+
+ public void onDragEnter(DragSource source, int x, int y, int xOffset, int yOffset,
+ DragView dragView, Object dragInfo) {
+ if (mDragAndDropEnabled) {
+ dragView.setPaint(mHoverPaint);
+ }
+ }
+
+ public void onDragOver(DragSource source, int x, int y, int xOffset, int yOffset,
+ DragView dragView, Object dragInfo) {
+ // Do nothing
+ }
+
+ public void onDragExit(DragSource source, int x, int y, int xOffset, int yOffset,
+ DragView dragView, Object dragInfo) {
+ if (mDragAndDropEnabled) {
+ dragView.setPaint(null);
+ }
+ }
+
+ public void onDragStart(DragSource source, Object info, int dragAction) {
+ // Do nothing
+ }
+
+ public boolean isDropEnabled() {
+ return mDragAndDropEnabled && mActive;
+ }
+
+ public void onDragEnd() {
+ // Do nothing
+ }
+
+ @Override
+ public void getHitRect(Rect outRect) {
+ super.getHitRect(outRect);
+ if (LauncherApplication.isScreenXLarge()) {
+ outRect.top -= mOuterDragPadding;
+ outRect.left -= mInnerDragPadding;
+ outRect.bottom += mOuterDragPadding;
+ outRect.right += mOuterDragPadding;
+ }
+ }
+
+ @Override
+ public DropTarget getDropTargetDelegate(DragSource source, int x, int y, int xOffset,
+ int yOffset, DragView dragView, Object dragInfo) {
+ return null;
+ }
+}