summaryrefslogtreecommitdiffstats
path: root/src
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 /src
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
Diffstat (limited to 'src')
-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