diff options
author | Adam Cohen <adamcohen@google.com> | 2011-07-17 21:03:04 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2011-07-17 22:00:50 -0700 |
commit | 234c4cd54406e363a2ebc213f6ae5be284414988 (patch) | |
tree | a46c8e54b79e9036127127a2859d194b69d4000c /src | |
parent | 95383fe41dacc45c2aa97e7f47bafebb5b7655d8 (diff) | |
download | android_packages_apps_Trebuchet-234c4cd54406e363a2ebc213f6ae5be284414988.tar.gz android_packages_apps_Trebuchet-234c4cd54406e363a2ebc213f6ae5be284414988.tar.bz2 android_packages_apps_Trebuchet-234c4cd54406e363a2ebc213f6ae5be284414988.zip |
Fix text clipping in Launcher (bug 4980315)
Change-Id: I20c9b98b606d317ed32d49a3437f24a4cd312759
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher2/CellLayout.java | 11 | ||||
-rw-r--r-- | src/com/android/launcher2/Folder.java | 18 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedViewCellLayout.java | 11 |
3 files changed, 33 insertions, 7 deletions
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index 22516cc33..ae2250773 100644 --- a/src/com/android/launcher2/CellLayout.java +++ b/src/com/android/launcher2/CellLayout.java @@ -64,6 +64,8 @@ public class CellLayout extends ViewGroup { private int mCountX; private int mCountY; + private int mOriginalWidthGap; + private int mOriginalHeightGap; private int mWidthGap; private int mHeightGap; private int mMaxGap; @@ -155,8 +157,8 @@ public class CellLayout extends ViewGroup { mCellWidth = a.getDimensionPixelSize(R.styleable.CellLayout_cellWidth, 10); mOriginalCellHeight = mCellHeight = a.getDimensionPixelSize(R.styleable.CellLayout_cellHeight, 10); - mWidthGap = a.getDimensionPixelSize(R.styleable.CellLayout_widthGap, 0); - mHeightGap = a.getDimensionPixelSize(R.styleable.CellLayout_heightGap, 0); + 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); mCountX = LauncherModel.getCellCountX(); mCountY = LauncherModel.getCellCountY(); @@ -872,7 +874,7 @@ public class CellLayout extends ViewGroup { int numWidthGaps = mCountX - 1; int numHeightGaps = mCountY - 1; - if (mWidthGap < 0 || mHeightGap < 0) { + if (mOriginalWidthGap < 0 || mOriginalHeightGap < 0) { int hSpace = widthSpecSize - mPaddingLeft - mPaddingRight; int vSpace = heightSpecSize - mPaddingTop - mPaddingBottom; int hFreeSpace = hSpace - (mCountX * mOriginalCellWidth); @@ -885,6 +887,9 @@ public class CellLayout extends ViewGroup { mCellHeight = mOriginalCellHeight + remainingVSpace / mCountY; mChildren.setCellDimensions(mCellWidth, mCellHeight, mWidthGap, mHeightGap); + } else { + mWidthGap = mOriginalWidthGap; + mHeightGap = mOriginalHeightGap; } // Initial values correspond to widthSpecMode == MeasureSpec.EXACTLY diff --git a/src/com/android/launcher2/Folder.java b/src/com/android/launcher2/Folder.java index ef02de6bc..7641fe7f2 100644 --- a/src/com/android/launcher2/Folder.java +++ b/src/com/android/launcher2/Folder.java @@ -35,6 +35,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; +import android.view.View.MeasureSpec; import android.view.animation.AccelerateInterpolator; import android.view.animation.DecelerateInterpolator; import android.view.inputmethod.EditorInfo; @@ -783,6 +784,23 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList centerAboutIcon(); } + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = getPaddingLeft() + getPaddingRight() + mContent.getDesiredWidth(); + // Technically there is no padding at the bottom, but we add space equal to the padding + // and have to account for that here. + int height = getPaddingTop() + mContent.getDesiredHeight() + mFolderNameHeight; + + int contentWidthSpec = MeasureSpec.makeMeasureSpec(mContent.getDesiredWidth(), + MeasureSpec.EXACTLY); + int contentHeightSpec = MeasureSpec.makeMeasureSpec(mContent.getDesiredHeight(), + MeasureSpec.EXACTLY); + mContent.measure(contentWidthSpec, contentHeightSpec); + + mFolderName.measure(contentWidthSpec, + MeasureSpec.makeMeasureSpec(mFolderNameHeight, MeasureSpec.EXACTLY)); + setMeasuredDimension(width, height); + } + private void arrangeChildren(ArrayList<View> list) { int[] vacant = new int[2]; if (list == null) { diff --git a/src/com/android/launcher2/PagedViewCellLayout.java b/src/com/android/launcher2/PagedViewCellLayout.java index fc1b01288..bec00ec0c 100644 --- a/src/com/android/launcher2/PagedViewCellLayout.java +++ b/src/com/android/launcher2/PagedViewCellLayout.java @@ -41,6 +41,8 @@ public class PagedViewCellLayout extends ViewGroup implements Page { private int mOriginalCellHeight; private int mCellWidth; private int mCellHeight; + private int mOriginalWidthGap; + private int mOriginalHeightGap; private int mWidthGap; private int mHeightGap; private int mMaxGap; @@ -72,7 +74,7 @@ public class PagedViewCellLayout extends ViewGroup implements Page { mPeekWidth = resources.getDimensionPixelSize(R.dimen.apps_customize_peek_width); mCellCountX = LauncherModel.getCellCountX(); mCellCountY = LauncherModel.getCellCountY(); - mWidthGap = mHeightGap = -1; + mOriginalHeightGap = mOriginalHeightGap = mWidthGap = mHeightGap = -1; mMaxGap = resources.getDimensionPixelSize(R.dimen.apps_customize_max_gap); mChildren = new PagedViewCellLayoutChildren(context); @@ -221,12 +223,10 @@ public class PagedViewCellLayout extends ViewGroup implements Page { throw new RuntimeException("CellLayout cannot have UNSPECIFIED dimensions"); } - - int numWidthGaps = mCellCountX - 1; int numHeightGaps = mCellCountY - 1; - if (mWidthGap < 0 || mHeightGap < 0) { + if (mOriginalWidthGap < 0 || mOriginalHeightGap < 0) { int hSpace = widthSpecSize - mPaddingLeft - mPaddingRight; int vSpace = heightSpecSize - mPaddingTop - mPaddingBottom; int hFreeSpace = hSpace - (mCellCountX * mOriginalCellWidth); @@ -236,6 +236,9 @@ public class PagedViewCellLayout extends ViewGroup implements Page { mChildren.setGap(mWidthGap, mHeightGap); mHolographicChildren.setGap(mWidthGap, mHeightGap); + } else { + mWidthGap = mOriginalWidthGap; + mHeightGap = mOriginalHeightGap; } // Initial values correspond to widthSpecMode == MeasureSpec.EXACTLY |