diff --git a/res/drawable-hdpi/focused_application_background.9.png b/res/drawable-hdpi/focused_application_background.9.png
index 01c83c3..7bf37ef 100644
--- a/res/drawable-hdpi/focused_application_background.9.png
+++ b/res/drawable-hdpi/focused_application_background.9.png
Binary files differ
diff --git a/res/drawable-hdpi/pressed_application_background.9.png b/res/drawable-hdpi/pressed_application_background.9.png
index c7d0bd4..291af02 100644
--- a/res/drawable-hdpi/pressed_application_background.9.png
+++ b/res/drawable-hdpi/pressed_application_background.9.png
Binary files differ
diff --git a/res/drawable-mdpi/focused_application_background.9.png b/res/drawable-mdpi/focused_application_background.9.png
index 341a80b..17ee6ea 100644
--- a/res/drawable-mdpi/focused_application_background.9.png
+++ b/res/drawable-mdpi/focused_application_background.9.png
Binary files differ
diff --git a/res/drawable-mdpi/pressed_application_background.9.png b/res/drawable-mdpi/pressed_application_background.9.png
index 4b00eec..b09f595 100644
--- a/res/drawable-mdpi/pressed_application_background.9.png
+++ b/res/drawable-mdpi/pressed_application_background.9.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/all_apps_button_normal.9.png b/res/drawable-xlarge-hdpi/all_apps_button_normal.9.png
deleted file mode 100644
index 8aea26e..0000000
--- a/res/drawable-xlarge-hdpi/all_apps_button_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/all_apps_button_pressed.9.png b/res/drawable-xlarge-hdpi/all_apps_button_pressed.9.png
deleted file mode 100644
index 587f1f1..0000000
--- a/res/drawable-xlarge-hdpi/all_apps_button_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/configure_button_normal.png b/res/drawable-xlarge-hdpi/configure_button_normal.png
deleted file mode 100644
index 48ae0b2..0000000
--- a/res/drawable-xlarge-hdpi/configure_button_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/configure_button_pressed.png b/res/drawable-xlarge-hdpi/configure_button_pressed.png
deleted file mode 100644
index 54dea70..0000000
--- a/res/drawable-xlarge-hdpi/configure_button_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/info_button.png b/res/drawable-xlarge-hdpi/info_button.png
deleted file mode 100644
index e9ed1b1..0000000
--- a/res/drawable-xlarge-hdpi/info_button.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/all_apps_button_normal.9.png b/res/drawable-xlarge-mdpi/all_apps_button_normal.9.png
deleted file mode 100644
index a423145..0000000
--- a/res/drawable-xlarge-mdpi/all_apps_button_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/all_apps_button_pressed.9.png b/res/drawable-xlarge-mdpi/all_apps_button_pressed.9.png
deleted file mode 100644
index 5dbe77c..0000000
--- a/res/drawable-xlarge-mdpi/all_apps_button_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/configure_button_normal.png b/res/drawable-xlarge-mdpi/configure_button_normal.png
deleted file mode 100644
index 9b37eff..0000000
--- a/res/drawable-xlarge-mdpi/configure_button_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/configure_button_pressed.png b/res/drawable-xlarge-mdpi/configure_button_pressed.png
deleted file mode 100644
index 5f38db6..0000000
--- a/res/drawable-xlarge-mdpi/configure_button_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png b/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png
new file mode 100644
index 0000000..d3ab3ad
--- /dev/null
+++ b/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/info_button.png b/res/drawable-xlarge-mdpi/info_button.png
deleted file mode 100644
index 253cdf7..0000000
--- a/res/drawable-xlarge-mdpi/info_button.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge/all_apps_button.xml b/res/drawable-xlarge/all_apps_button.xml
deleted file mode 100644
index 46bc632..0000000
--- a/res/drawable-xlarge/all_apps_button.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true" android:drawable="@drawable/all_apps_button_pressed" />
-    <item android:drawable="@drawable/all_apps_button_normal" />
-</selector>
diff --git a/res/drawable-xlarge/configure_button.xml b/res/drawable-xlarge/configure_button.xml
deleted file mode 100644
index ac87290..0000000
--- a/res/drawable-xlarge/configure_button.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true" android:drawable="@drawable/configure_button_pressed" />
-    <item android:drawable="@drawable/configure_button_normal" />
-</selector>
diff --git a/res/drawable-xlarge/delete_zone_selector.xml b/res/drawable-xlarge/delete_zone_selector.xml
new file mode 100644
index 0000000..e2b37f4
--- /dev/null
+++ b/res/drawable-xlarge/delete_zone_selector.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2007, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<transition xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/ic_home_delete_holo_dark"  />
+    <item android:drawable="@drawable/ic_home_delete_hover_holo_dark"  />
+</transition>
diff --git a/res/layout-xlarge-land/all_apps_tabbed.xml b/res/layout-xlarge-land/all_apps_tabbed.xml
index bb30c11..e1a37ff 100644
--- a/res/layout-xlarge-land/all_apps_tabbed.xml
+++ b/res/layout-xlarge-land/all_apps_tabbed.xml
@@ -39,7 +39,7 @@
                 android:layout_centerVertical="true">
                 <com.android.launcher2.ApplicationInfoDropTarget
                     android:id="@+id/all_apps_info_target"
