From f4bd5792d505a83ef35b30e4fa4e786ac0df58a3 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Fri, 27 Apr 2012 11:35:29 -0700 Subject: Refactoring dimens for cell size / gap -> fixing some dimens from previous commit Change-Id: Ibab49bfb0dc403a67ab88c4ecadc49eb533eae29 --- res/values-land/dimens.xml | 8 +++- res/values-port/dimens.xml | 6 +++ res/values-sw340dp/dimens.xml | 26 +++++++------ res/values-sw600dp-land/dimens.xml | 6 --- res/values-sw600dp-port/dimens.xml | 2 - res/values-sw600dp/dimens.xml | 15 ++++++-- res/values-sw720dp-land/dimens.xml | 2 - res/values-sw720dp-port/dimens.xml | 2 - res/values-sw720dp/dimens.xml | 28 +++++++++----- res/values/dimens.xml | 13 +++++-- src/com/android/launcher2/CellLayout.java | 64 ++++++++++++++++++++++++++----- 11 files changed, 118 insertions(+), 54 deletions(-) diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml index 69d68be93..e94d78064 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 193f331b3..969d3358a 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 8f5a3678b..42fbb47ce 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 7db0a8adb..3e1841748 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 956599248..c8137251e 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 a0d7ec86f..07976323b 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 2d39fc7ea..825245057 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 dc1c65ad6..37f62b881 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 ff17ec4f4..d3b9c1e9b 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 10eb8f8a4..24e4047eb 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); -- cgit v1.2.3