diff --git a/res/drawable-hdpi/apps_hotseat_button.png b/res/drawable-hdpi/apps_hotseat_button.png
deleted file mode 100644
index 15e66db..0000000
--- a/res/drawable-hdpi/apps_hotseat_button.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/homescreen_blue_strong_holo.9.png b/res/drawable-hdpi/homescreen_blue_strong_holo.9.png
new file mode 100644
index 0000000..c88ef14
--- /dev/null
+++ b/res/drawable-hdpi/homescreen_blue_strong_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/homescreen_green_normal_holo.9.png b/res/drawable-hdpi/homescreen_green_normal_holo.9.png
deleted file mode 100644
index 677250c..0000000
--- a/res/drawable-hdpi/homescreen_green_normal_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/homescreen_green_strong_holo.9.png b/res/drawable-hdpi/homescreen_green_strong_holo.9.png
deleted file mode 100644
index 74f4dad..0000000
--- a/res/drawable-hdpi/homescreen_green_strong_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/homescreen_small_green.9.png b/res/drawable-hdpi/homescreen_small_green.9.png
deleted file mode 100644
index 6e7090b..0000000
--- a/res/drawable-hdpi/homescreen_small_green.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/homescreen_small_green_strong.9.png b/res/drawable-hdpi/homescreen_small_green_strong.9.png
deleted file mode 100644
index db1027e..0000000
--- a/res/drawable-hdpi/homescreen_small_green_strong.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/hotseat_bg_panel.9.png b/res/drawable-hdpi/hotseat_bg_panel.9.png
index ae718d4..955b0e8 100644
--- a/res/drawable-hdpi/hotseat_bg_panel.9.png
+++ b/res/drawable-hdpi/hotseat_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-hdpi/hotseat_scrubber_holo.9.png b/res/drawable-hdpi/hotseat_scrubber_holo.9.png
index 3a026f8..00645c4 100644
--- a/res/drawable-hdpi/hotseat_scrubber_holo.9.png
+++ b/res/drawable-hdpi/hotseat_scrubber_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/hotseat_track_holo.9.png b/res/drawable-hdpi/hotseat_track_holo.9.png
index 2ce4967..255add0 100644
--- a/res/drawable-hdpi/hotseat_track_holo.9.png
+++ b/res/drawable-hdpi/hotseat_track_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_allapps.png b/res/drawable-hdpi/ic_allapps.png
new file mode 100644
index 0000000..40d5827
--- /dev/null
+++ b/res/drawable-hdpi/ic_allapps.png
Binary files differ
diff --git a/res/drawable-hdpi/overscroll_glow_left.9.png b/res/drawable-hdpi/overscroll_glow_left.9.png
index cb8f22a..a37592d 100644
--- a/res/drawable-hdpi/overscroll_glow_left.9.png
+++ b/res/drawable-hdpi/overscroll_glow_left.9.png
Binary files differ
diff --git a/res/drawable-hdpi/overscroll_glow_right.9.png b/res/drawable-hdpi/overscroll_glow_right.9.png
index 3135816..f0f7084 100644
--- a/res/drawable-hdpi/overscroll_glow_right.9.png
+++ b/res/drawable-hdpi/overscroll_glow_right.9.png
Binary files differ
diff --git a/res/drawable-hdpi/page_hover_left_holo.9.png b/res/drawable-hdpi/page_hover_left_holo.9.png
index 0f405a5..735eff6 100644
--- a/res/drawable-hdpi/page_hover_left_holo.9.png
+++ b/res/drawable-hdpi/page_hover_left_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/page_hover_right_holo.9.png b/res/drawable-hdpi/page_hover_right_holo.9.png
index b7b4c56..9d7aca4 100644
--- a/res/drawable-hdpi/page_hover_right_holo.9.png
+++ b/res/drawable-hdpi/page_hover_right_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/portal_container_holo.9.png b/res/drawable-hdpi/portal_container_holo.9.png
index a2272c9..20e8808 100644
--- a/res/drawable-hdpi/portal_container_holo.9.png
+++ b/res/drawable-hdpi/portal_container_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/portal_ring_inner_holo.png b/res/drawable-hdpi/portal_ring_inner_holo.png
index 49df9ec..92daaae 100644
--- a/res/drawable-hdpi/portal_ring_inner_holo.png
+++ b/res/drawable-hdpi/portal_ring_inner_holo.png
Binary files differ
diff --git a/res/drawable-hdpi/portal_ring_outer_holo.png b/res/drawable-hdpi/portal_ring_outer_holo.png
index 282d0d7..2b635cb 100644
--- a/res/drawable-hdpi/portal_ring_outer_holo.png
+++ b/res/drawable-hdpi/portal_ring_outer_holo.png
Binary files differ
diff --git a/res/drawable-hdpi/portal_ring_rest.png b/res/drawable-hdpi/portal_ring_rest.png
index 5e215d3..b9ef778 100644
--- a/res/drawable-hdpi/portal_ring_rest.png
+++ b/res/drawable-hdpi/portal_ring_rest.png
Binary files differ
diff --git a/res/drawable-hdpi/search_bg_panel.9.png b/res/drawable-hdpi/search_bg_panel.9.png
new file mode 100644
index 0000000..af5066f
--- /dev/null
+++ b/res/drawable-hdpi/search_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-hdpi/search_frame.9.png b/res/drawable-hdpi/search_frame.9.png
new file mode 100644
index 0000000..98b430c
--- /dev/null
+++ b/res/drawable-hdpi/search_frame.9.png
Binary files differ
diff --git a/res/drawable-hdpi/tab_selected_focused_holo.9.png b/res/drawable-hdpi/tab_selected_focused_holo.9.png
index 5cf7583..673e3bf 100644
--- a/res/drawable-hdpi/tab_selected_focused_holo.9.png
+++ b/res/drawable-hdpi/tab_selected_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/tab_selected_holo.9.png b/res/drawable-hdpi/tab_selected_holo.9.png
index 8da2dee..d57df98 100644
--- a/res/drawable-hdpi/tab_selected_holo.9.png
+++ b/res/drawable-hdpi/tab_selected_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/tab_selected_pressed_holo.9.png b/res/drawable-hdpi/tab_selected_pressed_holo.9.png
index 185a924..6278eef 100644
--- a/res/drawable-hdpi/tab_selected_pressed_holo.9.png
+++ b/res/drawable-hdpi/tab_selected_pressed_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/tab_unselected_focused_holo.9.png b/res/drawable-hdpi/tab_unselected_focused_holo.9.png
index acfcaca..294991d 100644
--- a/res/drawable-hdpi/tab_unselected_focused_holo.9.png
+++ b/res/drawable-hdpi/tab_unselected_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/tab_unselected_holo.9.png b/res/drawable-hdpi/tab_unselected_holo.9.png
index fcdf716..19532ab 100644
--- a/res/drawable-hdpi/tab_unselected_holo.9.png
+++ b/res/drawable-hdpi/tab_unselected_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/tab_unselected_pressed_holo.9.png b/res/drawable-hdpi/tab_unselected_pressed_holo.9.png
index af85bb7..aadc6f8 100644
--- a/res/drawable-hdpi/tab_unselected_pressed_holo.9.png
+++ b/res/drawable-hdpi/tab_unselected_pressed_holo.9.png
Binary files differ
diff --git a/res/drawable-land-hdpi/hotseat_bg_panel.9.png b/res/drawable-land-hdpi/hotseat_bg_panel.9.png
index 6a25f46..318234f 100644
--- a/res/drawable-land-hdpi/hotseat_bg_panel.9.png
+++ b/res/drawable-land-hdpi/hotseat_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-land-hdpi/hotseat_track_holo.9.png b/res/drawable-land-hdpi/hotseat_track_holo.9.png
index 165870e..255add0 100644
--- a/res/drawable-land-hdpi/hotseat_track_holo.9.png
+++ b/res/drawable-land-hdpi/hotseat_track_holo.9.png
Binary files differ
diff --git a/res/drawable-land-hdpi/search_bg_panel.9.png b/res/drawable-land-hdpi/search_bg_panel.9.png
new file mode 100644
index 0000000..f574e27
--- /dev/null
+++ b/res/drawable-land-hdpi/search_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-land-mdpi/hotseat_bg_panel.9.png b/res/drawable-land-mdpi/hotseat_bg_panel.9.png
index dbe73d4..3dbb386 100644
--- a/res/drawable-land-mdpi/hotseat_bg_panel.9.png
+++ b/res/drawable-land-mdpi/hotseat_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-land-mdpi/hotseat_track_holo.9.png b/res/drawable-land-mdpi/hotseat_track_holo.9.png
index 82ed81d..168f092 100644
--- a/res/drawable-land-mdpi/hotseat_track_holo.9.png
+++ b/res/drawable-land-mdpi/hotseat_track_holo.9.png
Binary files differ
diff --git a/res/drawable-land-mdpi/search_bg_panel.9.png b/res/drawable-land-mdpi/search_bg_panel.9.png
new file mode 100644
index 0000000..e6da309
--- /dev/null
+++ b/res/drawable-land-mdpi/search_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-land-xhdpi/hotseat_bg_panel.9.png b/res/drawable-land-xhdpi/hotseat_bg_panel.9.png
new file mode 100644
index 0000000..5824aa5
--- /dev/null
+++ b/res/drawable-land-xhdpi/hotseat_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-land-xhdpi/hotseat_track_holo.9.png b/res/drawable-land-xhdpi/hotseat_track_holo.9.png
new file mode 100644
index 0000000..3ad3c0d
--- /dev/null
+++ b/res/drawable-land-xhdpi/hotseat_track_holo.9.png
Binary files differ
diff --git a/res/drawable-land-xhdpi/search_bg_panel.9.png b/res/drawable-land-xhdpi/search_bg_panel.9.png
new file mode 100644
index 0000000..fdda3cf
--- /dev/null
+++ b/res/drawable-land-xhdpi/search_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-mdpi/homescreen_blue_strong_holo.9.png b/res/drawable-mdpi/homescreen_blue_strong_holo.9.png
new file mode 100644
index 0000000..e3edb64
--- /dev/null
+++ b/res/drawable-mdpi/homescreen_blue_strong_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/homescreen_green_normal_holo.9.png b/res/drawable-mdpi/homescreen_green_normal_holo.9.png
deleted file mode 100644
index 414a5c9..0000000
--- a/res/drawable-mdpi/homescreen_green_normal_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/homescreen_green_strong_holo.9.png b/res/drawable-mdpi/homescreen_green_strong_holo.9.png
deleted file mode 100644
index 15f334e..0000000
--- a/res/drawable-mdpi/homescreen_green_strong_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/homescreen_small_green.9.png b/res/drawable-mdpi/homescreen_small_green.9.png
deleted file mode 100644
index a713f90..0000000
--- a/res/drawable-mdpi/homescreen_small_green.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/homescreen_small_green_strong.9.png b/res/drawable-mdpi/homescreen_small_green_strong.9.png
deleted file mode 100644
index 9884bcd..0000000
--- a/res/drawable-mdpi/homescreen_small_green_strong.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/hotseat_bg_panel.9.png b/res/drawable-mdpi/hotseat_bg_panel.9.png
index 1074d61..7c31ee2 100644
--- a/res/drawable-mdpi/hotseat_bg_panel.9.png
+++ b/res/drawable-mdpi/hotseat_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-mdpi/hotseat_scrubber_holo.9.png b/res/drawable-mdpi/hotseat_scrubber_holo.9.png
index de66649..1b335d8 100644
--- a/res/drawable-mdpi/hotseat_scrubber_holo.9.png
+++ b/res/drawable-mdpi/hotseat_scrubber_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/hotseat_track_holo.9.png b/res/drawable-mdpi/hotseat_track_holo.9.png
index 21f1ed1..168f092 100644
--- a/res/drawable-mdpi/hotseat_track_holo.9.png
+++ b/res/drawable-mdpi/hotseat_track_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_allapps.png b/res/drawable-mdpi/ic_allapps.png
new file mode 100644
index 0000000..a3cce14
--- /dev/null
+++ b/res/drawable-mdpi/ic_allapps.png
Binary files differ
diff --git a/res/drawable-mdpi/overscroll_glow_left.9.png b/res/drawable-mdpi/overscroll_glow_left.9.png
index 5989dce..897e63d 100644
--- a/res/drawable-mdpi/overscroll_glow_left.9.png
+++ b/res/drawable-mdpi/overscroll_glow_left.9.png
Binary files differ
diff --git a/res/drawable-mdpi/overscroll_glow_right.9.png b/res/drawable-mdpi/overscroll_glow_right.9.png
index 5a6d2bc..dc6ecac 100644
--- a/res/drawable-mdpi/overscroll_glow_right.9.png
+++ b/res/drawable-mdpi/overscroll_glow_right.9.png
Binary files differ
diff --git a/res/drawable-mdpi/page_hover_left_holo.9.png b/res/drawable-mdpi/page_hover_left_holo.9.png
index b9368fb..87c90ed 100644
--- a/res/drawable-mdpi/page_hover_left_holo.9.png
+++ b/res/drawable-mdpi/page_hover_left_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/page_hover_right_holo.9.png b/res/drawable-mdpi/page_hover_right_holo.9.png
index 53ba807..f725846 100644
--- a/res/drawable-mdpi/page_hover_right_holo.9.png
+++ b/res/drawable-mdpi/page_hover_right_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/portal_container_holo.9.png b/res/drawable-mdpi/portal_container_holo.9.png
index daa1773..90fb1d1 100644
--- a/res/drawable-mdpi/portal_container_holo.9.png
+++ b/res/drawable-mdpi/portal_container_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/portal_ring_inner_holo.png b/res/drawable-mdpi/portal_ring_inner_holo.png
index 369e64a..4f985a0 100644
--- a/res/drawable-mdpi/portal_ring_inner_holo.png
+++ b/res/drawable-mdpi/portal_ring_inner_holo.png
Binary files differ
diff --git a/res/drawable-mdpi/portal_ring_outer_holo.png b/res/drawable-mdpi/portal_ring_outer_holo.png
index 842e7bc..c514217 100644
--- a/res/drawable-mdpi/portal_ring_outer_holo.png
+++ b/res/drawable-mdpi/portal_ring_outer_holo.png
Binary files differ
diff --git a/res/drawable-mdpi/portal_ring_rest.png b/res/drawable-mdpi/portal_ring_rest.png
index c3203d9..3ab8b36 100644
--- a/res/drawable-mdpi/portal_ring_rest.png
+++ b/res/drawable-mdpi/portal_ring_rest.png
Binary files differ
diff --git a/res/drawable-mdpi/search_bg_panel.9.png b/res/drawable-mdpi/search_bg_panel.9.png
new file mode 100644
index 0000000..277d2ce
--- /dev/null
+++ b/res/drawable-mdpi/search_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-mdpi/search_frame.9.png b/res/drawable-mdpi/search_frame.9.png
new file mode 100644
index 0000000..92ef3e7
--- /dev/null
+++ b/res/drawable-mdpi/search_frame.9.png
Binary files differ
diff --git a/res/drawable-mdpi/tab_selected_focused_holo.9.png b/res/drawable-mdpi/tab_selected_focused_holo.9.png
index d393cde..c9972e7 100644
--- a/res/drawable-mdpi/tab_selected_focused_holo.9.png
+++ b/res/drawable-mdpi/tab_selected_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/tab_selected_holo.9.png b/res/drawable-mdpi/tab_selected_holo.9.png
index 4035a32..587337c 100644
--- a/res/drawable-mdpi/tab_selected_holo.9.png
+++ b/res/drawable-mdpi/tab_selected_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/tab_selected_pressed_holo.9.png b/res/drawable-mdpi/tab_selected_pressed_holo.9.png
index 7efad5e..155c4fc 100644
--- a/res/drawable-mdpi/tab_selected_pressed_holo.9.png
+++ b/res/drawable-mdpi/tab_selected_pressed_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/tab_unselected_focused_holo.9.png b/res/drawable-mdpi/tab_unselected_focused_holo.9.png
index d3d19fc..f0cecd1 100644
--- a/res/drawable-mdpi/tab_unselected_focused_holo.9.png
+++ b/res/drawable-mdpi/tab_unselected_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/tab_unselected_holo.9.png b/res/drawable-mdpi/tab_unselected_holo.9.png
index 41f998e..a2dbf42 100644
--- a/res/drawable-mdpi/tab_unselected_holo.9.png
+++ b/res/drawable-mdpi/tab_unselected_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/tab_unselected_pressed_holo.9.png b/res/drawable-mdpi/tab_unselected_pressed_holo.9.png
index 37c9216..b1223fe 100644
--- a/res/drawable-mdpi/tab_unselected_pressed_holo.9.png
+++ b/res/drawable-mdpi/tab_unselected_pressed_holo.9.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/portal_ring_inner_holo.png b/res/drawable-sw600dp-hdpi/portal_ring_inner_holo.png
index 1e89e78..659c23b 100644
--- a/res/drawable-sw600dp-hdpi/portal_ring_inner_holo.png
+++ b/res/drawable-sw600dp-hdpi/portal_ring_inner_holo.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/portal_ring_outer_holo.png b/res/drawable-sw600dp-hdpi/portal_ring_outer_holo.png
index 2757779..8ec67df 100644
--- a/res/drawable-sw600dp-hdpi/portal_ring_outer_holo.png
+++ b/res/drawable-sw600dp-hdpi/portal_ring_outer_holo.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/portal_ring_inner_holo.png b/res/drawable-sw600dp-mdpi/portal_ring_inner_holo.png
index c787b01..8e3dd57 100644
--- a/res/drawable-sw600dp-mdpi/portal_ring_inner_holo.png
+++ b/res/drawable-sw600dp-mdpi/portal_ring_inner_holo.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/portal_ring_outer_holo.png b/res/drawable-sw600dp-mdpi/portal_ring_outer_holo.png
index 1cac453..94e0677 100644
--- a/res/drawable-sw600dp-mdpi/portal_ring_outer_holo.png
+++ b/res/drawable-sw600dp-mdpi/portal_ring_outer_holo.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/portal_ring_inner_holo.png b/res/drawable-sw600dp-xhdpi/portal_ring_inner_holo.png
index f937012..a013e5a 100644
--- a/res/drawable-sw600dp-xhdpi/portal_ring_inner_holo.png
+++ b/res/drawable-sw600dp-xhdpi/portal_ring_inner_holo.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/portal_ring_outer_holo.png b/res/drawable-sw600dp-xhdpi/portal_ring_outer_holo.png
index f347061..7bdaaf3 100644
--- a/res/drawable-sw600dp-xhdpi/portal_ring_outer_holo.png
+++ b/res/drawable-sw600dp-xhdpi/portal_ring_outer_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/homescreen_blue_strong_holo.9.png b/res/drawable-xhdpi/homescreen_blue_strong_holo.9.png
new file mode 100644
index 0000000..738cd2a
--- /dev/null
+++ b/res/drawable-xhdpi/homescreen_blue_strong_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/homescreen_green_normal_holo.9.png b/res/drawable-xhdpi/homescreen_green_normal_holo.9.png
deleted file mode 100644
index 4b12213..0000000
--- a/res/drawable-xhdpi/homescreen_green_normal_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/homescreen_green_strong_holo.9.png b/res/drawable-xhdpi/homescreen_green_strong_holo.9.png
deleted file mode 100644
index 4e41441..0000000
--- a/res/drawable-xhdpi/homescreen_green_strong_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/homescreen_small_green.9.png b/res/drawable-xhdpi/homescreen_small_green.9.png
deleted file mode 100644
index 3c4532a..0000000
--- a/res/drawable-xhdpi/homescreen_small_green.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/homescreen_small_green_strong.9.png b/res/drawable-xhdpi/homescreen_small_green_strong.9.png
deleted file mode 100644
index c1d4ded..0000000
--- a/res/drawable-xhdpi/homescreen_small_green_strong.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/hotseat_bg_panel.9.png b/res/drawable-xhdpi/hotseat_bg_panel.9.png
index 6d9288e..570d929 100644
--- a/res/drawable-xhdpi/hotseat_bg_panel.9.png
+++ b/res/drawable-xhdpi/hotseat_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/hotseat_scrubber_holo.9.png b/res/drawable-xhdpi/hotseat_scrubber_holo.9.png
index 55b313f..a32b139 100644
--- a/res/drawable-xhdpi/hotseat_scrubber_holo.9.png
+++ b/res/drawable-xhdpi/hotseat_scrubber_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/hotseat_track_holo.9.png b/res/drawable-xhdpi/hotseat_track_holo.9.png
index 04004b2..3ad3c0d 100644
--- a/res/drawable-xhdpi/hotseat_track_holo.9.png
+++ b/res/drawable-xhdpi/hotseat_track_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_allapps.png b/res/drawable-xhdpi/ic_allapps.png
new file mode 100644
index 0000000..961e3f0
--- /dev/null
+++ b/res/drawable-xhdpi/ic_allapps.png
Binary files differ
diff --git a/res/drawable-xhdpi/overscroll_glow_left.9.png b/res/drawable-xhdpi/overscroll_glow_left.9.png
index cb47760..fbfa190 100644
--- a/res/drawable-xhdpi/overscroll_glow_left.9.png
+++ b/res/drawable-xhdpi/overscroll_glow_left.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/overscroll_glow_right.9.png b/res/drawable-xhdpi/overscroll_glow_right.9.png
index 25abad0..9c66c33 100644
--- a/res/drawable-xhdpi/overscroll_glow_right.9.png
+++ b/res/drawable-xhdpi/overscroll_glow_right.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/page_hover_left_holo.9.png b/res/drawable-xhdpi/page_hover_left_holo.9.png
index 9187c9b..48b0d9d 100644
--- a/res/drawable-xhdpi/page_hover_left_holo.9.png
+++ b/res/drawable-xhdpi/page_hover_left_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/page_hover_right_holo.9.png b/res/drawable-xhdpi/page_hover_right_holo.9.png
index ad70587..da14ffe 100644
--- a/res/drawable-xhdpi/page_hover_right_holo.9.png
+++ b/res/drawable-xhdpi/page_hover_right_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/portal_container_holo.9.png b/res/drawable-xhdpi/portal_container_holo.9.png
index 0c9c518..3c8193b 100644
--- a/res/drawable-xhdpi/portal_container_holo.9.png
+++ b/res/drawable-xhdpi/portal_container_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/portal_ring_inner_holo.png b/res/drawable-xhdpi/portal_ring_inner_holo.png
index 66beb84..229ef96 100644
--- a/res/drawable-xhdpi/portal_ring_inner_holo.png
+++ b/res/drawable-xhdpi/portal_ring_inner_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/portal_ring_outer_holo.png b/res/drawable-xhdpi/portal_ring_outer_holo.png
index 34423fc..a7b5b60 100644
--- a/res/drawable-xhdpi/portal_ring_outer_holo.png
+++ b/res/drawable-xhdpi/portal_ring_outer_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/portal_ring_rest.png b/res/drawable-xhdpi/portal_ring_rest.png
index dcf1ae8..ba0a652 100644
--- a/res/drawable-xhdpi/portal_ring_rest.png
+++ b/res/drawable-xhdpi/portal_ring_rest.png
Binary files differ
diff --git a/res/drawable-xhdpi/search_bg_panel.9.png b/res/drawable-xhdpi/search_bg_panel.9.png
new file mode 100644
index 0000000..5f007c9
--- /dev/null
+++ b/res/drawable-xhdpi/search_bg_panel.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/search_frame.9.png b/res/drawable-xhdpi/search_frame.9.png
new file mode 100644
index 0000000..f00d8f8
--- /dev/null
+++ b/res/drawable-xhdpi/search_frame.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/tab_selected_focused_holo.9.png b/res/drawable-xhdpi/tab_selected_focused_holo.9.png
index ffc7331..03cfb09 100644
--- a/res/drawable-xhdpi/tab_selected_focused_holo.9.png
+++ b/res/drawable-xhdpi/tab_selected_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/tab_selected_holo.9.png b/res/drawable-xhdpi/tab_selected_holo.9.png
index 9c98c9d..e4229f2 100644
--- a/res/drawable-xhdpi/tab_selected_holo.9.png
+++ b/res/drawable-xhdpi/tab_selected_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/tab_selected_pressed_holo.9.png b/res/drawable-xhdpi/tab_selected_pressed_holo.9.png
index 36bdf66..e862cb1 100644
--- a/res/drawable-xhdpi/tab_selected_pressed_holo.9.png
+++ b/res/drawable-xhdpi/tab_selected_pressed_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/tab_unselected_focused_holo.9.png b/res/drawable-xhdpi/tab_unselected_focused_holo.9.png
index dcf6964..f3a5cbd 100644
--- a/res/drawable-xhdpi/tab_unselected_focused_holo.9.png
+++ b/res/drawable-xhdpi/tab_unselected_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/tab_unselected_holo.9.png b/res/drawable-xhdpi/tab_unselected_holo.9.png
index 557f3f5..9465173 100644
--- a/res/drawable-xhdpi/tab_unselected_holo.9.png
+++ b/res/drawable-xhdpi/tab_unselected_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/tab_unselected_pressed_holo.9.png b/res/drawable-xhdpi/tab_unselected_pressed_holo.9.png
index 09ae705..f1eb673 100644
--- a/res/drawable-xhdpi/tab_unselected_pressed_holo.9.png
+++ b/res/drawable-xhdpi/tab_unselected_pressed_holo.9.png
Binary files differ
diff --git a/res/drawable/flying_icon_bg.xml b/res/drawable/flying_icon_bg.xml
index affd975..6f5bf0b 100644
--- a/res/drawable/flying_icon_bg.xml
+++ b/res/drawable/flying_icon_bg.xml
@@ -15,6 +15,6 @@
 -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true" android:drawable="@drawable/homescreen_small_green" />
