am d63458b3: Add pressed states for the all apps button and the home button.

Merge commit 'd63458b34c33c0701d8ce8920b3b77abc6ac0e0f' into eclair-mr2

* commit 'd63458b34c33c0701d8ce8920b3b77abc6ac0e0f':
  Add pressed states for the all apps button and the home button.
diff --git a/res/drawable-hdpi/all_apps_button.png b/res/drawable-hdpi/all_apps_button.png
deleted file mode 100644
index bb84278..0000000
--- a/res/drawable-hdpi/all_apps_button.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/all_apps_button_normal.png b/res/drawable-hdpi/all_apps_button_normal.png
new file mode 100644
index 0000000..c29d3d7
--- /dev/null
+++ b/res/drawable-hdpi/all_apps_button_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/all_apps_button_pressed.png b/res/drawable-hdpi/all_apps_button_pressed.png
new file mode 100644
index 0000000..4c64d69
--- /dev/null
+++ b/res/drawable-hdpi/all_apps_button_pressed.png
Binary files differ
diff --git a/res/drawable-hdpi/home_button.png b/res/drawable-hdpi/home_button_normal.png
similarity index 100%
rename from res/drawable-hdpi/home_button.png
rename to res/drawable-hdpi/home_button_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/home_button_pressed.png b/res/drawable-hdpi/home_button_pressed.png
new file mode 100644
index 0000000..392bc66
--- /dev/null
+++ b/res/drawable-hdpi/home_button_pressed.png
Binary files differ
diff --git a/res/drawable/all_apps_button.xml b/res/drawable/all_apps_button.xml
new file mode 100644
index 0000000..985bdff
--- /dev/null
+++ b/res/drawable/all_apps_button.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/all_apps_button_pressed" />
+    <item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/all_apps_button_normal" />
+    <item android:drawable="@drawable/all_apps_button_normal" />
+</selector>
+
diff --git a/res/raw/rollo.c b/res/raw/rollo.c
index 2dd17aa..6a41727 100644
--- a/res/raw/rollo.c
+++ b/res/raw/rollo.c
@@ -301,7 +301,7 @@
 draw_home_button()
 {
     color(1.0f, 1.0f, 1.0f, 1.0f);
-    bindTexture(NAMED_PFTexLinear, 0, params->homeButtonId);
+    bindTexture(NAMED_PFTexLinear, 0, state->homeButtonId);
 
     float scale = 2.0f / SCREEN_WIDTH_PX;
 
diff --git a/res/raw/rollo2.c b/res/raw/rollo2.c
index ad7b18f..eb87063 100644
--- a/res/raw/rollo2.c
+++ b/res/raw/rollo2.c
@@ -246,7 +246,7 @@
 draw_home_button()
 {
     color(1.0f, 1.0f, 1.0f, 1.0f);
-    bindTexture(NAMED_PFTexLinear, 0, params->homeButtonId);
+    bindTexture(NAMED_PFTexLinear, 0, state->homeButtonId);
 
     float scale = 2.0f / SCREEN_WIDTH_PX;
 
diff --git a/res/raw/rollo3.c b/res/raw/rollo3.c
index 0fe940e..3c3ebf0 100644
--- a/res/raw/rollo3.c
+++ b/res/raw/rollo3.c
@@ -233,7 +233,7 @@
 draw_home_button()
 {
     setColor(1.0f, 1.0f, 1.0f, 1.0f);
-    bindTexture(NAMED_PFTexLinear, 0, params->homeButtonId);
+    bindTexture(NAMED_PFTexLinear, 0, state->homeButtonId);
 
     float scale = 2.0f / SCREEN_WIDTH_PX;
 
diff --git a/res/raw/rollo4.c b/res/raw/rollo4.c
index b0ea5b0..29b31a3 100644
--- a/res/raw/rollo4.c
+++ b/res/raw/rollo4.c
@@ -301,7 +301,7 @@
 draw_home_button()
 {
     color(1.0f, 1.0f, 1.0f, 1.0f);
-    bindTexture(NAMED_PFTexLinear, 0, params->homeButtonId);
+    bindTexture(NAMED_PFTexLinear, 0, state->homeButtonId);
 
     float scale = 2.0f / SCREEN_WIDTH_PX;
 
diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java
index b5074b1..6b4eab4 100644
--- a/src/com/android/launcher2/AllAppsView.java
+++ b/src/com/android/launcher2/AllAppsView.java
@@ -225,6 +225,8 @@
 
             if (y > mRollo.mTouchYBorders[mRollo.mTouchYBorders.length-1]) {
                 mTouchTracking = TRACKING_HOME;
+                mRollo.setHomeSelected(true);
+                mRollo.mState.save();
             } else {
                 mTouchTracking = TRACKING_FLING;
 
@@ -258,7 +260,8 @@
         case MotionEvent.ACTION_MOVE:
         case MotionEvent.ACTION_OUTSIDE:
             if (mTouchTracking == TRACKING_HOME) {
-                // TODO: highlight?
+                mRollo.setHomeSelected(y > mRollo.mTouchYBorders[mRollo.mTouchYBorders.length-1]);
+                mRollo.mState.save();
             } else if (mTouchTracking == TRACKING_FLING) {
                 int rawX = (int)ev.getRawX();
                 int rawY = (int)ev.getRawY();
@@ -306,6 +309,8 @@
                     if (y > mRollo.mTouchYBorders[mRollo.mTouchYBorders.length-1]) {
                         mLauncher.closeAllApps(true);
                     }
+                    mRollo.setHomeSelected(false);
+                    mRollo.mState.save();
                 }
             } else if (mTouchTracking == TRACKING_FLING) {
                 mRollo.mState.newTouchDown = 0;
@@ -533,7 +538,8 @@
         private SimpleMesh mMesh;
         private SimpleMesh mMesh2;
 
-        private Allocation mHomeButton;
+        private Allocation mHomeButtonNormal;
+        private Allocation mHomeButtonPressed;
 
         private Allocation[] mIcons;
         private int[] mIconIds;
@@ -595,7 +601,6 @@
             public int bubbleBitmapWidth;
             public int bubbleBitmapHeight;
 
-            public int homeButtonId;
             public int homeButtonWidth;
             public int homeButtonHeight;
             public int homeButtonTextureWidth;
@@ -610,6 +615,7 @@
             public int selectedIconIndex = -1;
             public int selectedIconTexture;
             public float zoomTarget;
+            public int homeButtonId;
 
             State() {
                 mType = Type.createFromClass(mRS, State.class, 1, "StateClass");
@@ -814,15 +820,19 @@
             mParams.bubbleBitmapWidth = bubble.getBitmapWidth();
             mParams.bubbleBitmapHeight = bubble.getBitmapHeight();
 
-            mHomeButton = Allocation.createFromBitmapResource(mRS, mRes,
-                    R.drawable.home_button, Element.RGBA_8888(mRS), false);
-            mHomeButton.uploadToTexture(0);
-            mParams.homeButtonId = mHomeButton.getID();
+            mHomeButtonNormal = Allocation.createFromBitmapResource(mRS, mRes,
+                    R.drawable.home_button_normal, Element.RGBA_8888(mRS), false);
+            mHomeButtonNormal.uploadToTexture(0);
+            mHomeButtonPressed = Allocation.createFromBitmapResource(mRS, mRes,
+                    R.drawable.home_button_pressed, Element.RGBA_8888(mRS), false);
+            mHomeButtonPressed.uploadToTexture(0);
             mParams.homeButtonWidth = 76;
             mParams.homeButtonHeight = 68;
             mParams.homeButtonTextureWidth = 128;
             mParams.homeButtonTextureHeight = 128;
 
+            mState.homeButtonId = mHomeButtonNormal.getID();
+
             mParams.save();
             mState.save();
 
@@ -1131,6 +1141,13 @@
             mState.selectedIconIndex = -1;
         }
 
+        void setHomeSelected(boolean pressed) {
+            if (pressed) {
+                mState.homeButtonId = mHomeButtonPressed.getID();
+            } else {
+                mState.homeButtonId = mHomeButtonNormal.getID();
+            }
+        }
     }
 }