diff options
Diffstat (limited to 'src/com/android/launcher3/ButtonDropTarget.java')
-rw-r--r-- | src/com/android/launcher3/ButtonDropTarget.java | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/com/android/launcher3/ButtonDropTarget.java b/src/com/android/launcher3/ButtonDropTarget.java index bc4c982e4e..38d5077411 100644 --- a/src/com/android/launcher3/ButtonDropTarget.java +++ b/src/com/android/launcher3/ButtonDropTarget.java @@ -108,8 +108,8 @@ public abstract class ButtonDropTarget extends TextView // We do not set the drawable in the xml as that inflates two drawables corresponding to // drawableLeft and drawableStart. mDrawable = getContext().getDrawable(resId).mutate(); - mDrawable.setBounds(0, 0, mDrawableSize, mDrawableSize); mDrawable.setTintList(getTextColors()); + centerIcon(); setCompoundDrawablesRelative(mDrawable, null, null, null); } @@ -215,12 +215,8 @@ public abstract class ButtonDropTarget extends TextView } final DragLayer dragLayer = mLauncher.getDragLayer(); final DragView dragView = d.dragView; - final Rect from = new Rect(); - dragLayer.getViewRectRelativeToSelf(d.dragView, from); - final Rect to = getIconRect(d); - final float scale = (float) to.width() / from.width(); - dragView.disableColorExtraction(); + final float scale = (float) to.width() / dragView.getMeasuredWidth(); dragView.detachContentView(/* reattachToPreviousParent= */ true); mDropTargetBar.deferOnDragEnd(); @@ -228,14 +224,11 @@ public abstract class ButtonDropTarget extends TextView completeDrop(d); mDropTargetBar.onDragEnd(); mLauncher.getStateManager().goToState(NORMAL); - // Only re-enable updates once the workspace is back to normal, which will be after the - // current frame. - post(dragView::resumeColorExtraction); }; - dragLayer.animateView(d.dragView, from, to, scale, 1f, 1f, 0.1f, 0.1f, + dragLayer.animateView(d.dragView, to, scale, 0.1f, 0.1f, DRAG_VIEW_DROP_DURATION, - Interpolators.DEACCEL_2, Interpolators.LINEAR, onAnimationEndRunnable, + Interpolators.DEACCEL_2, onAnimationEndRunnable, DragLayer.ANIMATION_END_DISAPPEAR, null); } @@ -284,7 +277,7 @@ public abstract class ButtonDropTarget extends TextView } final int top = to.top + (getMeasuredHeight() - height) / 2; - final int bottom = top + height; + final int bottom = top + height; to.set(left, top, right, bottom); @@ -296,6 +289,12 @@ public abstract class ButtonDropTarget extends TextView return to; } + private void centerIcon() { + int x = mTextVisible ? 0 + : (getWidth() - getPaddingLeft() - getPaddingRight()) / 2 - mDrawableSize / 2; + mDrawable.setBounds(x, 0, x + mDrawableSize, mDrawableSize); + } + @Override public void onClick(View v) { mLauncher.getAccessibilityDelegate().handleAccessibleDrop(this, null, null); @@ -306,12 +305,19 @@ public abstract class ButtonDropTarget extends TextView if (mTextVisible != isVisible || !TextUtils.equals(newText, getText())) { mTextVisible = isVisible; setText(newText); + centerIcon(); setCompoundDrawablesRelative(mDrawable, null, null, null); int drawablePadding = mTextVisible ? mDrawablePadding : 0; setCompoundDrawablePadding(drawablePadding); } } + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + centerIcon(); + } + public void setToolTipLocation(int location) { mToolTipLocation = location; hideTooltip(); |