New small/large screen division for Launcher.

Previously the dp division between the two was set at 600dp
(7" tablets). This has now been bumped up to 720dp
(10" tablets).

Change-Id: I1f0419e504fc3bb606156c1cf6fbe03956274184
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 8aae809..a6c2c5f 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -28,6 +28,7 @@
 import android.content.res.TypedArray;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
+import android.graphics.Color;
 import android.graphics.Paint;
 import android.graphics.Point;
 import android.graphics.PointF;
@@ -135,6 +136,9 @@
     private TimeInterpolator mEaseOutInterpolator;
     private CellLayoutChildren mChildren;
 
+    private boolean mIsHotseat = false;
+    private final int mBubbleScalePercent;
+
     public CellLayout(Context context) {
         this(context, null);
     }
@@ -180,6 +184,8 @@
         mNormalBackground.setFilterBitmap(true);
         mActiveGlowBackground.setFilterBitmap(true);
 
+        mBubbleScalePercent = res.getInteger(R.integer.app_icon_hotseat_scale_percent);
+
         // Initialize the data structures used for the drag visualization.
 
         mCrosshairsDrawable = res.getDrawable(R.drawable.gardening_crosshairs);
@@ -492,6 +498,25 @@
 
     @Override
     protected void dispatchDraw(Canvas canvas) {
+        // Debug drawing for hit space
+        if (false) {
+            final Rect frame = mRect;
+            for (int i = mChildren.getChildCount() - 1; i >= 0; i--) {
+                final View child = mChildren.getChildAt(i);
+                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+
+                if ((child.getVisibility() == VISIBLE || child.getAnimation() != null) &&
+                        lp.isLockedToGrid) {
+                    child.getHitRect(frame);
+                    frame.offset(mPaddingLeft, mPaddingTop);
+
+                    Paint p = new Paint();
+                    p.setColor(Color.GREEN);
+                    canvas.drawRect(frame, p);
+                }
+            }
+        }
+
         super.dispatchDraw(canvas);
         if (mForegroundAlpha > 0) {
             mOverScrollForegroundDrawable.setBounds(mForegroundRect);
@@ -554,10 +579,55 @@
         return mCountY;
     }
 
+    public void setIsHotseat(boolean isHotseat) {
+        mIsHotseat = isHotseat;
+    }
+
     public boolean addViewToCellLayout(
             View child, int index, int childId, LayoutParams params, boolean markCells) {
+        return addViewToCellLayout(child, index, childId, params, markCells, false);
+    }
+
+    public boolean addViewToCellLayout(View child, int index, int childId, LayoutParams params,
+            boolean markCells, boolean allApps) {
         final LayoutParams lp = params;
 
+        // Hotseat icons - scale down and remove text
+        // Don't scale the all apps button
+        // scale percent set to -1 means do not scale
+        // Only scale BubbleTextViews
+        if (child instanceof BubbleTextView) {
+            BubbleTextView bubbleChild = (BubbleTextView) child;
+
+            if (mIsHotseat && !allApps && mBubbleScalePercent >= 0) {
+                // If we haven't measured the child yet, do it now
+                // (this happens if we're being dropped from all-apps
+                if ((bubbleChild.getMeasuredWidth() | bubbleChild.getMeasuredHeight()) == 0) {
+                    getChildrenLayout().measureChild(bubbleChild);
+                }
+                int measuredWidth = bubbleChild.getMeasuredWidth();
+                int measuredHeight = bubbleChild.getMeasuredHeight();
+
+                float bubbleScale = mBubbleScalePercent / 100f;
+                bubbleChild.setPivotX(0);
+                bubbleChild.setPivotY(0);
+                bubbleChild.setScaleX(bubbleScale);
+                bubbleChild.setScaleY(bubbleScale);
+                bubbleChild.setTranslationX(measuredWidth * (1 - bubbleScale) / 2);
+                bubbleChild.setTranslationY(measuredHeight * (1 - bubbleScale) / 2);
+
+                bubbleChild.setTextColor(android.R.color.transparent);
+            } else {
+                bubbleChild.setScaleX(1f);
+                bubbleChild.setScaleY(1f);
+                bubbleChild.setTranslationX(0f);
+                bubbleChild.setTranslationY(0f);
+
+                bubbleChild.setTextColor(
+                        getResources().getColor(R.color.workspace_icon_text_color));
+            }
+        }
+
         // Generate an id for each view, this assumes we have at most 256x256 cells
         // per workspace screen
         if (lp.cellX >= 0 && lp.cellX <= mCountX - 1 && lp.cellY >= 0 && lp.cellY <= mCountY - 1) {