diff --git a/res/drawable-hdpi/all_apps_button.png b/res/drawable-hdpi/all_apps_button.png deleted file mode 100644 index bb842785ba..0000000000 Binary files a/res/drawable-hdpi/all_apps_button.png and /dev/null 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 0000000000..c29d3d7824 Binary files /dev/null and b/res/drawable-hdpi/all_apps_button_normal.png 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 0000000000..4c64d692d3 Binary files /dev/null and b/res/drawable-hdpi/all_apps_button_pressed.png 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 diff --git a/res/drawable-hdpi/home_button_pressed.png b/res/drawable-hdpi/home_button_pressed.png new file mode 100644 index 0000000000..392bc6685f Binary files /dev/null and b/res/drawable-hdpi/home_button_pressed.png differ diff --git a/res/drawable/all_apps_button.xml b/res/drawable/all_apps_button.xml new file mode 100644 index 0000000000..985bdff3fa --- /dev/null +++ b/res/drawable/all_apps_button.xml @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/res/raw/rollo.c b/res/raw/rollo.c index 2dd17aa42a..6a41727222 100644 --- a/res/raw/rollo.c +++ b/res/raw/rollo.c @@ -301,7 +301,7 @@ void 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 ad7b18f9d7..eb87063d60 100644 --- a/res/raw/rollo2.c +++ b/res/raw/rollo2.c @@ -246,7 +246,7 @@ void 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 0fe940e42e..3c3ebf02bf 100644 --- a/res/raw/rollo3.c +++ b/res/raw/rollo3.c @@ -233,7 +233,7 @@ void 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 b0ea5b0164..29b31a38b1 100644 --- a/res/raw/rollo4.c +++ b/res/raw/rollo4.c @@ -301,7 +301,7 @@ void 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 b5074b11e3..6b4eab4efe 100644 --- a/src/com/android/launcher2/AllAppsView.java +++ b/src/com/android/launcher2/AllAppsView.java @@ -225,6 +225,8 @@ public class AllAppsView extends RSSurfaceView 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 @@ public class AllAppsView extends RSSurfaceView 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 @@ public class AllAppsView extends RSSurfaceView 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 @@ public class AllAppsView extends RSSurfaceView 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 class AllAppsView extends RSSurfaceView public int bubbleBitmapWidth; public int bubbleBitmapHeight; - public int homeButtonId; public int homeButtonWidth; public int homeButtonHeight; public int homeButtonTextureWidth; @@ -610,6 +615,7 @@ public class AllAppsView extends RSSurfaceView 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 @@ public class AllAppsView extends RSSurfaceView 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 @@ public class AllAppsView extends RSSurfaceView mState.selectedIconIndex = -1; } + void setHomeSelected(boolean pressed) { + if (pressed) { + mState.homeButtonId = mHomeButtonPressed.getID(); + } else { + mState.homeButtonId = mHomeButtonNormal.getID(); + } + } } }