-                    android:src="@drawable/info_button"
+                    android:src="@drawable/ic_home_info_holo_dark"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center"
diff --git a/res/layout-xlarge-land/launcher.xml b/res/layout-xlarge-land/launcher.xml
index e421e07..5c58a69 100644
--- a/res/layout-xlarge-land/launcher.xml
+++ b/res/layout-xlarge-land/launcher.xml
@@ -105,26 +105,47 @@
 
         <ImageView
             android:id="@+id/configure_button"
-            android:src="@drawable/configure_button"
+            android:src="@drawable/ic_home_add_holo_dark"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentTop="true"
             android:layout_alignParentRight="true"
-            android:layout_marginLeft="@dimen/toolbar_button_spacing"
-            android:layout_marginRight="@dimen/toolbar_button_spacing"
+            android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+            android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+            android:background="@drawable/button_bg"
 
             android:onClick="onClickConfigureButton"
             android:focusable="true"
             android:clickable="true" />
+        <ImageView
+            android:id="@+id/divider"
+            android:src="@drawable/divider_launcher_holo"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/toolbar_divider_height"
+            android:layout_toLeftOf="@id/configure_button"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
 
+            android:onClick="onClickAllAppsButton"
+            android:focusable="true"
+            android:clickable="true" />
         <TextView
             android:id="@+id/all_apps_button"
             android:text="@string/all_apps_button_label"
-            android:background="@drawable/all_apps_button"
+            android:drawablePadding="@dimen/all_apps_drawable_padding"
+            android:drawableLeft="@drawable/ic_home_all_apps_holo_dark"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_toLeftOf="@id/configure_button"
-            android:layout_marginLeft="@dimen/toolbar_button_spacing"
-            android:layout_marginRight="@dimen/toolbar_button_spacing"
+            android:layout_height="wrap_content"
+            android:layout_toLeftOf="@id/divider"
+            android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+            android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+            android:background="@drawable/button_bg"
+            
+            android:gravity="center_horizontal|center_vertical"
             android:textColor="#CCFFFFFF"
             android:textSize="18sp"
 
@@ -136,23 +157,41 @@
             android:onClick="onClickAllAppsButton"
             android:focusable="true"
             android:clickable="true" />
-
+        <ImageView
+            android:id="@+id/divider_during_drag"
+            android:src="@drawable/divider_launcher_holo"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/toolbar_divider_height"
+            android:layout_toLeftOf="@id/configure_button"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+            android:visibility="gone"/>
         <com.android.launcher2.DeleteZone
             android:id="@+id/delete_zone"
             android:src="@drawable/delete_zone_selector"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:layout_alignRight="@id/all_apps_button"
