From 20df7c7d7212a5208b016861d652d6d15f6c760e Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Thu, 5 Nov 2009 12:30:24 -0800 Subject: [PATCH] Fix white square bug when new apps are added while home is not active. --- src/com/android/launcher2/AllAppsView.java | 33 ++++++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java index 8d6820cfe9..7cba4bbee4 100644 --- a/src/com/android/launcher2/AllAppsView.java +++ b/src/com/android/launcher2/AllAppsView.java @@ -158,6 +158,7 @@ public class AllAppsView extends RSSurfaceView @Override public void surfaceDestroyed(SurfaceHolder holder) { super.surfaceDestroyed(holder); + mRollo.mHasSurface = false; } @Override @@ -171,11 +172,15 @@ public class AllAppsView extends RSSurfaceView mRS = createRenderScript(true); mRollo = new RolloRS(); + mRollo.mHasSurface = true; mRollo.init(getResources(), w, h); if (mAllAppsList != null) { mRollo.setApps(mAllAppsList); Log.d(TAG, "surfaceChanged... calling mRollo.setApps"); } + } else { + mRollo.mHasSurface = true; + mRollo.dirtyCheck(); } Resources res = getContext().getResources(); @@ -672,6 +677,8 @@ public class AllAppsView extends RSSurfaceView private Bitmap mSelectionBitmap; private Canvas mSelectionCanvas; + boolean mHasSurface = false; + private boolean mAppsDirty = false; Params mParams; State mState; @@ -922,6 +929,20 @@ public class AllAppsView extends RSSurfaceView mRS.contextBindRootScript(mScript); } + private void uploadApps(ArrayList list) { + for (int i=0; i < mState.iconCount; i++) { + uploadAppIcon(i, list.get(i)); + } + } + + void dirtyCheck() { + if (mAppsDirty && mHasSurface) { + uploadApps(mAllAppsList); + saveAppsList(); + mAppsDirty = false; + } + } + private void setApps(ArrayList list) { final int count = list != null ? list.size() : 0; int allocCount = count; @@ -941,12 +962,8 @@ public class AllAppsView extends RSSurfaceView Utilities.BubbleText bubble = new Utilities.BubbleText(getContext()); - for (int i=0; i