diff options
author | Tony <twickham@google.com> | 2017-05-23 12:19:09 -0700 |
---|---|---|
committer | Tony <twickham@google.com> | 2017-05-24 10:50:41 -0700 |
commit | 17b7f9bdf40b015db9f262b3221c4e46ae1b430b (patch) | |
tree | 2a2c269244914888f7138f3eaa7609c137ce8981 /src/com/android | |
parent | 8c26cec587cf811ebce69d2600ccc83f13755166 (diff) | |
download | android_packages_apps_Trebuchet-17b7f9bdf40b015db9f262b3221c4e46ae1b430b.tar.gz android_packages_apps_Trebuchet-17b7f9bdf40b015db9f262b3221c4e46ae1b430b.tar.bz2 android_packages_apps_Trebuchet-17b7f9bdf40b015db9f262b3221c4e46ae1b430b.zip |
Don't hide text in pre-drag when opening popup above icon
Bug: 38468930
Change-Id: Id03162af829a00442d1db0a93f7e9d8bcb998b1a
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/launcher3/BubbleTextView.java | 19 | ||||
-rw-r--r-- | src/com/android/launcher3/popup/PopupContainerWithArrow.java | 19 |
2 files changed, 34 insertions, 4 deletions
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java index e49ead0f7..1f7eba812 100644 --- a/src/com/android/launcher3/BubbleTextView.java +++ b/src/com/android/launcher3/BubbleTextView.java @@ -23,10 +23,12 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.Paint; import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; +import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.Property; @@ -93,6 +95,7 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver { private final int mIconSize; @ViewDebug.ExportedProperty(category = "launcher") private int mTextColor; + private boolean mIsIconVisible = true; private BadgeInfo mBadgeInfo; private BadgeRenderer mBadgeRenderer; @@ -609,7 +612,21 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver { private void setIcon(Drawable icon) { mIcon = icon; mIcon.setBounds(0, 0, mIconSize, mIconSize); - applyCompoundDrawables(mIcon); + if (mIsIconVisible) { + applyCompoundDrawables(mIcon); + } + } + + public void setIconVisible(boolean visible) { + mIsIconVisible = visible; + mDisableRelayout = true; + Drawable icon = mIcon; + if (!visible) { + icon = new ColorDrawable(Color.TRANSPARENT); + icon.setBounds(0, 0, mIconSize, mIconSize); + } + applyCompoundDrawables(icon); + mDisableRelayout = false; } protected void applyCompoundDrawables(Drawable icon) { diff --git a/src/com/android/launcher3/popup/PopupContainerWithArrow.java b/src/com/android/launcher3/popup/PopupContainerWithArrow.java index ccead37dc..b373a1766 100644 --- a/src/com/android/launcher3/popup/PopupContainerWithArrow.java +++ b/src/com/android/launcher3/popup/PopupContainerWithArrow.java @@ -530,6 +530,7 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra */ public DragOptions.PreDragCondition createPreDragCondition() { return new DragOptions.PreDragCondition() { + @Override public boolean shouldStartDrag(double distanceDragged) { return distanceDragged > mStartDragThreshold; @@ -537,15 +538,27 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra @Override public void onPreDragStart(DropTarget.DragObject dragObject) { - mOriginalIcon.setVisibility(INVISIBLE); + if (mIsAboveIcon) { + // Hide only the icon, keep the text visible. + mOriginalIcon.setIconVisible(false); + mOriginalIcon.setVisibility(VISIBLE); + } else { + // Hide both the icon and text. + mOriginalIcon.setVisibility(INVISIBLE); + } } @Override public void onPreDragEnd(DropTarget.DragObject dragObject, boolean dragStarted) { - if (!dragStarted) { - mOriginalIcon.setVisibility(VISIBLE); + mOriginalIcon.setIconVisible(true); + if (dragStarted) { + // Make sure we keep the original icon hidden while it is being dragged. + mOriginalIcon.setVisibility(INVISIBLE); + } else { mLauncher.getUserEventDispatcher().logDeepShortcutsOpen(mOriginalIcon); if (!mIsAboveIcon) { + // Show the icon but keep the text hidden. + mOriginalIcon.setVisibility(VISIBLE); mOriginalIcon.setTextVisibility(false); } } |