Hide the workspace when launching AllApps2D.

Boosts performance and squashes some weird focus issues.

(Also: fix builds with AllApps3D)

Change-Id: Id1c4628e119c950dced9d3383993674f3d6b9a1c
diff --git a/src/com/android/launcher2/AllApps2D.java b/src/com/android/launcher2/AllApps2D.java
index 4c7b28c..55eb217 100644
--- a/src/com/android/launcher2/AllApps2D.java
+++ b/src/com/android/launcher2/AllApps2D.java
@@ -134,19 +134,25 @@
     protected void onFinishInflate() {
         setBackgroundColor(0xFF000000);
 
-        mGrid = (GridView)findViewById(R.id.all_apps_2d_grid);
-        mGrid.setOnItemClickListener(this);
-        mGrid.setOnItemLongClickListener(this);
-        
-        setOnKeyListener(this);
+        try {
+            mGrid = (GridView)findViewWithTag("all_apps_2d_grid");
+            if (mGrid == null) throw new Resources.NotFoundException();
+            mGrid.setOnItemClickListener(this);
+            mGrid.setOnItemLongClickListener(this);
+            
+            ImageButton homeButton = (ImageButton) findViewWithTag("all_apps_2d_home");
+            if (homeButton == null) throw new Resources.NotFoundException();
+            homeButton.setOnClickListener(
+                new View.OnClickListener() {
+                    public void onClick(View v) {
+                        mLauncher.closeAllApps(true);
+                    }
+                });
+        } catch (Resources.NotFoundException e) {
+            Log.e(TAG, "Can't find necessary layout elements for AllApps2D");
+        }
 
-        ImageButton homeButton = (ImageButton) findViewById(R.id.all_apps_2d_home);
-        homeButton.setOnClickListener(
-            new View.OnClickListener() {
-                public void onClick(View v) {
-                    mLauncher.closeAllApps(true);
-                }
-            });
+        setOnKeyListener(this);
     }
 
     public AllApps2D(Context context, AttributeSet attrs, int defStyle) {
@@ -235,6 +241,8 @@
         } else {
             mZoom = 1.0f;
         }
+
+        mLauncher.zoomed(mZoom);
     }
 
     public boolean isVisible() {
diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java
index 46f1d34..01a6df4 100644
--- a/src/com/android/launcher2/AllAppsView.java
+++ b/src/com/android/launcher2/AllAppsView.java
@@ -51,6 +51,10 @@
 
 
 public interface AllAppsView {
+    public interface Watcher {
+        public void zoomed(float zoom);
+    };
+
     public void setLauncher(Launcher launcher);
 
     public void setDragController(DragController dragger);
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 79303d7..5146ffd 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -85,7 +85,7 @@
  * Default launcher application.
  */
 public final class Launcher extends Activity
-        implements View.OnClickListener, OnLongClickListener, LauncherModel.Callbacks {
+        implements View.OnClickListener, OnLongClickListener, LauncherModel.Callbacks, AllAppsView.Watcher {
     static final String TAG = "Launcher";
     static final boolean LOGD = false;
 
@@ -1685,6 +1685,13 @@
         return mAllAppsGrid.isVisible();
     }
 
+    // AllAppsView.Watcher
+    public void zoomed(float zoom) {
+        if (zoom == 1.0f) {
+            mWorkspace.setVisibility(View.GONE);
+        }
+    }
+
     void showAllApps(boolean animated) {
         mAllAppsGrid.zoom(1.0f, animated);
 
@@ -1732,6 +1739,7 @@
      */
     void closeAllApps(boolean animated) {
         if (mAllAppsGrid.isVisible()) {
+            mWorkspace.setVisibility(View.VISIBLE);
             mAllAppsGrid.zoom(0.0f, animated);
             ((View)mAllAppsGrid).setFocusable(false);
             mWorkspace.getChildAt(mWorkspace.getCurrentScreen()).requestFocus();