diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index 69d68be939..e94d780642 100644
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -20,8 +20,6 @@
4dip
- 106dp
- 74dp
64dp
58dp
58dp
+
+
+ @dimen/workspace_cell_width_land
+ @dimen/workspace_cell_height_land
+ @dimen/workspace_width_gap_land
+ @dimen/workspace_height_gap_land
diff --git a/res/values-port/dimens.xml b/res/values-port/dimens.xml
index 193f331b3f..969d3358ab 100644
--- a/res/values-port/dimens.xml
+++ b/res/values-port/dimens.xml
@@ -50,4 +50,10 @@
10dp
2
3
+
+
+ @dimen/workspace_cell_width_port
+ @dimen/workspace_cell_height_port
+ @dimen/workspace_width_gap_port
+ @dimen/workspace_height_gap_port
diff --git a/res/values-sw340dp/dimens.xml b/res/values-sw340dp/dimens.xml
index 8f5a3678b7..42fbb47ce6 100644
--- a/res/values-sw340dp/dimens.xml
+++ b/res/values-sw340dp/dimens.xml
@@ -18,10 +18,6 @@
20dp
-
- 0dp
- 0dp
-
0dp
0dp
@@ -35,12 +31,18 @@
80dp
- 8dp
- 8dp
- 8dp
- 8dp
- 8dp
- 8dp
- 8dp
- 8dp
+ 8dp
+ 8dp
+ 8dp
+ 8dp
+ 8dp
+ 8dp
+ 8dp
+ 8dp
+
+
+ 0dp
+ 0dp
+ 0dp
+ 0dp
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml
index 7db0a8adb9..3e1841748d 100644
--- a/res/values-sw600dp-land/dimens.xml
+++ b/res/values-sw600dp-land/dimens.xml
@@ -22,12 +22,6 @@
75dp
75dp
-
-
- 96dp
- 86dp
- 32dp
- 0dp
11sp
diff --git a/res/values-sw600dp-port/dimens.xml b/res/values-sw600dp-port/dimens.xml
index 956599248f..c8137251e8 100644
--- a/res/values-sw600dp-port/dimens.xml
+++ b/res/values-sw600dp-port/dimens.xml
@@ -17,8 +17,6 @@
-1
- 0dp
- 32dp
96dp
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index a0d7ec86fc..07976323b6 100644
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -20,10 +20,6 @@
3dp
4dp
-
- 96dp
- 96dp
-
-1dp
-1dp
@@ -50,4 +46,15 @@
8dp
36dp
36dp
+
+
+ 96dp
+ 96dp
+ 86dp
+ 96dp
+ 32dp
+ 0dp
+ 0dp
+ 32dp
+
diff --git a/res/values-sw720dp-land/dimens.xml b/res/values-sw720dp-land/dimens.xml
index 2d39fc7eae..8252450575 100644
--- a/res/values-sw720dp-land/dimens.xml
+++ b/res/values-sw720dp-land/dimens.xml
@@ -22,8 +22,6 @@
16dp
- 32dp
- 2dp
50dp
40dp
- 0dp
- 32dp
24dp
2
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
index dc1c65ad66..37f62b8819 100644
--- a/res/values-sw720dp/dimens.xml
+++ b/res/values-sw720dp/dimens.xml
@@ -24,8 +24,6 @@
36dp
- 96dip
- 96dip
96dp
96dp
@@ -55,14 +53,14 @@
0dp
- 15dp
- 24dp
- 15dp
- 24dp
- 25dp
- 12dp
- 25dp
- 12dp
+ 15dp
+ 24dp
+ 15dp
+ 24dp
+ 25dp
+ 12dp
+ 25dp
+ 12dp
0dp
@@ -73,4 +71,14 @@
@dimen/workspace_content_large_only_top_margin
0dp
0dp
+
+
+ 96dp
+ 96dp
+ 96dp
+ 96dp
+ 32dp
+ 0dp
+ 2dp
+ 32dp
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index ff17ec4f4a..d3b9c1e9b2 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -30,10 +30,6 @@
0dp
0dp
40dp
- 80dp
- 100dp
- -1dp
- -1dp
16dp
74dp
82dp
@@ -140,4 +136,13 @@
@dimen/button_bar_height
0dp
+
+ 106dp
+ 80dp
+ 74dp
+ 100dp
+ -1dp
+ -1dp
+ -1dp
+ -1dp
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 10eb8f8a41..24e4047eb7 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -58,8 +58,6 @@ public class CellLayout extends ViewGroup {
static final String TAG = "CellLayout";
private Launcher mLauncher;
- private int mOriginalCellWidth;
- private int mOriginalCellHeight;
private int mCellWidth;
private int mCellHeight;
@@ -178,10 +176,8 @@ public class CellLayout extends ViewGroup {
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CellLayout, defStyle, 0);
- mOriginalCellWidth =
- mCellWidth = a.getDimensionPixelSize(R.styleable.CellLayout_cellWidth, 10);
- mOriginalCellHeight =
- mCellHeight = a.getDimensionPixelSize(R.styleable.CellLayout_cellHeight, 10);
+ mCellWidth = a.getDimensionPixelSize(R.styleable.CellLayout_cellWidth, 10);
+ mCellHeight = a.getDimensionPixelSize(R.styleable.CellLayout_cellHeight, 10);
mWidthGap = mOriginalWidthGap = a.getDimensionPixelSize(R.styleable.CellLayout_widthGap, 0);
mHeightGap = mOriginalHeightGap = a.getDimensionPixelSize(R.styleable.CellLayout_heightGap, 0);
mMaxGap = a.getDimensionPixelSize(R.styleable.CellLayout_maxGap, 0);
@@ -914,6 +910,54 @@ public class CellLayout extends ViewGroup {
return r;
}
+ final int LANDSCAPE = 0;
+ final int PORTRAIT = 1;
+ void getCellLayoutMetrics(int measureWidth, int measureHeight, int orientation, Rect metrics) {
+ int numWidthGaps = mCountX - 1;
+ int numHeightGaps = mCountY - 1;
+
+ int widthGap;
+ int heightGap;
+ int cellWidth;
+ int cellHeight;
+ int paddingLeft;
+ int paddingRight;
+ int paddingTop;
+ int paddingBottom;
+
+ Resources res = getContext().getResources();
+ if (orientation == LANDSCAPE) {
+ cellWidth = res.getDimensionPixelSize(R.dimen.workspace_cell_width_land);
+ cellHeight = res.getDimensionPixelSize(R.dimen.workspace_cell_height_land);
+ widthGap = res.getDimensionPixelSize(R.dimen.workspace_width_gap_land);
+ heightGap = res.getDimensionPixelSize(R.dimen.workspace_height_gap_land);
+ paddingLeft = res.getDimensionPixelSize(R.dimen.cell_layout_left_padding_land);
+ paddingRight = res.getDimensionPixelSize(R.dimen.cell_layout_right_padding_land);
+ paddingTop = res.getDimensionPixelSize(R.dimen.cell_layout_top_padding_land);
+ paddingBottom = res.getDimensionPixelSize(R.dimen.cell_layout_bottom_padding_land);
+ } else {
+ // PORTRAIT
+ cellWidth = res.getDimensionPixelSize(R.dimen.workspace_cell_width_port);
+ cellHeight = res.getDimensionPixelSize(R.dimen.workspace_cell_height_port);
+ widthGap = res.getDimensionPixelSize(R.dimen.workspace_width_gap_port);
+ heightGap = res.getDimensionPixelSize(R.dimen.workspace_height_gap_port);
+ paddingLeft = res.getDimensionPixelSize(R.dimen.cell_layout_left_padding_port);
+ paddingRight = res.getDimensionPixelSize(R.dimen.cell_layout_right_padding_port);
+ paddingTop = res.getDimensionPixelSize(R.dimen.cell_layout_top_padding_port);
+ paddingBottom = res.getDimensionPixelSize(R.dimen.cell_layout_bottom_padding_port);
+ }
+
+ if (widthGap < 0 || heightGap < 0) {
+ int hSpace = measureWidth - paddingLeft - paddingRight;
+ int vSpace = measureHeight - paddingTop - paddingBottom;
+ int hFreeSpace = hSpace - (mCountX * cellWidth);
+ int vFreeSpace = vSpace - (mCountY * cellHeight);
+ widthGap = Math.min(mMaxGap, numWidthGaps > 0 ? (hFreeSpace / numWidthGaps) : 0);
+ heightGap = Math.min(mMaxGap, numHeightGaps > 0 ? (vFreeSpace / numHeightGaps) : 0);
+ }
+ metrics.set(cellWidth, cellHeight, widthGap, heightGap);
+ }
+
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO: currently ignoring padding
@@ -932,10 +976,10 @@ public class CellLayout extends ViewGroup {
int numHeightGaps = mCountY - 1;
if (mOriginalWidthGap < 0 || mOriginalHeightGap < 0) {
- int hSpace = widthSpecSize - getPaddingLeft() - getPaddingRight();
- int vSpace = heightSpecSize - getPaddingTop() - getPaddingBottom();
- int hFreeSpace = hSpace - (mCountX * mOriginalCellWidth);
- int vFreeSpace = vSpace - (mCountY * mOriginalCellHeight);
+ int hSpace = widthSpecSize - mPaddingLeft - mPaddingRight;
+ int vSpace = heightSpecSize - mPaddingTop - mPaddingBottom;
+ int hFreeSpace = hSpace - (mCountX * mCellWidth);
+ int vFreeSpace = vSpace - (mCountY * mCellHeight);
mWidthGap = Math.min(mMaxGap, numWidthGaps > 0 ? (hFreeSpace / numWidthGaps) : 0);
mHeightGap = Math.min(mMaxGap,numHeightGaps > 0 ? (vFreeSpace / numHeightGaps) : 0);
mShortcutsAndWidgets.setCellDimensions(mCellWidth, mCellHeight, mWidthGap, mHeightGap);