diff options
author | Winson Chung <winsonc@google.com> | 2010-12-02 17:49:28 -0800 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2010-12-02 17:50:23 -0800 |
commit | 22c73e1b07c5b0a91e7c9f608855e651f49fea3e (patch) | |
tree | 084fd805537e49ddef44cff0b91075dfea5f977e | |
parent | 16fddef875a2ce4cac16b8adbe9ea1cb57570757 (diff) | |
download | packages_apps_trebuchet-22c73e1b07c5b0a91e7c9f608855e651f49fea3e.zip packages_apps_trebuchet-22c73e1b07c5b0a91e7c9f608855e651f49fea3e.tar.gz packages_apps_trebuchet-22c73e1b07c5b0a91e7c9f608855e651f49fea3e.tar.bz2 |
Fix for missing AllApps icons.
Change-Id: Ic6c7cc3e55790d9fca1eb260bc9220442e5a9176
-rw-r--r-- | res/layout-xlarge/all_apps_paged_view_application.xml | 2 | ||||
-rw-r--r-- | res/values/styles.xml | 4 | ||||
-rw-r--r-- | src/com/android/launcher2/CacheableTextView.java | 32 |
3 files changed, 31 insertions, 7 deletions
diff --git a/res/layout-xlarge/all_apps_paged_view_application.xml b/res/layout-xlarge/all_apps_paged_view_application.xml index 48b5712..a080bce 100644 --- a/res/layout-xlarge/all_apps_paged_view_application.xml +++ b/res/layout-xlarge/all_apps_paged_view_application.xml @@ -28,4 +28,4 @@ android:layout_height="match_parent" android:gravity="center_horizontal" - style="@style/WorkspaceIcon.Portrait" /> + style="@style/WorkspaceIcon.AllApps" /> diff --git a/res/values/styles.xml b/res/values/styles.xml index 3305299..1e2dba2 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -49,6 +49,10 @@ <item name="android:paddingRight">5dip</item> </style> + <style name="WorkspaceIcon.AllApps"> + <item name="android:background">@null</item> + </style> + <style name="WorkspaceIcon.Portrait"> <item name="android:drawablePadding">5dip</item> <item name="android:paddingTop">4dip</item> diff --git a/src/com/android/launcher2/CacheableTextView.java b/src/com/android/launcher2/CacheableTextView.java index eba29ec..50da7cd 100644 --- a/src/com/android/launcher2/CacheableTextView.java +++ b/src/com/android/launcher2/CacheableTextView.java @@ -18,9 +18,10 @@ package com.android.launcher2; import android.content.Context; import android.graphics.Bitmap; +import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.graphics.Paint; -import android.graphics.Bitmap.Config; +import android.graphics.Rect; import android.text.Layout; import android.util.AttributeSet; import android.widget.TextView; @@ -66,7 +67,13 @@ public class CacheableTextView extends TextView { } public void buildAndEnableCache() { - if (getLayout() == null) { + // Defers building the cache until the next draw to allow measuring + // and laying out. + buildAndEnableCache(false); + } + + public void buildAndEnableCache(boolean isImmediate) { + if (getLayout() == null || !isImmediate) { mWaitingToGenerateCache = true; return; } @@ -94,8 +101,20 @@ public class CacheableTextView extends TextView { int height = (int) (textCacheBottom - mTextCacheTop); if (width != 0 && height != 0) { - mCache = Bitmap.createBitmap(width, height, Config.ARGB_8888); - mCacheCanvas.setBitmap(mCache); + if (mCache != null) { + if (mCache.getWidth() != width || mCache.getHeight() != height) { + mCache.recycle(); + mCache = null; + } + } + if (mCache == null) { + mCache = Bitmap.createBitmap(width, height, Config.ARGB_8888); + mCacheCanvas.setBitmap(mCache); + } else { + mCacheCanvas.drawColor(0x00000000); + } + + mCacheCanvas.save(); mCacheCanvas.translate(-mTextCacheLeft, -mTextCacheTop); mIsBuildingCache = true; @@ -103,6 +122,7 @@ public class CacheableTextView extends TextView { draw(mCacheCanvas); setAlpha(prevAlpha); mIsBuildingCache = false; + mCacheCanvas.restore(); // A hack-- we set the text to be one space (we don't make it empty just to avoid any // potential issues with text measurement, like line height, etc.) so that the text view @@ -114,10 +134,10 @@ public class CacheableTextView extends TextView { public void draw(Canvas canvas) { if (mWaitingToGenerateCache && !mIsBuildingCache) { - buildAndEnableCache(); + buildAndEnableCache(true); mWaitingToGenerateCache = false; } - if (mCache != null) { + if (mCache != null && !mIsBuildingCache) { canvas.drawBitmap(mCache, mTextCacheLeft - mTextCacheScrollX + mScrollX, mTextCacheTop, mCachePaint); } |