summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2012-02-28 14:02:45 -0800
committerAdam Cohen <adamcohen@google.com>2012-02-28 14:23:50 -0800
commitf0777b9d7a8f4befa22a36f227a052616152108f (patch)
tree63265004cd09b4516266a0bdc90f8e18ea3bb51b
parentd41fbf5680750e34335bba6b38298186c144a4b7 (diff)
downloadandroid_packages_apps_Trebuchet-f0777b9d7a8f4befa22a36f227a052616152108f.tar.gz
android_packages_apps_Trebuchet-f0777b9d7a8f4befa22a36f227a052616152108f.tar.bz2
android_packages_apps_Trebuchet-f0777b9d7a8f4befa22a36f227a052616152108f.zip
Fixing drag and drop framerate regression in workspace
-> Animating the alpha on workspace during drop was slowing things down. Instead we modify the alpha on the individual CellLayoutChildren objects which have hardware layers, so modulating their alpha is cheap. Change-Id: Id31e47cd05d593d2fef0ab28e15a9d4e11ed1aa1
-rw-r--r--src/com/android/launcher2/Workspace.java30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index e461a85bc..089301730 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -369,10 +369,14 @@ public class Workspace extends SmoothPagedView
mLauncher.lockScreenOrientationOnLargeUI();
// Fade out the workspace slightly to highlight the currently dragging item
- animate().alpha(mDragFadeOutAlpha)
- .setInterpolator(new AccelerateInterpolator(1.5f))
- .setDuration(mDragFadeOutDuration)
- .start();
+ int count = getChildCount();
+ for (int i = 0; i < count; i++) {
+ CellLayout cl = (CellLayout) getPageAt(i);
+ cl.getChildrenLayout().animate().alpha(mDragFadeOutAlpha)
+ .setInterpolator(new AccelerateInterpolator(1.5f))
+ .setDuration(mDragFadeOutDuration)
+ .start();
+ }
}
public void onDragEnd() {
@@ -381,10 +385,14 @@ public class Workspace extends SmoothPagedView
mLauncher.unlockScreenOrientationOnLargeUI();
// Fade the workspace back in after we have completed dragging
- animate().alpha(1f)
- .setInterpolator(new DecelerateInterpolator(1.5f))
- .setDuration(mDragFadeOutDuration)
- .start();
+ int count = getChildCount();
+ for (int i = 0; i < count; i++) {
+ CellLayout cl = (CellLayout) getPageAt(i);
+ cl.getChildrenLayout().animate().alpha(1f)
+ .setInterpolator(new DecelerateInterpolator(1.5f))
+ .setDuration(mDragFadeOutDuration)
+ .start();
+ }
}
/**
@@ -2026,7 +2034,8 @@ public class Workspace extends SmoothPagedView
minSpanY = ((PendingAddWidgetInfo) d.dragInfo).minSpanY;
}
mTargetCell = findNearestArea((int) mDragViewVisualCenter[0],
- (int) mDragViewVisualCenter[1], minSpanX, minSpanY, mDragTargetLayout, mTargetCell);
+ (int) mDragViewVisualCenter[1], minSpanX, minSpanY, mDragTargetLayout,
+ mTargetCell);
if (willCreateUserFolder((ItemInfo) d.dragInfo, mDragTargetLayout, mTargetCell, true)) {
return true;
}
@@ -2507,7 +2516,8 @@ public class Workspace extends SmoothPagedView
final PendingAddWidgetInfo createInfo =
new PendingAddWidgetInfo(widgetInfo, mimeType, data);
mLauncher.addAppWidgetFromDrop(createInfo,
- LauncherSettings.Favorites.CONTAINER_DESKTOP, mCurrentPage, null, null, pos);
+ LauncherSettings.Favorites.CONTAINER_DESKTOP, mCurrentPage,
+ null, null, pos);
} else {
// Show the widget picker dialog if there is more than one widget
// that can handle this data type