summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/DragLayer.java
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2011-11-01 17:29:52 -0700
committerAdam Cohen <adamcohen@google.com>2011-11-03 15:42:39 -0700
commit21b411074e39fd10cbc8dd0220bb159da4af2c76 (patch)
tree95e40546f0d0fc080f5a55fc4716ef70c865f18b /src/com/android/launcher2/DragLayer.java
parent4a4f5c355740e0a4ff54b3279a6dd318b4a53aa6 (diff)
downloadandroid_packages_apps_Trebuchet-21b411074e39fd10cbc8dd0220bb159da4af2c76.tar.gz
android_packages_apps_Trebuchet-21b411074e39fd10cbc8dd0220bb159da4af2c76.tar.bz2
android_packages_apps_Trebuchet-21b411074e39fd10cbc8dd0220bb159da4af2c76.zip
Cleaning up overscroll effect in launcher workspace
-> Making sure workspace is drawn above the hotseat and qsb -> Dimming the dock divider and page indicator during overscroll Change-Id: I40766aa88e58db2d102c11d1ae8b2455aa459a07
Diffstat (limited to 'src/com/android/launcher2/DragLayer.java')
-rw-r--r--src/com/android/launcher2/DragLayer.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/com/android/launcher2/DragLayer.java b/src/com/android/launcher2/DragLayer.java
index aa49ca1ce..433db5054 100644
--- a/src/com/android/launcher2/DragLayer.java
+++ b/src/com/android/launcher2/DragLayer.java
@@ -69,6 +69,8 @@ public class DragLayer extends FrameLayout {
private float mDropViewAlpha;
private boolean mHoverPointClosesFolder = false;
private Rect mHitRect = new Rect();
+ private int mWorkspaceIndex = -1;
+ private int mHotseatIndex = -1;
/**
* Used to create a new DragLayer from XML.
@@ -81,6 +83,7 @@ public class DragLayer extends FrameLayout {
// Disable multitouch across the workspace/all apps/customize tray
setMotionEventSplittingEnabled(false);
+ setChildrenDrawingOrderEnabled(true);
}
public void setup(Launcher launcher, DragController controller) {
@@ -610,6 +613,44 @@ public class DragLayer extends FrameLayout {
}
@Override
+ protected void onViewAdded(View child) {
+ super.onViewAdded(child);
+ updateChildIndices();
+ }
+
+ @Override
+ protected void onViewRemoved(View child) {
+ super.onViewRemoved(child);
+ updateChildIndices();
+ }
+
+ private void updateChildIndices() {
+ if (mLauncher != null) {
+ mWorkspaceIndex = indexOfChild(mLauncher.getWorkspace());
+ mHotseatIndex = indexOfChild(mLauncher.getHotseat());
+ }
+ }
+
+ @Override
+ protected int getChildDrawingOrder(int childCount, int i) {
+ if (mWorkspaceIndex == -1 || mHotseatIndex == -1 ||
+ mLauncher.getWorkspace().isDrawingBackgroundGradient()) {
+ return i;
+ }
+
+ // This ensures that the workspace is drawn above the hotseat and qsb,
+ // except when the workspace is drawing a background gradient, in which
+ // case we want the workspace to stay behind these elements.
+ if (i == mHotseatIndex) {
+ return mWorkspaceIndex;
+ } else if (i == mWorkspaceIndex) {
+ return mHotseatIndex;
+ } else {
+ return i;
+ }
+ }
+
+ @Override
protected void dispatchDraw(Canvas canvas) {
super.dispatchDraw(canvas);
if (mDropView != null) {