+    <item android:state_pressed="true" android:drawable="@drawable/homescreen_small_blue" />
     <item android:drawable="@android:color/transparent" />
 </selector>
diff --git a/res/values/config.xml b/res/values/config.xml
index f9adaf0..ff8dede 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -23,12 +23,14 @@
 
     <!-- Fade/zoom in/out duration & scale in the AllApps transition.
          Note: This should be less than the workspaceShrinkTime as they happen together. -->
-    <integer name="config_appsCustomizeZoomInTime">800</integer>
-    <integer name="config_appsCustomizeZoomOutTime">800</integer>
-    <integer name="config_appsCustomizeZoomScaleFactor">20</integer>
-    <integer name="config_appsCustomizeFadeInTime">280</integer>
-    <integer name="config_appsCustomizeFadeOutTime">500</integer>
+    <integer name="config_appsCustomizeZoomInTime">700</integer>
+    <integer name="config_appsCustomizeZoomOutTime">700</integer>
+    <integer name="config_appsCustomizeZoomScaleFactor">7</integer>
+    <integer name="config_appsCustomizeFadeInTime">250</integer>
+    <integer name="config_appsCustomizeFadeOutTime">200</integer>
     <integer name="config_appsCustomizeWorkspaceShrinkTime">300</integer>
+    <integer name="config_appsCustomizeWorkspaceAnimationStagger">40</integer>
+    <integer name="config_workspaceAppsCustomizeAnimationStagger">100</integer>
 
     <!-- Tab transition animation duration -->
     <integer name="config_tabTransitionDuration">250</integer>
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index 9512e24..6640f04 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -192,11 +192,11 @@
 
     // Relating to the scroll and overscroll effects
     Workspace.ZInterpolator mZInterpolator = new Workspace.ZInterpolator(0.5f);
