diff options
author | Jason Sams <rjsams@android.com> | 2009-11-05 12:30:24 -0800 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-11-05 12:30:24 -0800 |
commit | 20df7c7d7212a5208b016861d652d6d15f6c760e (patch) | |
tree | 21c25f84e04b35f90e4cbf86f2aa20849afef1c9 /src/com/android/launcher2/AllAppsView.java | |
parent | 1f0bb3ab418d4fddc7db436ec49ca19449d8e1bb (diff) | |
download | android_packages_apps_Trebuchet-20df7c7d7212a5208b016861d652d6d15f6c760e.tar.gz android_packages_apps_Trebuchet-20df7c7d7212a5208b016861d652d6d15f6c760e.tar.bz2 android_packages_apps_Trebuchet-20df7c7d7212a5208b016861d652d6d15f6c760e.zip |
Fix white square bug when new apps are added while home is not active.
Diffstat (limited to 'src/com/android/launcher2/AllAppsView.java')
-rw-r--r-- | src/com/android/launcher2/AllAppsView.java | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java index 8d6820cfe..7cba4bbee 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<ApplicationInfo> 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<ApplicationInfo> 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<count; i++) { - uploadAppIcon(i, list.get(i)); - } - mState.iconCount = count; - + uploadApps(list); saveAppsList(); } @@ -1021,7 +1038,11 @@ public class AllAppsView extends RSSurfaceView System.arraycopy(mLabels, index, mLabels, dest, count); System.arraycopy(mLabelIds, index, mLabelIds, dest, count); - uploadAppIcon(index, item); + if (mHasSurface ) { + uploadAppIcon(index, item); + } else { + mAppsDirty = true; + } } /** |