diff options
Diffstat (limited to 'src/com/android/launcher3/FolderIcon.java')
-rw-r--r-- | src/com/android/launcher3/FolderIcon.java | 47 |
1 files changed, 17 insertions, 30 deletions
diff --git a/src/com/android/launcher3/FolderIcon.java b/src/com/android/launcher3/FolderIcon.java index 03bb1e34a..214ec3241 100644 --- a/src/com/android/launcher3/FolderIcon.java +++ b/src/com/android/launcher3/FolderIcon.java @@ -69,7 +69,7 @@ public class FolderIcon extends FrameLayout implements FolderListener { private static final float INNER_RING_GROWTH_FACTOR = 0.0f; // The degree to which the outer ring is scaled in its natural state - private static final float OUTER_RING_GROWTH_FACTOR = 0.15f; + private static final float OUTER_RING_GROWTH_FACTOR = 0.1f; // The amount of vertical spread between items in the stack [0...1] private static final float PERSPECTIVE_SHIFT_FACTOR = 0.18f; @@ -183,11 +183,13 @@ public class FolderIcon extends FrameLayout implements FolderListener { icon.setDrawingCacheEnabled(true); // get dimen for the icon size - // ratio: iconsize = 3*padding + 2*small_icon_size - // padding*6.5 = small_icon_size - // so padding = folderIconSize / 16 - int padding = grid.iconSizePx / 16; - int smallIconSize = (int) (padding * 6.5); + // padding is equal to 1/8 of icon size + // padding gets used at start and end accounting for 2/8 + // small icons are separated by 1/2 padding + // Total padding equals 2.5/8 leaving 5.5/8 for icons + // 5.5/8 remaining, divided by 2 equals 2.75 for each small icon + int padding = grid.iconSizePx / 8; + int smallIconSize = (int) (padding * 2.75); for (int i = NUM_ITEMS_IN_PREVIEW; i >= 0; i--) { ImageView appIcon = null; @@ -288,9 +290,6 @@ public class FolderIcon extends FrameLayout implements FolderListener { mAcceptAnimator.addUpdateListener(new AnimatorUpdateListener() { public void onAnimationUpdate(ValueAnimator animation) { float percent = (Float) animation.getAnimatedValue(); - if (mFolderIcon != null) { - percent = 1f; - } mOuterRingSize = (1 + percent * OUTER_RING_GROWTH_FACTOR) * previewSize; mInnerRingSize = (1 + percent * INNER_RING_GROWTH_FACTOR) * previewSize; if (mCellLayout != null) { @@ -298,14 +297,6 @@ public class FolderIcon extends FrameLayout implements FolderListener { } } }); - mAcceptAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animation) { - if (mFolderIcon != null) { - mFolderIcon.mPreviewBackground.setBackground(null); - } - } - }); mAcceptAnimator.start(); } @@ -320,9 +311,6 @@ public class FolderIcon extends FrameLayout implements FolderListener { mNeutralAnimator.addUpdateListener(new AnimatorUpdateListener() { public void onAnimationUpdate(ValueAnimator animation) { float percent = (Float) animation.getAnimatedValue(); - if (mFolderIcon != null) { - percent = 0f; - } mOuterRingSize = (1 + (1 - percent) * OUTER_RING_GROWTH_FACTOR) * previewSize; mInnerRingSize = (1 + (1 - percent) * INNER_RING_GROWTH_FACTOR) * previewSize; if (mCellLayout != null) { @@ -337,7 +325,7 @@ public class FolderIcon extends FrameLayout implements FolderListener { mCellLayout.hideFolderAccept(FolderRingAnimator.this); } if (mFolderIcon != null) { - mFolderIcon.mPreviewBackground.setBackgroundResource(R.drawable.folder_bg); + mFolderIcon.mPreviewBackground.setVisibility(View.VISIBLE); } } }); @@ -410,14 +398,6 @@ public class FolderIcon extends FrameLayout implements FolderListener { mInfo.add(item); } - public void setPreviewBackground(int res) { - if (res < 0) { - mPreviewBackground.setBackground(null); - } else { - mPreviewBackground.setBackgroundResource(res); - } - } - public void onDragEnter(Object dragInfo) { if (mFolder.isDestroyed() || !willAcceptItem((ItemInfo) dragInfo)) return; CellLayout.LayoutParams lp = (CellLayout.LayoutParams) getLayoutParams(); @@ -456,7 +436,14 @@ public class FolderIcon extends FrameLayout implements FolderListener { item = (ShortcutInfo) mDragInfo; } mFolder.beginExternalDrag(item); - mLauncher.openFolder(FolderIcon.this); + mFolderRingAnimator.mCellLayout.hideFolderAccept(mFolderRingAnimator); + + int[] folderTouchXY = new int[2]; + mFolder.getLocationOnScreen(folderTouchXY); + int[] folderTouchXYOffset = {folderTouchXY[0] + mFolder.getWidth() / 2, + folderTouchXY[1] + mFolder.getHeight() / 2}; + + mLauncher.openFolder(FolderIcon.this, folderTouchXYOffset); } }; |