diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-07-14 20:27:49 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-07-14 20:27:49 +0000 |
commit | 5dcd5027ca867f1556ea36d7cae6c4b78814e24d (patch) | |
tree | bdadc09cf6ed0f728dcc53decc5e8c7a31c5c166 | |
parent | 542bbca313aeb2a0e9d90b296ab771b9720081ad (diff) | |
parent | ecf451457b151f19884233dfe5461675c34fc725 (diff) | |
download | android_packages_apps_Trebuchet-5dcd5027ca867f1556ea36d7cae6c4b78814e24d.tar.gz android_packages_apps_Trebuchet-5dcd5027ca867f1556ea36d7cae6c4b78814e24d.tar.bz2 android_packages_apps_Trebuchet-5dcd5027ca867f1556ea36d7cae6c4b78814e24d.zip |
Merge "Polish Folder open animation during drag and drop." into ub-launcher3-dorval-polish
-rw-r--r-- | src/com/android/launcher3/folder/FolderAnimationManager.java | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/com/android/launcher3/folder/FolderAnimationManager.java b/src/com/android/launcher3/folder/FolderAnimationManager.java index 26a2c8913..69705d594 100644 --- a/src/com/android/launcher3/folder/FolderAnimationManager.java +++ b/src/com/android/launcher3/folder/FolderAnimationManager.java @@ -125,7 +125,8 @@ public class FolderAnimationManager { final Rect folderIconPos = new Rect(); float scaleRelativeToDragLayer = mLauncher.getDragLayer() .getDescendantRectRelativeToSelf(mFolderIcon, folderIconPos); - float initialSize = (mPreviewBackground.getRadius() * 2) * scaleRelativeToDragLayer; + int scaledRadius = mPreviewBackground.getScaledRadius(); + float initialSize = (scaledRadius * 2) * scaleRelativeToDragLayer; // Match size/scale of icons in the preview float previewScale = rule.scaleForItem(0, itemsInPreview.size()); @@ -152,13 +153,9 @@ public class FolderAnimationManager { final int paddingOffsetY = (int) ((mFolder.getPaddingTop() + mContent.getPaddingTop()) * initialScale); - // Background can have a scaled radius in drag and drop mode. - int radiusDiff = mPreviewBackground.getScaledRadius()- mPreviewBackground.getRadius(); - int initialX = folderIconPos.left + mPreviewBackground.getOffsetX() - paddingOffsetX - - previewItemOffsetX + radiusDiff; - int initialY = folderIconPos.top + mPreviewBackground.getOffsetY() - paddingOffsetY - + radiusDiff; + - previewItemOffsetX; + int initialY = folderIconPos.top + mPreviewBackground.getOffsetY() - paddingOffsetY; final float xDistance = initialX - lp.x; final float yDistance = initialY - lp.y; @@ -232,7 +229,11 @@ public class FolderAnimationManager { animator.setInterpolator(mFolderInterpolator); } - addPreviewItemAnimators(a, initialScale / scaleRelativeToDragLayer, previewItemOffsetX); + int radiusDiff = scaledRadius - mPreviewBackground.getRadius(); + addPreviewItemAnimators(a, initialScale / scaleRelativeToDragLayer, + // Background can have a scaled radius in drag and drop mode, so we need to add the + // difference to keep the preview items centered. + previewItemOffsetX + radiusDiff, radiusDiff); return a; } @@ -240,7 +241,7 @@ public class FolderAnimationManager { * Animate the items on the current page. */ private void addPreviewItemAnimators(AnimatorSet animatorSet, final float folderScale, - int previewItemOffsetX) { + int previewItemOffsetX, int previewItemOffsetY) { FolderIcon.PreviewLayoutRule rule = mFolderIcon.getLayoutRule(); boolean isOnFirstPage = mFolder.mContent.getCurrentPage() == 0; final List<BubbleTextView> itemsInPreview = isOnFirstPage @@ -281,7 +282,7 @@ public class FolderAnimationManager { final int previewPosX = (int) ((mTmpParams.transX - iconOffsetX + previewItemOffsetX) / folderScale); - final int previewPosY = (int) (mTmpParams.transY / folderScale); + final int previewPosY = (int) ((mTmpParams.transY + previewItemOffsetY) / folderScale); final float xDistance = previewPosX - btvLp.x; final float yDistance = previewPosY - btvLp.y; |