-    private static float CAMERA_DISTANCE = 3500;
+    private static float CAMERA_DISTANCE = 6500;
     private static float TRANSITION_SCALE_FACTOR = 0.74f;
-    private static float TRANSITION_PIVOT = 0.75f;
-    private static float TRANSITION_MAX_ROTATION = 26f;
-    private static final boolean PERFORM_OVERSCROLL_ROTATION = false;
+    private static float TRANSITION_PIVOT = 0.65f;
+    private static float TRANSITION_MAX_ROTATION = 22;
+    private static final boolean PERFORM_OVERSCROLL_ROTATION = true;
     private AccelerateInterpolator mAlphaInterpolator = new AccelerateInterpolator(0.9f);
 
     // Previews & outlines
@@ -1183,7 +1183,7 @@
     }
 
     protected void overScroll(float amount) {
-        dampedOverScroll(amount);
+        acceleratedOverScroll(amount);
     }
 
     /**
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 0d80d16..c2e48e8 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -182,13 +182,13 @@
         final Resources res = getResources();
 
         mNormalBackground = res.getDrawable(R.drawable.homescreen_blue_normal_holo);
-        mActiveBackground = res.getDrawable(R.drawable.homescreen_green_normal_holo);
-        mActiveGlowBackground = res.getDrawable(R.drawable.homescreen_green_strong_holo);
+        mActiveBackground = res.getDrawable(R.drawable.homescreen_blue_strong_holo);
+        mActiveGlowBackground = res.getDrawable(R.drawable.homescreen_blue_strong_holo);
 
         mNormalBackgroundMini = res.getDrawable(R.drawable.homescreen_small_blue);
         mNormalGlowBackgroundMini = res.getDrawable(R.drawable.homescreen_small_blue_strong);
-        mActiveBackgroundMini = res.getDrawable(R.drawable.homescreen_small_green);
-        mActiveGlowBackgroundMini = res.getDrawable(R.drawable.homescreen_small_green_strong);
+        mActiveBackgroundMini = res.getDrawable(R.drawable.homescreen_small_blue_strong);
+        mActiveGlowBackgroundMini = res.getDrawable(R.drawable.homescreen_small_blue_strong);
         mOverScrollLeft = res.getDrawable(R.drawable.overscroll_glow_left);
         mOverScrollRight = res.getDrawable(R.drawable.overscroll_glow_right);
         mForegroundPadding =
diff --git a/src/com/android/launcher2/Hotseat.java b/src/com/android/launcher2/Hotseat.java
index c53a743..f6ce059 100644
--- a/src/com/android/launcher2/Hotseat.java
+++ b/src/com/android/launcher2/Hotseat.java
@@ -100,7 +100,7 @@
         BubbleTextView allAppsButton = (BubbleTextView)
                 inflater.inflate(R.layout.application, mContent, false);
         allAppsButton.setCompoundDrawablesWithIntrinsicBounds(null,
-                context.getResources().getDrawable(R.drawable.apps_hotseat_button), null, null);
+                context.getResources().getDrawable(R.drawable.ic_allapps), null, null);
         // allAppsButton.setText(context.getString(R.string.all_apps_button_label));
         allAppsButton.setContentDescription(context.getString(R.string.all_apps_button_label));
         allAppsButton.setOnClickListener(new View.OnClickListener() {
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 532926a..28fdb90 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -75,10 +75,11 @@
 import android.view.MotionEvent;
 import android.view.Surface;
 import android.view.View;
-import android.view.View.OnLongClickListener;
 import android.view.ViewGroup;
 import android.view.WindowManager;
+import android.view.View.OnLongClickListener;
 import android.view.accessibility.AccessibilityEvent;
+import android.view.animation.AccelerateDecelerateInterpolator;
 import android.view.animation.DecelerateInterpolator;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Advanceable;
@@ -708,7 +709,7 @@
         // Setup the workspace
         mWorkspace.setHapticFeedbackEnabled(false);
         mWorkspace.setOnLongClickListener(this);
-        mWorkspace.setup(this, dragController);
+        mWorkspace.setup(dragController);
         dragController.addDragListener(mWorkspace);
 
         // Get the search/delete bar
@@ -2088,7 +2089,6 @@
      * @param scaleFactor The scale factor used for the zoom
      */
     private void setPivotsForZoom(View view, State state, float scaleFactor) {
-        final int height = view.getHeight();
         view.setPivotX(view.getWidth() / 2.0f);
         view.setPivotY(view.getHeight() / 2.0f);
     }
