mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 00:06:47 +00:00
Redo the launcher loading code and put the real app icons into rollo.
This commit is contained in:
@@ -59,8 +59,11 @@ import android.graphics.PixelFormat;
|
||||
|
||||
|
||||
public class AllAppsView extends RSSurfaceView {
|
||||
private static final String TAG = "Launcher.AllAppsView";
|
||||
|
||||
private RenderScript mRS;
|
||||
private RolloRS mRollo;
|
||||
private ArrayList<ApplicationInfo> mAllAppsList;
|
||||
|
||||
private ViewConfiguration mConfig;
|
||||
private VelocityTracker mVelocity;
|
||||
@@ -97,6 +100,9 @@ public class AllAppsView extends RSSurfaceView {
|
||||
mRS = createRenderScript();
|
||||
mRollo = new RolloRS();
|
||||
mRollo.init(getResources(), w, h);
|
||||
if (mAllAppsList != null) {
|
||||
mRollo.setApps(mAllAppsList);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -109,7 +115,6 @@ public class AllAppsView extends RSSurfaceView {
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent ev)
|
||||
{
|
||||
Log.d(Launcher.LOG_TAG, "onTouchEvent " + ev);
|
||||
int x = (int)ev.getX();
|
||||
int deltaX;
|
||||
switch (ev.getAction()) {
|
||||
@@ -163,10 +168,17 @@ public class AllAppsView extends RSSurfaceView {
|
||||
|
||||
DataSetObserver mIconObserver = new DataSetObserver() {
|
||||
public void onChanged() {
|
||||
Log.d(Launcher.LOG_TAG, "new icons arrived! now have " + mAdapter.getCount());
|
||||
Log.d(TAG, "new icons arrived! now have " + mAdapter.getCount());
|
||||
}
|
||||
};
|
||||
|
||||
public void setApps(ArrayList<ApplicationInfo> list) {
|
||||
mAllAppsList = list;
|
||||
if (mRollo != null) {
|
||||
mRollo.setApps(list);
|
||||
}
|
||||
}
|
||||
|
||||
public class RolloRS {
|
||||
|
||||
// Allocations ======
|
||||
@@ -316,22 +328,9 @@ public class AllAppsView extends RSSurfaceView {
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
final int count = 100;
|
||||
mParams = new Params(mRS);
|
||||
mState = new State(mRS);
|
||||
|
||||
mIcons = new Allocation[count];
|
||||
mAllocIconIDBuf = new int[count];
|
||||
mAllocIconID = Allocation.createSized(mRS,
|
||||
Element.USER_I32, mAllocIconIDBuf.length);
|
||||
|
||||
mLabels = new Allocation[count];
|
||||
mAllocLabelIDBuf = new int[mLabels.length];
|
||||
mAllocLabelID = Allocation.createSized(mRS,
|
||||
Element.USER_I32, mLabels.length);
|
||||
|
||||
Element ie8888 = Element.RGBA_8888;
|
||||
|
||||
final Utilities.BubbleText bubble = new Utilities.BubbleText(getContext());
|
||||
|
||||
mParams.bubbleWidth = bubble.getBubbleWidth();
|
||||
@@ -339,25 +338,10 @@ public class AllAppsView extends RSSurfaceView {
|
||||
mParams.bubbleBitmapWidth = bubble.getBitmapWidth();
|
||||
mParams.bubbleBitmapHeight = bubble.getBitmapHeight();
|
||||
|
||||
for (int i=0; i<count; i++) {
|
||||
mIcons[i] = Allocation.createFromBitmapResource(
|
||||
mRS, mRes, R.raw.maps, ie8888, true);
|
||||
mLabels[i] = makeTextBitmap(bubble, i%9==0 ? "Google Maps" : "Maps");
|
||||
}
|
||||
|
||||
for (int i=0; i<count; i++) {
|
||||
mIcons[i].uploadToTexture(0);
|
||||
mLabels[i].uploadToTexture(0);
|
||||
mAllocIconIDBuf[i] = mIcons[i].getID();
|
||||
mAllocLabelIDBuf[i] = mLabels[i].getID();
|
||||
}
|
||||
mAllocIconID.data(mAllocIconIDBuf);
|
||||
mAllocLabelID.data(mAllocLabelIDBuf);
|
||||
|
||||
mState.iconCount = count;
|
||||
|
||||
mParams.save();
|
||||
mState.save();
|
||||
|
||||
setApps(null);
|
||||
}
|
||||
|
||||
Allocation makeTextBitmap(Utilities.BubbleText bubble, String label) {
|
||||
@@ -383,8 +367,51 @@ public class AllAppsView extends RSSurfaceView {
|
||||
|
||||
mRS.contextBindRootScript(mScript);
|
||||
}
|
||||
}
|
||||
|
||||
private void setApps(ArrayList<ApplicationInfo> list) {
|
||||
final int count = list != null ? list.size() : 0;
|
||||
mIcons = new Allocation[count];
|
||||
mAllocIconIDBuf = new int[count];
|
||||
mAllocIconID = Allocation.createSized(mRS, Element.USER_I32, count);
|
||||
|
||||
mLabels = new Allocation[count];
|
||||
mAllocLabelIDBuf = new int[count];
|
||||
mAllocLabelID = Allocation.createSized(mRS, Element.USER_I32, count);
|
||||
|
||||
Element ie8888 = Element.RGBA_8888;
|
||||
|
||||
Utilities.BubbleText bubble = new Utilities.BubbleText(getContext());
|
||||
|
||||
for (int i=0; i<count; i++) {
|
||||
final ApplicationInfo item = list.get(i);
|
||||
|
||||
mIcons[i] = Allocation.createFromBitmap(mRS, item.iconBitmap,
|
||||
Element.RGBA_8888, true);
|
||||
mLabels[i] = Allocation.createFromBitmap(mRS, item.titleBitmap,
|
||||
Element.RGBA_8888, true);
|
||||
|
||||
mIcons[i].uploadToTexture(0);
|
||||
mLabels[i].uploadToTexture(0);
|
||||
|
||||
mAllocIconIDBuf[i] = mIcons[i].getID();
|
||||
mAllocLabelIDBuf[i] = mLabels[i].getID();
|
||||
}
|
||||
|
||||
mAllocIconID.data(mAllocIconIDBuf);
|
||||
mAllocLabelID.data(mAllocLabelIDBuf);
|
||||
|
||||
mState.iconCount = count;
|
||||
|
||||
Log.d("AllAppsView", "mScript=" + mScript + " mAllocIconID=" + mAllocIconID);
|
||||
|
||||
if (mScript != null) { // wtf
|
||||
mScript.bindAllocation(mAllocIconID, Defines.ALLOC_ICON_IDS);
|
||||
mScript.bindAllocation(mAllocLabelID, Defines.ALLOC_LABEL_IDS);
|
||||
}
|
||||
|
||||
mState.save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user