+            android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+            android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+            android:background="@drawable/button_bg"
 
             android:visibility="gone"
             launcher:direction="horizontal" />
 
         <com.android.launcher2.ApplicationInfoDropTarget
             android:id="@+id/info_button"
-            android:src="@drawable/info_button"
+            android:src="@drawable/ic_home_info_holo_dark"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:layout_alignLeft="@id/configure_button"
+            android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+            android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+            android:background="@drawable/button_bg"
 
             android:visibility="gone"
             android:focusable="true"
diff --git a/res/layout-xlarge-port/all_apps_tabbed.xml b/res/layout-xlarge-port/all_apps_tabbed.xml
index 5571634..a593148 100644
--- a/res/layout-xlarge-port/all_apps_tabbed.xml
+++ b/res/layout-xlarge-port/all_apps_tabbed.xml
@@ -39,7 +39,7 @@
                 android:layout_centerVertical="true">
                 <com.android.launcher2.ApplicationInfoDropTarget
                     android:id="@+id/all_apps_info_target"
-                    android:src="@drawable/info_button"
+                    android:src="@drawable/ic_home_info_holo_dark"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center"
diff --git a/res/layout-xlarge-port/launcher.xml b/res/layout-xlarge-port/launcher.xml
index d9839da..7bc318c 100644
--- a/res/layout-xlarge-port/launcher.xml
+++ b/res/layout-xlarge-port/launcher.xml
@@ -105,28 +105,47 @@
 
         <ImageView
             android:id="@+id/configure_button"
-            android:src="@drawable/configure_button"
+            android:src="@drawable/ic_home_add_holo_dark"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentTop="true"
             android:layout_alignParentRight="true"
-            android:layout_marginLeft="@dimen/toolbar_button_spacing"
-            android:layout_marginRight="@dimen/toolbar_button_spacing"
+            android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+            android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
 
             android:onClick="onClickConfigureButton"
             android:focusable="true"
             android:clickable="true" />
+        <ImageView
+            android:id="@+id/divider"
+            android:src="@drawable/divider_launcher_holo"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/toolbar_divider_height"
+            android:layout_toLeftOf="@id/configure_button"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
 
+            android:onClick="onClickAllAppsButton"
+            android:focusable="true"
+            android:clickable="true" />
         <TextView
             android:id="@+id/all_apps_button"
             android:text="@string/all_apps_button_label"
-            android:background="@drawable/all_apps_button"
+            android:drawablePadding="@dimen/all_apps_drawable_padding"
+            android:drawableLeft="@drawable/ic_home_all_apps_holo_dark"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_toLeftOf="@id/configure_button"
-            android:layout_marginLeft="@dimen/toolbar_button_spacing"
-            android:layout_marginRight="@dimen/toolbar_button_spacing"
+            android:layout_height="wrap_content"
+            android:layout_toLeftOf="@id/divider"
+            android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+            android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+            
+            android:gravity="center_horizontal|center_vertical"
             android:textColor="#CCFFFFFF"
-            android:textSize="18dp"
+            android:textSize="18sp"
 
             android:shadowColor="#A0000000"
             android:shadowDx="0.0"
@@ -136,36 +155,39 @@
             android:onClick="onClickAllAppsButton"
             android:focusable="true"
             android:clickable="true" />
-
-        <!-- The button to bring up the installed app market.
-             The icon for this button will be dynamically set. -->
         <ImageView
-            android:id="@+id/market_button"
+            android:id="@+id/divider_during_drag"
+            android:src="@drawable/divider_launcher_holo"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_alignLeft="@id/all_apps_button"
-
-            android:onClick="onClickAppMarketButton"
-            android:focusable="false"
-            android:clickable="false"
+            android:layout_height="@dimen/toolbar_divider_height"
+            android:layout_toLeftOf="@id/configure_button"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
             android:visibility="gone"/>
