summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/popup
diff options
context:
space:
mode:
authorTony <twickham@google.com>2017-06-16 11:46:57 -0700
committerTony <twickham@google.com>2017-06-16 11:46:57 -0700
commitad69fa4c7447879697587c2ed537ac5edb1f82a4 (patch)
tree1cc8341de87984c2cb316bda01e82f9f52961bea /src/com/android/launcher3/popup
parentd74633cbc559109e57b0f4531fb6556e79d7a453 (diff)
downloadandroid_packages_apps_Trebuchet-ad69fa4c7447879697587c2ed537ac5edb1f82a4.tar.gz
android_packages_apps_Trebuchet-ad69fa4c7447879697587c2ed537ac5edb1f82a4.tar.bz2
android_packages_apps_Trebuchet-ad69fa4c7447879697587c2ed537ac5edb1f82a4.zip
Round popup corner clipping rotation center
Before, it was possible for the rotation to occur around a slightly off-center pivot on certain devices when the display setting was set to "small." Bug: 62049689 Change-Id: I5f2f557a1170cc98c0a83b87749526a4d7ea73f1
Diffstat (limited to 'src/com/android/launcher3/popup')
-rw-r--r--src/com/android/launcher3/popup/PopupItemView.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/com/android/launcher3/popup/PopupItemView.java b/src/com/android/launcher3/popup/PopupItemView.java
index 05cadb671..8ec051b30 100644
--- a/src/com/android/launcher3/popup/PopupItemView.java
+++ b/src/com/android/launcher3/popup/PopupItemView.java
@@ -100,22 +100,24 @@ public abstract class PopupItemView extends FrameLayout {
// Clip children to this item's rounded corners.
int cornerWidth = mRoundedCornerBitmap.getWidth();
int cornerHeight = mRoundedCornerBitmap.getHeight();
+ int cornerCenterX = Math.round(cornerWidth / 2f);
+ int cornerCenterY = Math.round(cornerHeight / 2f);
if ((mRoundedCorners & ROUNDED_TOP_CORNERS) != 0) {
// Clip top left corner.
mMatrix.reset();
canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint);
// Clip top right corner.
- mMatrix.setRotate(90, cornerWidth / 2, cornerHeight / 2);
+ mMatrix.setRotate(90, cornerCenterX, cornerCenterY);
mMatrix.postTranslate(canvas.getWidth() - cornerWidth, 0);
canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint);
}
if ((mRoundedCorners & ROUNDED_BOTTOM_CORNERS) != 0) {
// Clip bottom right corner.
- mMatrix.setRotate(180, cornerWidth / 2, cornerHeight / 2);
+ mMatrix.setRotate(180, cornerCenterX, cornerCenterY);
mMatrix.postTranslate(canvas.getWidth() - cornerWidth, canvas.getHeight() - cornerHeight);
canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint);
// Clip bottom left corner.
- mMatrix.setRotate(270, cornerWidth / 2, cornerHeight / 2);
+ mMatrix.setRotate(270, cornerCenterX, cornerCenterY);
mMatrix.postTranslate(0, canvas.getHeight() - cornerHeight);
canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint);
}