Fix visual bugs
- Fix clipping of icon labels on large devices - Fix bug where icons and widgets on side pages in home workspace were visible on startup Change-Id: I8c17cfcb1ac27255b955e6db9d0eec7ce3833bd0
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
<resources>
|
||||
<!-- Workspace -->
|
||||
<style name="WorkspaceIcon.Portrait">
|
||||
<item name="android:drawablePadding">4dp</item>
|
||||
<item name="android:drawablePadding">0dp</item>
|
||||
<item name="android:paddingLeft">4dp</item>
|
||||
<item name="android:paddingRight">4dp</item>
|
||||
<item name="android:paddingTop">4dp</item>
|
||||
@@ -35,7 +35,7 @@
|
||||
<item name="android:textSize">13dip</item>
|
||||
</style>
|
||||
<style name="WorkspaceIcon.Landscape">
|
||||
<item name="android:drawablePadding">4dp</item>
|
||||
<item name="android:drawablePadding">0dp</item>
|
||||
<item name="android:paddingLeft">4dp</item>
|
||||
<item name="android:paddingRight">4dp</item>
|
||||
<item name="android:paddingTop">4dp</item>
|
||||
@@ -49,10 +49,6 @@
|
||||
<item name="android:paddingBottom">0dp</item>
|
||||
<item name="android:textSize">13dip</item>
|
||||
</style>
|
||||
<style name="WorkspaceIcon.AppsCustomize">
|
||||
<item name="android:drawablePadding">2dp</item>
|
||||
<item name="android:textSize">13dip</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme" parent="android:Theme.Holo.Wallpaper.NoTitleBar">
|
||||
<item name="android:windowActionModeOverlay">true</item>
|
||||
@@ -62,6 +58,24 @@
|
||||
<item name="android:screenOrientation">unspecified</item>
|
||||
</style>
|
||||
|
||||
<style name="WorkspaceIcon.Portrait.AppsCustomize">
|
||||
<item name="android:background">@null</item>
|
||||
<item name="android:paddingTop">4dp</item>
|
||||
<item name="android:paddingBottom">0dp</item>
|
||||
<item name="android:paddingLeft">0dp</item>
|
||||
<item name="android:paddingRight">0dp</item>
|
||||
<item name="android:drawablePadding">4dp</item>
|
||||
<item name="android:includeFontPadding">false</item>
|
||||
<item name="android:textSize">13dip</item>
|
||||
</style>
|
||||
<style name="WorkspaceIcon.Landscape.AppsCustomize">
|
||||
<item name="android:background">@null</item>
|
||||
<item name="android:paddingTop">4dp</item>
|
||||
<item name="android:paddingBottom">0dp</item>
|
||||
<item name="android:drawablePadding">4dp</item>
|
||||
<item name="android:includeFontPadding">false</item>
|
||||
<item name="android:textSize">13dip</item>
|
||||
</style>
|
||||
<style name="TabIndicator.AppsCustomize">
|
||||
<item name="android:paddingLeft">40dp</item>
|
||||
<item name="android:paddingRight">40dp</item>
|
||||
|
||||
@@ -44,7 +44,6 @@ public class IconCache {
|
||||
private final Bitmap mDefaultIcon;
|
||||
private final LauncherApplication mContext;
|
||||
private final PackageManager mPackageManager;
|
||||
private final Utilities.BubbleText mBubble;
|
||||
private final HashMap<ComponentName, CacheEntry> mCache =
|
||||
new HashMap<ComponentName, CacheEntry>(INITIAL_ICON_CACHE_CAPACITY);
|
||||
private int mIconDpi;
|
||||
@@ -52,7 +51,6 @@ public class IconCache {
|
||||
public IconCache(LauncherApplication context) {
|
||||
mContext = context;
|
||||
mPackageManager = context.getPackageManager();
|
||||
mBubble = new Utilities.BubbleText(context);
|
||||
int density = context.getResources().getDisplayMetrics().densityDpi;
|
||||
if (LauncherApplication.isScreenLarge()) {
|
||||
if (density == DisplayMetrics.DENSITY_LOW) {
|
||||
|
||||
@@ -131,7 +131,7 @@ public abstract class PagedView extends ViewGroup {
|
||||
private PageSwitchListener mPageSwitchListener;
|
||||
|
||||
private ArrayList<Boolean> mDirtyPageContent;
|
||||
private boolean mDirtyPageAlpha;
|
||||
private boolean mDirtyPageAlpha = true;
|
||||
|
||||
// choice modes
|
||||
protected static final int CHOICE_MODE_NONE = 0;
|
||||
|
||||
@@ -265,120 +265,6 @@ final class Utilities {
|
||||
sDisabledPaint.setAlpha(0x88);
|
||||
}
|
||||
|
||||
static class BubbleText {
|
||||
private static final int MAX_LINES = 2;
|
||||
|
||||
private final TextPaint mTextPaint;
|
||||
|
||||
private final RectF mBubbleRect = new RectF();
|
||||
|
||||
private final float mTextWidth;
|
||||
private final int mLeading;
|
||||
private final int mFirstLineY;
|
||||
private final int mLineHeight;
|
||||
|
||||
private final int mBitmapWidth;
|
||||
private final int mBitmapHeight;
|
||||
private final int mDensity;
|
||||
|
||||
BubbleText(Context context) {
|
||||
final Resources resources = context.getResources();
|
||||
|
||||
final DisplayMetrics metrics = resources.getDisplayMetrics();
|
||||
final float scale = metrics.density;
|
||||
mDensity = metrics.densityDpi;
|
||||
|
||||
final float paddingLeft = 2.0f * scale;
|
||||
final float paddingRight = 2.0f * scale;
|
||||
final float cellWidth = resources.getDimension(R.dimen.title_texture_width);
|
||||
|
||||
RectF bubbleRect = mBubbleRect;
|
||||
bubbleRect.left = 0;
|
||||
bubbleRect.top = 0;
|
||||
bubbleRect.right = (int) cellWidth;
|
||||
|
||||
mTextWidth = cellWidth - paddingLeft - paddingRight;
|
||||
|
||||
TextPaint textPaint = mTextPaint = new TextPaint();
|
||||
textPaint.setTypeface(Typeface.DEFAULT);
|
||||
textPaint.setTextSize(13*scale);
|
||||
textPaint.setColor(0xffffffff);
|
||||
textPaint.setAntiAlias(true);
|
||||
if (TEXT_BURN) {
|
||||
textPaint.setShadowLayer(8, 0, 0, 0xff000000);
|
||||
}
|
||||
|
||||
float ascent = -textPaint.ascent();
|
||||
float descent = textPaint.descent();
|
||||
float leading = 0.0f;//(ascent+descent) * 0.1f;
|
||||
mLeading = (int)(leading + 0.5f);
|
||||
mFirstLineY = (int)(leading + ascent + 0.5f);
|
||||
mLineHeight = (int)(leading + ascent + descent + 0.5f);
|
||||
|
||||
mBitmapWidth = (int)(mBubbleRect.width() + 0.5f);
|
||||
mBitmapHeight = roundToPow2((int)((MAX_LINES * mLineHeight) + leading + 0.5f));
|
||||
|
||||
mBubbleRect.offsetTo((mBitmapWidth-mBubbleRect.width())/2, 0);
|
||||
|
||||
if (false) {
|
||||
Log.d(TAG, "mBitmapWidth=" + mBitmapWidth + " mBitmapHeight="
|
||||
+ mBitmapHeight + " w=" + ((int)(mBubbleRect.width() + 0.5f))
|
||||
+ " h=" + ((int)((MAX_LINES * mLineHeight) + leading + 0.5f)));
|
||||
}
|
||||
}
|
||||
|
||||
/** You own the bitmap after this and you must call recycle on it. */
|
||||
Bitmap createTextBitmap(String text) {
|
||||
Bitmap b = Bitmap.createBitmap(mBitmapWidth, mBitmapHeight, Bitmap.Config.ALPHA_8);
|
||||
b.setDensity(mDensity);
|
||||
Canvas c = new Canvas(b);
|
||||
|
||||
StaticLayout layout = new StaticLayout(text, mTextPaint, (int)mTextWidth,
|
||||
Alignment.ALIGN_CENTER, 1, 0, true);
|
||||
int lineCount = layout.getLineCount();
|
||||
if (lineCount > MAX_LINES) {
|
||||
lineCount = MAX_LINES;
|
||||
}
|
||||
//if (!TEXT_BURN && lineCount > 0) {
|
||||
//RectF bubbleRect = mBubbleRect;
|
||||
//bubbleRect.bottom = height(lineCount);
|
||||
//c.drawRoundRect(bubbleRect, mCornerRadius, mCornerRadius, mRectPaint);
|
||||
//}
|
||||
for (int i=0; i<lineCount; i++) {
|
||||
//int x = (int)((mBubbleRect.width() - layout.getLineMax(i)) / 2.0f);
|
||||
//int y = mFirstLineY + (i * mLineHeight);
|
||||
final String lineText = text.substring(layout.getLineStart(i), layout.getLineEnd(i));
|
||||
int x = (int)(mBubbleRect.left
|
||||
+ ((mBubbleRect.width() - mTextPaint.measureText(lineText)) * 0.5f));
|
||||
int y = mFirstLineY + (i * mLineHeight);
|
||||
c.drawText(lineText, x, y, mTextPaint);
|
||||
}
|
||||
|
||||
c.setBitmap(null);
|
||||
return b;
|
||||
}
|
||||
|
||||
private int height(int lineCount) {
|
||||
return (int)((lineCount * mLineHeight) + mLeading + mLeading + 0.0f);
|
||||
}
|
||||
|
||||
int getBubbleWidth() {
|
||||
return (int)(mBubbleRect.width() + 0.5f);
|
||||
}
|
||||
|
||||
int getMaxBubbleHeight() {
|
||||
return height(MAX_LINES);
|
||||
}
|
||||
|
||||
int getBitmapWidth() {
|
||||
return mBitmapWidth;
|
||||
}
|
||||
|
||||
int getBitmapHeight() {
|
||||
return mBitmapHeight;
|
||||
}
|
||||
}
|
||||
|
||||
/** Only works for positive numbers. */
|
||||
static int roundToPow2(int n) {
|
||||
int orig = n;
|
||||
|
||||
Reference in New Issue
Block a user