Make 2D All Apps work better in landscape and on hdpi.

* Correct the density (or, rather, remove the density) of
  the icons in the cache to ensure they're drawn px-for-px.

* Create a new landscape layout for 2DAA that aligns things
  properly (viz: Home icon at right, padding tuned, 6
  columns).

* Performance improvement: Make the app grid, icons, and
  home icon all opaque (by setting a black background) and
  move the home icon so it doesn't overlap the grid.

Change-Id: I961323e9e39cb122cdc694853706e7fcdd10142f
diff --git a/res/layout/all_apps_2d.xml b/res/layout-land/all_apps_2d.xml
similarity index 73%
copy from res/layout/all_apps_2d.xml
copy to res/layout-land/all_apps_2d.xml
index 7bbfa91..a253b93 100644
--- a/res/layout/all_apps_2d.xml
+++ b/res/layout-land/all_apps_2d.xml
@@ -30,18 +30,17 @@
         android:drawSelectorOnTop="false"
         android:listSelector="@drawable/grid_selector"
         android:verticalSpacing="10dip"
-        android:numColumns="4"
+        android:numColumns="6"
         android:fadingEdgeLength="48dip"
         android:cacheColorHint="#FF000000"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_alignParentBottom="true"
-        android:layout_marginBottom="28dip"
-        android:layout_marginTop="8dip"
-        android:nextFocusDown="@+id/all_apps_2d_home"
+        android:layout_alignParentRight="true"
+        android:layout_marginRight="@dimen/button_bar_height_portrait"
+        android:nextFocusRight="@+id/all_apps_2d_home"
         android:nextFocusUp="@null"
         android:nextFocusLeft="@null"
-        android:nextFocusRight="@null"
+        android:nextFocusDown="@null"
         />
 
     <view
@@ -49,14 +48,15 @@
         android:id="@+id/all_apps_2d_home"
         android:tag="all_apps_2d_home"
         android:src="@drawable/home_button"
-        android:background="#00000000"
-        android:layout_centerHorizontal="true"
-        android:layout_alignParentBottom="true"
-        android:layout_width="wrap_content"
-        android:layout_height="@dimen/button_bar_height"
-        android:nextFocusUp="@+id/all_apps_2d_grid"
+        android:background="#FF000000"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:layout_height="wrap_content"
+        android:layout_width="@dimen/button_bar_height_portrait"
+        android:paddingBottom="@dimen/status_bar_height"
+        android:nextFocusLeft="@+id/all_apps_2d_grid"
         android:nextFocusDown="@null"
-        android:nextFocusLeft="@null"
+        android:nextFocusUp="@null"
         android:nextFocusRight="@null"
         />
 
diff --git a/res/layout/all_apps_2d.xml b/res/layout-port/all_apps_2d.xml
similarity index 95%
rename from res/layout/all_apps_2d.xml
rename to res/layout-port/all_apps_2d.xml
index 7bbfa91..0607d62 100644
--- a/res/layout/all_apps_2d.xml
+++ b/res/layout-port/all_apps_2d.xml
@@ -36,7 +36,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_alignParentBottom="true"
-        android:layout_marginBottom="28dip"
+        android:layout_marginBottom="@dimen/button_bar_height"
         android:layout_marginTop="8dip"
         android:nextFocusDown="@+id/all_apps_2d_home"
         android:nextFocusUp="@null"
@@ -49,7 +49,7 @@
         android:id="@+id/all_apps_2d_home"
         android:tag="all_apps_2d_home"
         android:src="@drawable/home_button"
-        android:background="#00000000"
+        android:background="#FF000000"
         android:layout_centerHorizontal="true"
         android:layout_alignParentBottom="true"
         android:layout_width="wrap_content"
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 26cb7e6..790f835 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -24,6 +24,10 @@
          button_bar_height changes -->
     <dimen name="button_bar_height_portrait">56dip</dimen>
 
+    <!-- roughly a status bar (for vertically centering the all apps
+         home icon in landscape) -->
+    <dimen name="status_bar_height">25dip</dimen>
+
     <!-- roughly half a status bar (for vertically centering the right-hand
          button cluster in landscape) -->
     <dimen name="half_status_bar_height">12dip</dimen>
diff --git a/src/com/android/launcher2/AllApps2D.java b/src/com/android/launcher2/AllApps2D.java
index 90c87fb..86571cf 100644
--- a/src/com/android/launcher2/AllApps2D.java
+++ b/src/com/android/launcher2/AllApps2D.java
@@ -20,6 +20,8 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.drawable.BitmapDrawable;
+import android.graphics.Bitmap;
+import android.graphics.Color;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -49,6 +51,7 @@
                    DragSource {
 
     private static final String TAG = "Launcher.AllApps2D";
+    private static final boolean DEBUG = false;
 
     private Launcher mLauncher;
     private DragController mDragController;
@@ -100,7 +103,13 @@
 //            }
 
             final TextView textView = (TextView) convertView;
+            if (DEBUG) {
+                Log.d(TAG, "icon bitmap = " + info.iconBitmap 
+                    + " density = " + info.iconBitmap.getDensity());
+            }
+            info.iconBitmap.setDensity(Bitmap.DENSITY_NONE);
             textView.setCompoundDrawablesWithIntrinsicBounds(null, new BitmapDrawable(info.iconBitmap), null, null);
+            textView.setBackgroundColor(Color.BLACK);
             textView.setText(info.title);
 
             return convertView;
@@ -118,13 +127,15 @@
 
     @Override
     protected void onFinishInflate() {
-        setBackgroundColor(0xFF000000);
+        setBackgroundColor(Color.BLACK);
 
         try {
             mGrid = (GridView)findViewWithTag("all_apps_2d_grid");
             if (mGrid == null) throw new Resources.NotFoundException();
             mGrid.setOnItemClickListener(this);
             mGrid.setOnItemLongClickListener(this);
+            mGrid.setBackgroundColor(Color.BLACK);
+            mGrid.setCacheColorHint(Color.BLACK);
             
             ImageButton homeButton = (ImageButton) findViewWithTag("all_apps_2d_home");
             if (homeButton == null) throw new Resources.NotFoundException();