-
         <com.android.launcher2.DeleteZone
             android:id="@+id/delete_zone"
             android:src="@drawable/delete_zone_selector"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:layout_alignRight="@id/all_apps_button"
+            android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+            android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
 
             android:visibility="gone"
             launcher:direction="horizontal" />
 
         <com.android.launcher2.ApplicationInfoDropTarget
             android:id="@+id/info_button"
-            android:src="@drawable/info_button"
+            android:src="@drawable/ic_home_info_holo_dark"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:layout_alignLeft="@id/configure_button"
+            android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+            android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+            android:paddingTop="@dimen/toolbar_button_vertical_padding"
+            android:paddingBottom="@dimen/toolbar_button_vertical_padding"
 
             android:visibility="gone"
             android:focusable="true"
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
index 89722e4..972215a 100644
--- a/res/values-xlarge/dimens.xml
+++ b/res/values-xlarge/dimens.xml
@@ -42,9 +42,11 @@
     <dimen name="customizeSmallScreenVerticalMarginLandscape">90dip</dimen>
     <dimen name="customizeSmallScreenVerticalMarginPortrait">180dip</dimen>
 
-    <dimen name="toolbar_padding">10dip</dimen>
-
-    <dimen name="toolbar_button_spacing">20dip</dimen>
+    <dimen name="all_apps_drawable_padding">8dip</dimen>
+    <!--  toolbar divider height is 32dip plus 2*8dip for padding on top and bottom -->
+    <dimen name="toolbar_divider_height">48dip</dimen>
+    <dimen name="toolbar_button_vertical_padding">8dip</dimen>
+    <dimen name="toolbar_button_horizontal_padding">16dip</dimen>
 
     <!-- height & width of the drop rectangle for the trash icon -->
     <dimen name="delete_zone_size">50dip</dimen>
diff --git a/src/com/android/launcher2/AllAppsTabbed.java b/src/com/android/launcher2/AllAppsTabbed.java
index 4feb998..2cc0a6b 100644
--- a/src/com/android/launcher2/AllAppsTabbed.java
+++ b/src/com/android/launcher2/AllAppsTabbed.java
@@ -16,9 +16,10 @@
 
 package com.android.launcher2;
 
-import java.util.ArrayList;
+import com.android.launcher.R;
 
 import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
 import android.animation.ObjectAnimator;
 import android.animation.ValueAnimator;
 import android.content.Context;
@@ -32,7 +33,7 @@
 import android.widget.TabWidget;
 import android.widget.TextView;
 
