Fix drop target icons being truncated.
The icons were being truncated due to incorrect viewport width/height values for the vector drawable. Test: manual Bug: 187036287 Change-Id: Ie2d0ffe815501d2e943146a79cb4ede379ce0ecf
This commit is contained in:
parent
1560f401ae
commit
ed052ab212
|
@ -16,8 +16,8 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="20dp"
|
||||
android:viewportHeight="20.0"
|
||||
android:viewportWidth="20.0"
|
||||
android:viewportHeight="24.0"
|
||||
android:viewportWidth="24.0"
|
||||
android:tint="?android:attr/textColorPrimary">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="20dp"
|
||||
android:viewportWidth="20.0"
|
||||
android:viewportHeight="20.0"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0"
|
||||
android:tint="?android:attr/textColorPrimary" >
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
|
|
|
@ -36,8 +36,6 @@ import android.view.accessibility.AccessibilityEvent;
|
|||
import android.widget.PopupWindow;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.content.res.AppCompatResources;
|
||||
|
||||
import com.android.launcher3.anim.Interpolators;
|
||||
import com.android.launcher3.dragndrop.DragController;
|
||||
import com.android.launcher3.dragndrop.DragLayer;
|
||||
|
@ -82,6 +80,8 @@ public abstract class ButtonDropTarget extends TextView
|
|||
private boolean mAccessibleDrag;
|
||||
/** An item must be dragged at least this many pixels before this drop target is enabled. */
|
||||
private final int mDragDistanceThreshold;
|
||||
/** The size of the drawable shown in the drop target. */
|
||||
private final int mDrawableSize;
|
||||
|
||||
protected CharSequence mText;
|
||||
protected ColorStateList mOriginalTextColor;
|
||||
|
@ -103,6 +103,7 @@ public abstract class ButtonDropTarget extends TextView
|
|||
|
||||
Resources resources = getResources();
|
||||
mDragDistanceThreshold = resources.getDimensionPixelSize(R.dimen.drag_distanceThreshold);
|
||||
mDrawableSize = resources.getDimensionPixelSize(R.dimen.drop_target_text_size);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -120,14 +121,18 @@ public abstract class ButtonDropTarget extends TextView
|
|||
}
|
||||
|
||||
protected void setDrawable(int resId) {
|
||||
mDrawable = getContext().getDrawable(resId).mutate();
|
||||
mDrawable.setBounds(0, 0, mDrawableSize, mDrawableSize);
|
||||
setDrawable(mDrawable);
|
||||
}
|
||||
|
||||
private void setDrawable(Drawable drawable) {
|
||||
// We do not set the drawable in the xml as that inflates two drawables corresponding to
|
||||
// drawableLeft and drawableStart.
|
||||
if (mTextVisible) {
|
||||
setCompoundDrawablesRelativeWithIntrinsicBounds(resId, 0, 0, 0);
|
||||
mDrawable = getCompoundDrawablesRelative()[0];
|
||||
setCompoundDrawablesRelative(drawable, null, null, null);
|
||||
} else {
|
||||
setCompoundDrawablesRelativeWithIntrinsicBounds(0, resId, 0, 0);
|
||||
mDrawable = getCompoundDrawablesRelative()[1];
|
||||
setCompoundDrawablesRelative(null, drawable, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -329,11 +334,7 @@ public abstract class ButtonDropTarget extends TextView
|
|||
if (mTextVisible != isVisible || !TextUtils.equals(newText, getText())) {
|
||||
mTextVisible = isVisible;
|
||||
setText(newText);
|
||||
if (mTextVisible) {
|
||||
setCompoundDrawablesRelativeWithIntrinsicBounds(mDrawable, null, null, null);
|
||||
} else {
|
||||
setCompoundDrawablesRelativeWithIntrinsicBounds(null, mDrawable, null, null);
|
||||
}
|
||||
setDrawable(mDrawable);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue