summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2011-07-11 15:20:48 -0700
committerWinson Chung <winsonc@google.com>2011-07-12 16:04:46 -0700
commita62e9fd95ae10cff4676f2cc1f4d68334ca27a0b (patch)
treedb42f288a740bbaaf689f070e0aff66367be10de
parentfe63476a2d0b12dfc692c425d1c6cdbb41774ef0 (diff)
downloadandroid_packages_apps_Trebuchet-a62e9fd95ae10cff4676f2cc1f4d68334ca27a0b.tar.gz
android_packages_apps_Trebuchet-a62e9fd95ae10cff4676f2cc1f4d68334ca27a0b.tar.bz2
android_packages_apps_Trebuchet-a62e9fd95ae10cff4676f2cc1f4d68334ca27a0b.zip
Cleaning up some drop-target issues.
- Setting text color during drag over transitions - Fixing regression in drop target padding = Using old drop-down animation where possible Change-Id: Ia1c5ec9e58fc734d28133349d9920d123ed71ae6
-rw-r--r--res/layout/qsb_bar.xml2
-rw-r--r--res/values-land/config.xml5
-rw-r--r--res/values-large-land/dimens.xml2
-rw-r--r--res/values-large/config.xml3
-rw-r--r--res/values-large/dimens.xml4
-rw-r--r--res/values/config.xml4
-rw-r--r--res/values/dimens.xml3
-rw-r--r--src/com/android/launcher2/ButtonDropTarget.java13
-rw-r--r--src/com/android/launcher2/DeleteDropTarget.java6
-rw-r--r--src/com/android/launcher2/InfoDropTarget.java6
-rw-r--r--src/com/android/launcher2/SearchDropTargetBar.java43
11 files changed, 77 insertions, 14 deletions
diff --git a/res/layout/qsb_bar.xml b/res/layout/qsb_bar.xml
index b5b563b59..abcc941f3 100644
--- a/res/layout/qsb_bar.xml
+++ b/res/layout/qsb_bar.xml
@@ -26,7 +26,7 @@
<LinearLayout
style="@style/SearchDropTargetBar"
android:id="@+id/drag_target_bar"
- android:alpha="0">
+ android:visibility="gone">
<com.android.launcher2.DeleteDropTarget
style="@style/DropTargetButtonContainer"
diff --git a/res/values-land/config.xml b/res/values-land/config.xml
new file mode 100644
index 000000000..adbc015b5
--- /dev/null
+++ b/res/values-land/config.xml
@@ -0,0 +1,5 @@
+<resources>
+<!-- Workspace -->
+ <!-- Whether or not the drop targets drop down as opposed to fade in -->
+ <bool name="config_useDropTargetDownTransition">false</bool>
+</resources>
diff --git a/res/values-large-land/dimens.xml b/res/values-large-land/dimens.xml
index d14a8dfd0..12fc8b309 100644
--- a/res/values-large-land/dimens.xml
+++ b/res/values-large-land/dimens.xml
@@ -34,4 +34,4 @@
<dimen name="apps_customize_pageLayoutPaddingBottom">14dp</dimen>
<dimen name="apps_customize_pageLayoutPaddingLeft">40dp</dimen>
<dimen name="apps_customize_pageLayoutPaddingRight">40dp</dimen>
-</resources> \ No newline at end of file
+</resources>
diff --git a/res/values-large/config.xml b/res/values-large/config.xml
index 2a5266415..34dbb0fe9 100644
--- a/res/values-large/config.xml
+++ b/res/values-large/config.xml
@@ -18,6 +18,9 @@
<integer name="config_customizeWorkspaceShrinkTime">800</integer>
<!-- Workspace -->
+ <!-- Whether or not the drop targets drop down as opposed to fade in -->
+ <bool name="config_useDropTargetDownTransition">true</bool>
+
<!-- When dragging items on the workspace, how much bigger (in pixels) the dragged view
should be, as compared to the original view. If 0, it will not be scaled at all.
Should be an even number, for pixel alignment. -->
diff --git a/res/values-large/dimens.xml b/res/values-large/dimens.xml
index 59aaa417d..05ec9c8f8 100644
--- a/res/values-large/dimens.xml
+++ b/res/values-large/dimens.xml
@@ -56,10 +56,6 @@
<dimen name="all_apps_button_drawable_padding">0dip</dimen>
<dimen name="all_apps_button_vertical_padding">4dip</dimen>
- <!-- height & width of the drop rectangle for the trash icon -->
- <dimen name="delete_zone_vertical_drag_padding">20dip</dimen>
- <dimen name="delete_zone_horizontal_drag_padding">20dip</dimen>
-
<!-- roughly a status bar (for determining how many rows of icons are in home) -->
<dimen name="status_bar_height">48dip</dimen>
diff --git a/res/values/config.xml b/res/values/config.xml
index fca0acce0..7a452114d 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -1,5 +1,6 @@
<resources>
<bool name="config_hardwareAccelerated">true</bool>
+
<!-- AllApps/Customize/AppsCustomize -->
<!-- The alpha of the AppsCustomize bg in spring loaded mode -->
<integer name="config_appsCustomizeSpringLoadedBgAlpha">45</integer>
@@ -46,6 +47,9 @@
<integer name="config_allAppsBatchSize">0</integer>
<!-- Workspace -->
+ <!-- Whether or not the drop targets drop down as opposed to fade in -->
+ <bool name="config_useDropTargetDownTransition">true</bool>
+
<!-- The transition duration for the background of the drop targets -->
<integer name="config_dropTargetBgTransitionDuration">100</integer>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index c04dd8e06..08a2c76a4 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -43,6 +43,9 @@
<!-- height of the bottom row of controls -->
<dimen name="button_bar_height">56dip</dimen>
+ <!-- Drag padding to add to the drop targets -->
+ <dimen name="drop_target_drag_padding">20dp</dimen>
+
<!-- so we have access to this dimension in landscape mode even though
button_bar_height changes -->
<dimen name="button_bar_height_portrait">56dip</dimen>
diff --git a/src/com/android/launcher2/ButtonDropTarget.java b/src/com/android/launcher2/ButtonDropTarget.java
index f87889cfb..edc5acf21 100644
--- a/src/com/android/launcher2/ButtonDropTarget.java
+++ b/src/com/android/launcher2/ButtonDropTarget.java
@@ -17,6 +17,7 @@
package com.android.launcher2;
import android.content.Context;
+import android.content.res.Resources;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.FrameLayout;
@@ -32,6 +33,7 @@ public class ButtonDropTarget extends FrameLayout implements DropTarget, DragCon
protected final int mTransitionDuration;
protected Launcher mLauncher;
+ private int mBottomDragPadding;
/** Whether this drop target is active for the current drag */
protected boolean mActive;
@@ -46,8 +48,9 @@ public class ButtonDropTarget extends FrameLayout implements DropTarget, DragCon
public ButtonDropTarget(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
- mTransitionDuration =
- context.getResources().getInteger(R.integer.config_dropTargetBgTransitionDuration);
+ Resources r = getResources();
+ mTransitionDuration = r.getInteger(R.integer.config_dropTargetBgTransitionDuration);
+ mBottomDragPadding = r.getDimensionPixelSize(R.dimen.drop_target_drag_padding);
}
void setLauncher(Launcher launcher) {
@@ -87,6 +90,12 @@ public class ButtonDropTarget extends FrameLayout implements DropTarget, DragCon
}
@Override
+ public void getHitRect(android.graphics.Rect outRect) {
+ super.getHitRect(outRect);
+ outRect.bottom += mBottomDragPadding;
+ }
+
+ @Override
public DropTarget getDropTargetDelegate(DragObject d) {
return null;
}
diff --git a/src/com/android/launcher2/DeleteDropTarget.java b/src/com/android/launcher2/DeleteDropTarget.java
index c8c6faaf9..ffe453319 100644
--- a/src/com/android/launcher2/DeleteDropTarget.java
+++ b/src/com/android/launcher2/DeleteDropTarget.java
@@ -17,6 +17,7 @@
package com.android.launcher2;
import android.content.Context;
+import android.content.res.ColorStateList;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.PorterDuff;
@@ -31,6 +32,7 @@ import com.android.launcher.R;
public class DeleteDropTarget extends ButtonDropTarget {
private TextView mText;
+ private ColorStateList mOriginalTextColor;
private TransitionDrawable mDrawable;
private int mHoverColor = 0xFFFF0000;
@@ -48,6 +50,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
// Get the drawable
mText = (TextView) findViewById(R.id.delete_target_text);
+ mOriginalTextColor = mText.getTextColors();
// Get the hover color
Resources r = getResources();
@@ -114,6 +117,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
mActive = isVisible;
mDrawable.resetTransition();
+ mText.setTextColor(mOriginalTextColor);
setVisibility(isVisible ? View.VISIBLE : View.GONE);
if (mText.getText().length() > 0) {
mText.setText(isUninstall ? R.string.delete_target_uninstall_label
@@ -131,6 +135,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
super.onDragEnter(d);
mDrawable.startTransition(mTransitionDuration);
+ mText.setTextColor(mHoverColor);
}
public void onDragExit(DragObject d) {
@@ -138,6 +143,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
if (!d.dragComplete) {
mDrawable.resetTransition();
+ mText.setTextColor(mOriginalTextColor);
}
}
diff --git a/src/com/android/launcher2/InfoDropTarget.java b/src/com/android/launcher2/InfoDropTarget.java
index 02e3f0182..6ad7630ed 100644
--- a/src/com/android/launcher2/InfoDropTarget.java
+++ b/src/com/android/launcher2/InfoDropTarget.java
@@ -18,6 +18,7 @@ package com.android.launcher2;
import android.content.ComponentName;
import android.content.Context;
+import android.content.res.ColorStateList;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.PorterDuff;
@@ -32,6 +33,7 @@ import com.android.launcher.R;
public class InfoDropTarget extends ButtonDropTarget {
private TextView mText;
+ private ColorStateList mOriginalTextColor;
private TransitionDrawable mDrawable;
private int mHoverColor = 0xFF0000FF;
@@ -48,6 +50,7 @@ public class InfoDropTarget extends ButtonDropTarget {
super.onFinishInflate();
mText = (TextView) findViewById(R.id.info_target_text);
+ mOriginalTextColor = mText.getTextColors();
// Get the hover color
Resources r = getResources();
@@ -98,6 +101,7 @@ public class InfoDropTarget extends ButtonDropTarget {
mActive = isVisible;
mDrawable.resetTransition();
+ mText.setTextColor(mOriginalTextColor);
setVisibility(isVisible ? View.VISIBLE : View.GONE);
}
@@ -111,6 +115,7 @@ public class InfoDropTarget extends ButtonDropTarget {
super.onDragEnter(d);
mDrawable.startTransition(mTransitionDuration);
+ mText.setTextColor(mHoverColor);
}
public void onDragExit(DragObject d) {
@@ -118,6 +123,7 @@ public class InfoDropTarget extends ButtonDropTarget {
if (!d.dragComplete) {
mDrawable.resetTransition();
+ mText.setTextColor(mOriginalTextColor);
}
}
}
diff --git a/src/com/android/launcher2/SearchDropTargetBar.java b/src/com/android/launcher2/SearchDropTargetBar.java
index e4cf361bb..201daabc3 100644
--- a/src/com/android/launcher2/SearchDropTargetBar.java
+++ b/src/com/android/launcher2/SearchDropTargetBar.java
@@ -18,10 +18,14 @@ package com.android.launcher2;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
+import android.content.res.Configuration;
import android.util.AttributeSet;
import android.view.View;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.DecelerateInterpolator;
import android.widget.FrameLayout;
import com.android.launcher.R;
@@ -32,11 +36,11 @@ import com.android.launcher.R;
*/
public class SearchDropTargetBar extends FrameLayout implements DragController.DragListener {
- private static final int sTransitionInDuration = 275;
- private static final int sTransitionOutDuration = 125;
+ private static final int sTransitionInDuration = 200;
+ private static final int sTransitionOutDuration = 175;
- private ObjectAnimator mDropTargetBarFadeInAnim;
- private ObjectAnimator mDropTargetBarFadeOutAnim;
+ private AnimatorSet mDropTargetBarFadeInAnim;
+ private AnimatorSet mDropTargetBarFadeOutAnim;
private ObjectAnimator mQSBSearchBarFadeInAnim;
private ObjectAnimator mQSBSearchBarFadeOutAnim;
@@ -45,6 +49,7 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D
private View mDropTargetBar;
private ButtonDropTarget mInfoDropTarget;
private ButtonDropTarget mDeleteDropTarget;
+ private int mBarHeight;
public SearchDropTargetBar(Context context, AttributeSet attrs) {
this(context, attrs, 0);
@@ -73,9 +78,21 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D
mDropTargetBar = findViewById(R.id.drag_target_bar);
mInfoDropTarget = (ButtonDropTarget) mDropTargetBar.findViewById(R.id.info_target);
mDeleteDropTarget = (ButtonDropTarget) mDropTargetBar.findViewById(R.id.delete_target);
+ mBarHeight = getResources().getDimensionPixelSize(R.dimen.qsb_bar_height);
+
+ boolean enableDropDownDropTargets =
+ getResources().getBoolean(R.bool.config_useDropTargetDownTransition);
// Create the various fade animations
- mDropTargetBarFadeInAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 1f);
+ mDropTargetBar.setAlpha(0f);
+ ObjectAnimator fadeInAlphaAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 1f);
+ fadeInAlphaAnim.setInterpolator(new DecelerateInterpolator());
+ mDropTargetBarFadeInAnim = new AnimatorSet();
+ AnimatorSet.Builder fadeInAnimators = mDropTargetBarFadeInAnim.play(fadeInAlphaAnim);
+ if (enableDropDownDropTargets) {
+ mDropTargetBar.setTranslationY(-mBarHeight);
+ fadeInAnimators.with(ObjectAnimator.ofFloat(mDropTargetBar, "translationY", 0f));
+ }
mDropTargetBarFadeInAnim.setDuration(sTransitionInDuration);
mDropTargetBarFadeInAnim.addListener(new AnimatorListenerAdapter() {
@Override
@@ -83,12 +100,20 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D
mDropTargetBar.setVisibility(View.VISIBLE);
}
});
- mDropTargetBarFadeOutAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 0f);
+ ObjectAnimator fadeOutAlphaAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 0f);
+ fadeOutAlphaAnim.setInterpolator(new AccelerateInterpolator());
+ mDropTargetBarFadeOutAnim = new AnimatorSet();
+ AnimatorSet.Builder fadeOutAnimators = mDropTargetBarFadeOutAnim.play(fadeOutAlphaAnim);
+ if (enableDropDownDropTargets) {
+ fadeOutAnimators.with(ObjectAnimator.ofFloat(mDropTargetBar, "translationY",
+ -mBarHeight));
+ }
mDropTargetBarFadeOutAnim.setDuration(sTransitionOutDuration);
mDropTargetBarFadeOutAnim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
mDropTargetBar.setVisibility(View.GONE);
+ mDropTargetBar.setLayerType(View.LAYER_TYPE_NONE, null);
}
});
mQSBSearchBarFadeInAnim = ObjectAnimator.ofFloat(mQSBSearchBar, "alpha", 1f);
@@ -156,8 +181,12 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D
@Override
public void onDragStart(DragSource source, Object info, int dragAction) {
// Animate out the QSB search bar, and animate in the drop target bar
+ mDropTargetBar.setLayerType(View.LAYER_TYPE_HARDWARE, null);
+ mDropTargetBar.buildLayer();
+ mDropTargetBarFadeOutAnim.cancel();
mDropTargetBarFadeInAnim.start();
if (!mIsSearchBarHidden) {
+ mQSBSearchBarFadeInAnim.cancel();
mQSBSearchBarFadeOutAnim.start();
}
}
@@ -165,8 +194,10 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D
@Override
public void onDragEnd() {
// Restore the QSB search bar, and animate out the drop target bar
+ mDropTargetBarFadeInAnim.cancel();
mDropTargetBarFadeOutAnim.start();
if (!mIsSearchBarHidden) {
+ mQSBSearchBarFadeOutAnim.cancel();
mQSBSearchBarFadeInAnim.start();
}
}