diff options
author | Adam Cohen <adamcohen@google.com> | 2011-11-01 17:29:52 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2011-11-03 15:42:39 -0700 |
commit | 21b411074e39fd10cbc8dd0220bb159da4af2c76 (patch) | |
tree | 95e40546f0d0fc080f5a55fc4716ef70c865f18b /src/com/android/launcher2/DragLayer.java | |
parent | 4a4f5c355740e0a4ff54b3279a6dd318b4a53aa6 (diff) | |
download | android_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.java | 41 |
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) { |