summaryrefslogtreecommitdiff
path: root/src/com/android/launcher3/ButtonDropTarget.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/ButtonDropTarget.java')
-rw-r--r--src/com/android/launcher3/ButtonDropTarget.java30
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();