@@ -2115,12 +2115,14 @@
         final int fadeDuration = res.getInteger(R.integer.config_appsCustomizeFadeInTime);
         final float scale = (float) res.getInteger(R.integer.config_appsCustomizeZoomScaleFactor);
         final View toView = mAppsCustomizeTabHost;
+        final int startDelay =
+                res.getInteger(R.integer.config_workspaceAppsCustomizeAnimationStagger);
 
         setPivotsForZoom(toView, toState, scale);
 
         // Shrink workspaces away if going to AppsCustomize from workspace
         mWorkspace.changeState(Workspace.State.SMALL, animated);
-        hideHotseat(animated);
+        //hideHotseat(animated);
 
         if (animated) {
             final ValueAnimator scaleAnim = ValueAnimator.ofFloat(0f, 1f).setDuration(duration);
@@ -2144,6 +2146,7 @@
                     toView.setFastAlpha(a * 0f + b * 1f);
                 }
             });
+            alphaAnim.setStartDelay(startDelay);
             alphaAnim.start();
 
             if (toView instanceof LauncherTransitionable) {
@@ -2182,13 +2185,13 @@
                     }
                 }
 
+                @Override
                 public void onAnimationCancel(Animator animation) {
                     animationCancelled = true;
                 }
             });
 
             // toView should appear right at the end of the workspace shrink animation