-import com.android.launcher.R;
+import java.util.ArrayList;
 
 /**
  * Implements a tabbed version of AllApps2D.
@@ -91,9 +92,9 @@
                 final float alpha = mAllApps.getAlpha();
                 ValueAnimator alphaAnim = ObjectAnimator.ofFloat(mAllApps, "alpha", alpha, 0.0f).
                         setDuration(duration);
-                alphaAnim.addListener(new LauncherAnimatorListenerAdapter() {
+                alphaAnim.addListener(new AnimatorListenerAdapter() {
                     @Override
-                    public void onAnimationEndOrCancel(Animator animation) {
+                    public void onAnimationEnd(Animator animation) {
                         String tag = getCurrentTabTag();
                         if (tag == TAG_ALL) {
                             mAllApps.setAppFilter(AllAppsPagedView.ALL_APPS_FLAG);
diff --git a/src/com/android/launcher2/ApplicationInfoDropTarget.java b/src/com/android/launcher2/ApplicationInfoDropTarget.java
index fdcbbd4..2ee3501 100644
--- a/src/com/android/launcher2/ApplicationInfoDropTarget.java
+++ b/src/com/android/launcher2/ApplicationInfoDropTarget.java
@@ -16,16 +16,18 @@
 
 package com.android.launcher2;
 
+import com.android.launcher.R;
+
 import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
+import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
+import android.animation.Animator.AnimatorListener;
 import android.content.ComponentName;
 import android.content.Context;
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffColorFilter;
 import android.util.AttributeSet;
-
-import com.android.launcher.R;
+import android.view.View;
 
 /**
  * Implements a DropTarget which allows applications to be dropped on it,
@@ -35,8 +37,9 @@
     private static final int sFadeInAnimationDuration = 200;
     private static final int sFadeOutAnimationDuration = 100;
 
-    private ObjectAnimator mFadeAnimator;
+    private AnimatorSet mFadeAnimator;
     private ObjectAnimator mHandleFadeAnimator;
+    private boolean mHandleWasVisibleOnDragStart;
 
     public ApplicationInfoDropTarget(Context context, AttributeSet attrs) {
         this(context, attrs, 0);
@@ -87,13 +90,25 @@
             if (mActive) {
                 // Fade in this icon
                 if (mFadeAnimator != null) mFadeAnimator.cancel();
-                mFadeAnimator = ObjectAnimator.ofFloat(this, "alpha", 0.0f, 1.0f);
-                mFadeAnimator.setDuration(sFadeInAnimationDuration);
+                mFadeAnimator = new AnimatorSet();
+                Animator infoButtonAnimator = ObjectAnimator.ofFloat(this, "alpha", 0.0f, 1.0f);
+                infoButtonAnimator.setDuration(sFadeInAnimationDuration);
+
+                if (mHandle == mLauncher.findViewById(R.id.configure_button)) {
+                    final View divider = mLauncher.findViewById(R.id.divider_during_drag);
+                    divider.setVisibility(VISIBLE);
+                    Animator dividerAnimator = ObjectAnimator.ofFloat(divider, "alpha", 1.0f);
+                    dividerAnimator.setDuration(sFadeInAnimationDuration);
+                    mFadeAnimator.play(infoButtonAnimator).with(dividerAnimator);
+                } else {
+                    mFadeAnimator.play(infoButtonAnimator);
+                }
                 mFadeAnimator.start();
                 setVisibility(VISIBLE);
 
                 // Fade out the handle
                 if (mHandle != null) {
+                    mHandleWasVisibleOnDragStart = mHandle.getVisibility() == VISIBLE;
                     if (mHandleFadeAnimator != null) mHandleFadeAnimator.cancel();
                     mHandleFadeAnimator = ObjectAnimator.ofFloat(mHandle, "alpha", 0.0f);
                     mHandleFadeAnimator.setDuration(sFadeOutAnimationDuration);
@@ -123,8 +138,12 @@
 
         // Fade out this icon
         if (mFadeAnimator != null) mFadeAnimator.cancel();
-        mFadeAnimator = ObjectAnimator.ofFloat(this, "alpha", 0.0f);
-        mFadeAnimator.setDuration(sFadeOutAnimationDuration);
+        mFadeAnimator = new AnimatorSet();
+        Animator infoButtonAnimator = ObjectAnimator.ofFloat(this, "alpha", 0.0f);
+        infoButtonAnimator.setDuration(sFadeOutAnimationDuration);
+        final View divider = mLauncher.findViewById(R.id.divider_during_drag);
+        divider.setVisibility(VISIBLE);
+        Animator dividerAnimator = ObjectAnimator.ofFloat(divider, "alpha", 0.0f);
         mFadeAnimator.addListener(new AnimatorListener() {
             public void onAnimationStart(Animator animation) {}
             public void onAnimationRepeat(Animator animation) {}
@@ -136,13 +155,15 @@
             }
             private void onEndOrCancel() {
                 setVisibility(GONE);
+                divider.setVisibility(GONE);
                 mFadeAnimator = null;
             }
         });
+        mFadeAnimator.play(infoButtonAnimator).with(dividerAnimator);
         mFadeAnimator.start();
 
         // Fade in the handle
-        if (mHandle != null) {
+        if (mHandle != null && mHandleWasVisibleOnDragStart) {
             if (mHandleFadeAnimator != null) mHandleFadeAnimator.cancel();
             mHandleFadeAnimator = ObjectAnimator.ofFloat(mHandle, "alpha", 1.0f);
             mHandleFadeAnimator.setDuration(sFadeInAnimationDuration);
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index fd0ef51..ef4637e 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -304,13 +304,13 @@
             AnimatorSet bouncer = new AnimatorSet();
             bouncer.play(scaleUp).before(scaleDown);
             bouncer.play(scaleUp).with(alphaFadeOut);
-            bouncer.addListener(new LauncherAnimatorListenerAdapter() {
+            bouncer.addListener(new AnimatorListenerAdapter() {
                 @Override
                 public void onAnimationStart(Animator animation) {
                     setHover(true);
                 }
                 @Override
-                public void onAnimationEndOrCancel(Animator animation) {
+                public void onAnimationEnd(Animator animation) {
                     setHover(false);
                     setHoverScale(1.0f);
                     setHoverAlpha(1.0f);
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index cfc15d1..5672921 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -599,8 +599,6 @@
      * in the customize drawer.
      */
     private Drawable parseWallpaperPreviewXml(ComponentName component, ResolveInfo ri) {
-        Drawable d = null;
-
         ActivityInfo activityInfo = ri.activityInfo;
         XmlResourceParser parser = null;
         try {
diff --git a/src/com/android/launcher2/InterruptibleInOutAnimator.java b/src/com/android/launcher2/InterruptibleInOutAnimator.java
index 570b9e7..be2fd04 100644
--- a/src/com/android/launcher2/InterruptibleInOutAnimator.java
+++ b/src/com/android/launcher2/InterruptibleInOutAnimator.java
@@ -52,9 +52,9 @@
         mOriginalFromValue = fromValue;
         mOriginalToValue = toValue;
 
-        mAnimator.addListener(new LauncherAnimatorListenerAdapter() {
+        mAnimator.addListener(new AnimatorListenerAdapter() {
             @Override
-            public void onAnimationEndOrCancel(Animator animation) {
+            public void onAnimationEnd(Animator animation) {
                 mDirection = STOPPED;
             }
         });
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 130cb76..40cd74b 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -22,6 +22,7 @@
 import com.android.launcher2.Workspace.ShrinkState;
 
 import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
 import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.animation.PropertyValuesHolder;
@@ -337,9 +338,9 @@
                     ValueAnimator alphaAnim = ObjectAnimator.ofFloat(mCustomizePagedView,
                             "alpha", alpha, 0.0f);
                     alphaAnim.setDuration(duration);
-                    alphaAnim.addListener(new LauncherAnimatorListenerAdapter() {
+                    alphaAnim.addListener(new AnimatorListenerAdapter() {
                         @Override
-                        public void onAnimationEndOrCancel(Animator animation) {
+                        public void onAnimationEnd(Animator animation) {
                             String tag = mHomeCustomizationDrawer.getCurrentTabTag();
                             if (tag == WIDGETS_TAG) {
                                 mCustomizePagedView.setCustomizationFilter(
@@ -2541,13 +2542,13 @@
         if (seq != null) {
             Animator anim = ObjectAnimator.ofFloat(view, "alpha", show ? 1.0f : 0.0f);
             anim.setDuration(duration);
-            anim.addListener(new LauncherAnimatorListenerAdapter() {
+            anim.addListener(new AnimatorListenerAdapter() {
                 @Override
                 public void onAnimationStart(Animator animation) {
                     if (showing) showToolbarButton(view);
                 }
                 @Override
-                public void onAnimationEndOrCancel(Animator animation) {
+                public void onAnimationEnd(Animator animation) {
                     if (hiding) hideToolbarButton(view);
                 }
             });
@@ -2572,23 +2573,27 @@
     private void hideAndShowToolbarButtons(State newState, AnimatorSet showSeq, AnimatorSet hideSeq) {
         final View searchButton = findViewById(R.id.search_button_cluster);
         final View allAppsButton = findViewById(R.id.all_apps_button);
+        final View divider = findViewById(R.id.divider);
         final View configureButton = findViewById(R.id.configure_button);
 
         switch (newState) {
         case WORKSPACE:
             hideOrShowToolbarButton(true, searchButton, showSeq);
             hideOrShowToolbarButton(true, allAppsButton, showSeq);
+            hideOrShowToolbarButton(true, divider, showSeq);
             hideOrShowToolbarButton(true, configureButton, showSeq);
             mDeleteZone.setHandle(allAppsButton);
             break;
         case ALL_APPS:
             hideOrShowToolbarButton(false, configureButton, hideSeq);
             hideOrShowToolbarButton(false, searchButton, hideSeq);
+            hideOrShowToolbarButton(false, divider, hideSeq);
             hideOrShowToolbarButton(false, allAppsButton, hideSeq);
             break;
         case CUSTOMIZE:
             hideOrShowToolbarButton(false, allAppsButton, hideSeq);
             hideOrShowToolbarButton(false, searchButton, hideSeq);
+            hideOrShowToolbarButton(false, divider, hideSeq);
             hideOrShowToolbarButton(false, configureButton, hideSeq);
             mDeleteZone.setHandle(allAppsButton);
             break;
@@ -2644,7 +2649,7 @@
             scaleAnim.setDuration(duration);
 
             scaleAnim.setInterpolator(new Workspace.ZoomOutInterpolator());
-            scaleAnim.addListener(new LauncherAnimatorListenerAdapter() {
+            scaleAnim.addListener(new AnimatorListenerAdapter() {
                 @Override
                 public void onAnimationStart(Animator animation) {
                     // Prepare the position
@@ -2654,7 +2659,7 @@
                     toView.setAlpha(1.0f);
                 }
                 @Override
-                public void onAnimationEndOrCancel(Animator animation) {
+                public void onAnimationEnd(Animator animation) {
                     // If we don't set the final scale values here, if this animation is cancelled
                     // it will have the wrong scale value and subsequent cameraPan animations will
                     // not fix that
@@ -2727,9 +2732,9 @@
             ValueAnimator alphaAnim = ObjectAnimator.ofPropertyValuesHolder(fromView,
                     PropertyValuesHolder.ofFloat("alpha", 1.0f, 0.0f));
             alphaAnim.setDuration(res.getInteger(R.integer.config_allAppsFadeOutTime));
-            alphaAnim.addListener(new LauncherAnimatorListenerAdapter() {
+            alphaAnim.addListener(new AnimatorListenerAdapter() {
                 @Override
-                public void onAnimationEndOrCancel(Animator animation) {
+                public void onAnimationEnd(Animator animation) {
                     fromView.setVisibility(View.GONE);
                 }
             });
@@ -2789,7 +2794,7 @@
         if (animated) {
             if (mStateAnimation != null) mStateAnimation.cancel();
             mStateAnimation = new AnimatorSet();
-            mStateAnimation.addListener(new LauncherAnimatorListenerAdapter() {
+            mStateAnimation.addListener(new AnimatorListenerAdapter() {
                 @Override
                 public void onAnimationStart(Animator animation) {
                     toView.setVisibility(View.VISIBLE);
@@ -2797,7 +2802,7 @@
                     toView.setAlpha(1.0f);
                 }
                 @Override
-                public void onAnimationEndOrCancel(Animator animation) {
+                public void onAnimationEnd(Animator animation) {
                     fromView.setVisibility(View.GONE);
                 }
             });
diff --git a/src/com/android/launcher2/LauncherAnimatorListenerAdapter.java b/src/com/android/launcher2/LauncherAnimatorListenerAdapter.java
deleted file mode 100644
index 3ab4868..0000000
--- a/src/com/android/launcher2/LauncherAnimatorListenerAdapter.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.launcher2;
-
-import android.animation.Animator;
-
-import java.util.HashSet;
-
-/**
- * This adapter class provides empty implementations of the methods from {@link android.animation.Animator.AnimatorListener}.
- * Any custom listener that cares only about a subset of the methods of this listener can
- * simply subclass this adapter class instead of implementing the interface directly.
- */
-public abstract class LauncherAnimatorListenerAdapter implements Animator.AnimatorListener {
-    HashSet<Animator> cancelled = new HashSet<Animator>();
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public final void onAnimationCancel(Animator animation) {
-        onAnimationEndOrCancel(animation);
-        cancelled.add(animation);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public final void onAnimationEnd(Animator animation) {
-        if (!cancelled.contains(animation)) onAnimationEndOrCancel(animation);
-        cancelled.remove(animation);
-    }
-
-    /**
-     * Like onAnimationEnd, except it's called immediately in the case on onAnimationCancel, and
-     * it's only called once in that case
-     */
-    public void onAnimationEndOrCancel(Animator animation) {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onAnimationRepeat(Animator animation) {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onAnimationStart(Animator animation) {
-    }
-
-}
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index f70480d..28b6ff9 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -16,17 +16,17 @@
 
 package com.android.launcher2;
 
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
+import com.android.launcher.R;
+import com.android.launcher2.InstallWidgetReceiver.WidgetMimeTypeHandlerData;
 
 import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
+import android.animation.AnimatorListenerAdapter;
 import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.animation.PropertyValuesHolder;
 import android.animation.TimeInterpolator;
 import android.animation.ValueAnimator;
+import android.animation.Animator.AnimatorListener;
 import android.animation.ValueAnimator.AnimatorUpdateListener;
 import android.app.AlertDialog;
 import android.app.WallpaperManager;
@@ -44,7 +44,6 @@
 import android.graphics.Bitmap;
 import android.graphics.Camera;
 import android.graphics.Canvas;
-import android.graphics.Color;
 import android.graphics.Matrix;
 import android.graphics.Paint;
 import android.graphics.Rect;
@@ -62,12 +61,12 @@
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.animation.DecelerateInterpolator;
-import android.widget.TabHost;
 import android.widget.TextView;
 import android.widget.Toast;
 
-import com.android.launcher.R;
-import com.android.launcher2.InstallWidgetReceiver.WidgetMimeTypeHandlerData;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
 
 /**
  * The workspace is a wide area with a wallpaper and a finite number of pages.
@@ -267,13 +266,13 @@
             // In this case, we will skip drawing background protection
         }
 
-        mUnshrinkAnimationListener = new LauncherAnimatorListenerAdapter() {
+        mUnshrinkAnimationListener = new AnimatorListenerAdapter() {
             @Override
             public void onAnimationStart(Animator animation) {
                 mIsInUnshrinkAnimation = true;
             }
             @Override
-            public void onAnimationEndOrCancel(Animator animation) {
+            public void onAnimationEnd(Animator animation) {
                 mIsInUnshrinkAnimation = false;
                 if (mShrinkState != ShrinkState.SPRING_LOADED) {
                     mDrawCustomizeTrayBackground = false;
@@ -1520,22 +1519,19 @@
         }
 
         if (mDropAnim != null) {
-            // This should really be end(), but that will not be called synchronously,
-            // so instead we use LauncherAnimatorListenerAdapter.onAnimationEndOrCancel()
-            // and call cancel() here.
-            mDropAnim.cancel();
+            mDropAnim.end();
         }
         mDropAnim = new ValueAnimator();
         mDropAnim.setInterpolator(mQuintEaseOutInterpolator);
 
         // The view is invisible during the animation; we render it manually.
-        mDropAnim.addListener(new LauncherAnimatorListenerAdapter() {
+        mDropAnim.addListener(new AnimatorListenerAdapter() {
             public void onAnimationStart(Animator animation) {
                 // Set this here so that we don't render it until the animation begins
                 mDropView = view;
             }
 
-            public void onAnimationEndOrCancel(Animator animation) {
+            public void onAnimationEnd(Animator animation) {
                 if (mDropView != null) {
                     mDropView.setVisibility(View.VISIBLE);
                     mDropView = null;
