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