-            final int startDelay = 0;
 
             if (mStateAnimation != null) mStateAnimation.cancel();
             mStateAnimation = new AnimatorSet();
@@ -2250,7 +2253,7 @@
             });
             final ValueAnimator alphaAnim = ValueAnimator.ofFloat(0f, 1f);
             alphaAnim.setDuration(res.getInteger(R.integer.config_appsCustomizeFadeOutTime));
-            alphaAnim.setInterpolator(new DecelerateInterpolator(1.5f));
+            alphaAnim.setInterpolator(new AccelerateDecelerateInterpolator());
             alphaAnim.addUpdateListener(new LauncherAnimatorUpdateListener() {
                 public void onAnimationUpdate(float a, float b) {
                     // don't need to invalidate because we do so above
@@ -2284,7 +2287,10 @@
     }
 
     void showWorkspace(boolean animated) {
-        mWorkspace.changeState(Workspace.State.NORMAL, animated);
+        Resources res = getResources();
+        int stagger = res.getInteger(R.integer.config_appsCustomizeWorkspaceAnimationStagger);
+
+        mWorkspace.changeState(Workspace.State.NORMAL, animated, stagger);
         if (mState == State.APPS_CUSTOMIZE) {
             closeAllApps(animated);
         }
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 4fdb198..dca4d14 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -1807,7 +1807,7 @@
      * fill its space on the track or not.
      */
     protected boolean hasElasticScrollIndicator() {
-        return false;
+        return true;
     }
 
     private void updateScrollingIndicator() {
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 71c3af6..156d57e 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -17,12 +17,12 @@
 package com.android.launcher2;
 
 import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
 import android.animation.AnimatorListenerAdapter;
 import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 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;
@@ -83,6 +83,7 @@
     // Y rotation to apply to the workspace screens
     private static final float WORKSPACE_ROTATION = 12.5f;
     private static final float WORKSPACE_OVERSCROLL_ROTATION = 24f;
+    private static float CAMERA_DISTANCE = 6500;
 
     private static final int CHILDREN_OUTLINE_FADE_OUT_DELAY = 0;
     private static final int CHILDREN_OUTLINE_FADE_OUT_DURATION = 375;
@@ -187,6 +188,10 @@
     WallpaperOffsetInterpolator mWallpaperOffset;
     boolean mUpdateWallpaperOffsetImmediately = false;
     private Runnable mDelayedResizeRunnable;
+    private int mDisplayWidth;
+    private int mDisplayHeight;
+    private boolean mIsStaticWallpaper;
+    private int mWallpaperTravelWidth;
 
     // Variables relating to the creation of user folders by hovering shortcuts over shortcuts
     private static final int FOLDER_CREATION_TIMEOUT = 250;
@@ -300,6 +305,7 @@
         LauncherModel.updateWorkspaceLayoutCells(cellCountX, cellCountY);
         setHapticFeedbackEnabled(false);
 
+        mLauncher = (Launcher) context;
         initWorkspace();
 
         // Disable multitouch across the workspace/all apps/customize tray
@@ -355,6 +361,11 @@
 
         mSnapVelocity = 600;
         mWallpaperOffset = new WallpaperOffsetInterpolator();
+        Display display = mLauncher.getWindowManager().getDefaultDisplay();
+        mDisplayWidth = display.getWidth();
+        mDisplayHeight = display.getHeight();
+        mWallpaperTravelWidth = (int) (mDisplayWidth *
+                wallpaperTravelToScreenWidthRatio(mDisplayWidth, mDisplayHeight));
     }
 
     @Override
@@ -512,7 +523,10 @@
         // mNextPage is set to INVALID_PAGE whenever we are stationary.
         // Calculating "next page" this way ensures that you scroll to whatever page you tap on
         final int current = (mNextPage == INVALID_PAGE) ? mCurrentPage : mNextPage;
-        return hitsPage(current - 1, x, y);
+
+        // Only allow tap to next page on large devices, where there's significant margin outside
+        // the active workspace
+        return LauncherApplication.isScreenLarge() && hitsPage(current - 1, x, y);
     }
 
     @Override
@@ -520,7 +534,10 @@
         // mNextPage is set to INVALID_PAGE whenever we are stationary.
         // Calculating "next page" this way ensures that you scroll to whatever page you tap on
         final int current = (mNextPage == INVALID_PAGE) ? mCurrentPage : mNextPage;
-        return hitsPage(current + 1, x, y);
+
+        // Only allow tap to next page on large devices, where there's significant margin outside
+        // the active workspace
+        return LauncherApplication.isScreenLarge() && hitsPage(current + 1, x, y);
     }
 
     /**
@@ -610,6 +627,7 @@
 
     protected void onPageBeginMoving() {
         super.onPageBeginMoving();
+        mIsStaticWallpaper = mWallpaperManager.getWallpaperInfo() == null;
 
         if (isHardwareAccelerated()) {
             updateChildrenLayersEnabled();
@@ -700,9 +718,8 @@
     }
 
     protected void setWallpaperDimension() {
-        Display display = mLauncher.getWindowManager().getDefaultDisplay();
         DisplayMetrics displayMetrics = new DisplayMetrics();
-        display.getRealMetrics(displayMetrics);
+        mLauncher.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);
         final int maxDim = Math.max(displayMetrics.widthPixels, displayMetrics.heightPixels);
         final int minDim = Math.min(displayMetrics.widthPixels, displayMetrics.heightPixels);
 
@@ -731,13 +748,11 @@
     }
 
     private float wallpaperOffsetForCurrentScroll() {
-        Display display = mLauncher.getWindowManager().getDefaultDisplay();
-        final boolean isStaticWallpaper = (mWallpaperManager.getWallpaperInfo() == null);
+        final boolean isStaticWallpaper = mIsStaticWallpaper;
         // The wallpaper travel width is how far, from left to right, the wallpaper will move
         // at this orientation (for example, in portrait mode we don't move all the way to the
         // edges of the wallpaper, or otherwise the parallax effect would be too strong)
-        int wallpaperTravelWidth = (int) (display.getWidth() *
-                wallpaperTravelToScreenWidthRatio(display.getWidth(), display.getHeight()));
+        int wallpaperTravelWidth = mWallpaperTravelWidth;
         if (!isStaticWallpaper) {
             wallpaperTravelWidth = mWallpaperWidth;
         }
@@ -760,7 +775,7 @@
         // because live wallpapers (and probably 3rd party wallpaper providers) rely on the offset
         // being even intervals from 0 to 1 (eg [0, 0.25, 0.5, 0.75, 1])
         if (isStaticWallpaper) {
-            int overScrollOffset = (int) (maxOverScroll() * display.getWidth());
+            int overScrollOffset = (int) (maxOverScroll() * mDisplayWidth);
             scrollProgressOffset += overScrollOffset / (float) getScrollRange();
             scrollRange += 2 * overScrollOffset;
         }
@@ -872,8 +887,7 @@
                 mIsMovingFast = false;
                 return false;
             }
-            Display display = mLauncher.getWindowManager().getDefaultDisplay();
-            boolean isLandscape = display.getWidth() > display.getHeight();
+            boolean isLandscape = mDisplayWidth > mDisplayHeight;
 
             long currentTime = System.currentTimeMillis();
             long timeSinceLastUpdate = currentTime - mLastWallpaperOffsetUpdateTime;
@@ -1100,16 +1114,17 @@
 
                 // If the current page (i) is being over scrolled, we use a different
                 // set of rules for setting the background alpha multiplier.
-                if ((mScrollX < 0 && i == 0) || (mScrollX > mMaxScrollX &&
-                        i == getChildCount() -1 )) {
-                    cl.setBackgroundAlphaMultiplier(
-                            overScrollBackgroundAlphaInterpolator(Math.abs(scrollProgress)));
-                    mOverScrollPageIndex = i;
-                } else if (mOverScrollPageIndex != i) {
-                    cl.setBackgroundAlphaMultiplier(
-                            backgroundAlphaInterpolator(Math.abs(scrollProgress)));
+                if (!isSmall()) {
+                    if ((mScrollX < 0 && i == 0) || (mScrollX > mMaxScrollX &&
+                            i == getChildCount() -1 )) {
+                        cl.setBackgroundAlphaMultiplier(
+                                overScrollBackgroundAlphaInterpolator(Math.abs(scrollProgress)));
+                        mOverScrollPageIndex = i;
+                    } else if (mOverScrollPageIndex != i) {
+                        cl.setBackgroundAlphaMultiplier(
+                                backgroundAlphaInterpolator(Math.abs(scrollProgress)));
+                    }
                 }
-
                 cl.setTranslationX(translationX);
                 cl.setRotationY(rotation);
             }
@@ -1132,7 +1147,7 @@
             cl.setOverScrollAmount(Math.abs(scrollProgress), index == 0);
             float translationX = index == 0 ? mScrollX : - (mMaxScrollX - mScrollX);
             float rotation = - WORKSPACE_OVERSCROLL_ROTATION * scrollProgress;
-            cl.setCameraDistance(mDensity * 6500);
+            cl.setCameraDistance(mDensity * CAMERA_DISTANCE);
             cl.setPivotX(cl.getMeasuredWidth() * (index == 0 ? 0.75f : 0.25f));
             cl.setTranslationX(translationX);
             cl.setRotationY(rotation);
@@ -1221,19 +1236,23 @@
             final int height = getHeight();
             final int pageHeight = getChildAt(0).getHeight();
 
-            // This determines the height of the glowing edge: 90% of the page height
-            final int padding = (int) ((height - pageHeight) * 0.5f + pageHeight * 0.1f);
+            // Set the height of the outline to be the height of the page
+            final int offset = (height - pageHeight - mPaddingTop - mPaddingBottom) / 2;
+            final int paddingTop = mPaddingTop + offset;
+            final int paddingBottom = mPaddingBottom + offset;
 
             final CellLayout leftPage = (CellLayout) getChildAt(mCurrentPage - 1);
             final CellLayout rightPage = (CellLayout) getChildAt(mCurrentPage + 1);
 
             if (leftPage != null && leftPage.getIsDragOverlapping()) {
                 final Drawable d = getResources().getDrawable(R.drawable.page_hover_left_holo);
-                d.setBounds(mScrollX, padding, mScrollX + d.getIntrinsicWidth(), height - padding);
+                d.setBounds(mScrollX, paddingTop, mScrollX + d.getIntrinsicWidth(),
+                        height - paddingBottom);
                 d.draw(canvas);
             } else if (rightPage != null && rightPage.getIsDragOverlapping()) {
                 final Drawable d = getResources().getDrawable(R.drawable.page_hover_right_holo);
-                d.setBounds(mScrollX + width - d.getIntrinsicWidth(), padding, mScrollX + width, height - padding);
+                d.setBounds(mScrollX + width - d.getIntrinsicWidth(), paddingTop, mScrollX + width,
+                        height - paddingBottom);
                 d.draw(canvas);
             }
         }
@@ -1472,6 +1491,10 @@
     }
 
     void changeState(final State state, boolean animated) {
+        changeState(state, animated, 0);
+    }
+
+    void changeState(final State state, boolean animated, int delay) {
         if (mFirstLayout) {
             // (mFirstLayout == "first layout has not happened yet")
             // cancel any pending shrinks that were set earlier
@@ -1488,7 +1511,7 @@
         setCurrentPage((mNextPage != INVALID_PAGE) ? mNextPage : mCurrentPage);
 
         float finalScaleFactor = 1.0f;
-        float finalBackgroundAlpha = 0.0f;
+        float finalBackgroundAlpha = (state == State.SPRING_LOADED) ? 1.0f : 0f;
         boolean normalState = false;
         State oldState = mState;
         mState = state;
@@ -1496,7 +1519,6 @@
 
         if (state != State.NORMAL) {
             finalScaleFactor = mSpringLoadedShrinkFactor - (state == State.SMALL ? 0.1f : 0);
-            finalBackgroundAlpha = 1.0f;
             if (oldState == State.NORMAL && state == State.SMALL) {
                 zoomIn = false;
                 if (animated) {
@@ -1505,6 +1527,7 @@
                 setLayoutScale(finalScaleFactor);
                 updateChildrenLayersEnabled();
             } else {
+                finalBackgroundAlpha = 1.0f;
                 setLayoutScale(finalScaleFactor);
             }
         } else {
@@ -1633,6 +1656,7 @@
             });
 
             mAnimator.playTogether(animWithInterpolator, rotationAnim);
+            mAnimator.setStartDelay(delay);
             // If we call this when we're not animated, onAnimationEnd is never called on
             // the listener; make sure we only use the listener when we're actually animating
             mAnimator.addListener(mChangeStateAnimationListener);
@@ -2725,8 +2749,7 @@
     public void getHitRect(Rect outRect) {
         // We want the workspace to have the whole area of the display (it will find the correct
         // cell layout to drop to in the existing drag/drop logic.
-        final Display d = mLauncher.getWindowManager().getDefaultDisplay();
-        outRect.set(0, 0, d.getWidth(), d.getHeight());
+        outRect.set(0, 0, mDisplayWidth, mDisplayHeight);
     }
 
     /**
@@ -2977,8 +3000,7 @@
                 pixelX, pixelY, spanX, spanY, recycle);
     }
 
-    void setup(Launcher launcher, DragController dragController) {
-        mLauncher = launcher;
+    void setup(DragController dragController) {
         mSpringLoadedDragController = new SpringLoadedDragController(mLauncher);
         mDragController = dragController;
 
@@ -3359,13 +3381,6 @@
         mLauncher.getDragLayer().getLocationInDragLayer(this, loc);
     }
 
-    /**
-     * Return true because we want the scrolling indicator to stretch to fit the space.
-     */
-    protected boolean hasElasticScrollIndicator() {
-        return true;
-    }
-
     void showDockDivider(boolean immediately) {
         final ViewGroup parent = (ViewGroup) getParent();
         final View qsbDivider = (ImageView) (parent.findViewById(R.id.qsb_divider));
