use of com.taobao.weex.WXSDKInstance in project weex-example by KalicyZhou.
the class WXDomStatement method layout.
void layout(WXDomObject rootDom) {
if (rootDom == null) {
return;
}
long start0 = System.currentTimeMillis();
rebuildingFixedDomTree(rootDom);
rootDom.traverseTree(new WXDomObject.Consumer() {
@Override
public void accept(WXDomObject dom) {
if (!dom.hasUpdate() || mDestroy) {
return;
}
dom.layoutBefore();
}
});
long start = System.currentTimeMillis();
rootDom.calculateLayout(mLayoutContext);
WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(mInstanceId);
if (instance != null) {
instance.cssLayoutTime(System.currentTimeMillis() - start);
}
rootDom.traverseTree(new WXDomObject.Consumer() {
@Override
public void accept(WXDomObject dom) {
if (!dom.hasUpdate() || mDestroy) {
return;
}
dom.layoutAfter();
}
});
start = System.currentTimeMillis();
rootDom.traverseTree(new ApplyUpdateConsumer());
if (instance != null) {
instance.applyUpdateTime(System.currentTimeMillis() - start);
}
start = System.currentTimeMillis();
updateDomObj();
if (instance != null) {
instance.updateDomObjTime(System.currentTimeMillis() - start);
}
parseAnimation();
int count = mNormalTasks.size();
for (int i = 0; i < count && !mDestroy; ++i) {
mWXRenderManager.runOnThread(mInstanceId, mNormalTasks.get(i));
}
mNormalTasks.clear();
mAddDom.clear();
animations.clear();
mDirty = false;
if (instance != null) {
instance.batchTime(System.currentTimeMillis() - start0);
}
}
use of com.taobao.weex.WXSDKInstance in project weex-example by KalicyZhou.
the class WXDomStatement method createFinish.
/**
* Create a command object for notifying {@link WXRenderManager} that the process of creating
* given view is finished, and put the command object in the queue.
*/
void createFinish() {
if (mDestroy) {
return;
}
final WXDomObject root = mRegistry.get(WXDomObject.ROOT);
mNormalTasks.add(new IWXRenderTask() {
@Override
public void execute() {
mWXRenderManager.createFinish(mInstanceId, (int) root.getLayoutWidth(), (int) root.getLayoutHeight());
}
@Override
public String toString() {
return "createFinish";
}
});
mDirty = true;
WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(mInstanceId);
if (instance != null) {
instance.commitUTStab(IWXUserTrackAdapter.DOM_MODULE, WXErrorCode.WX_SUCCESS);
}
}
use of com.taobao.weex.WXSDKInstance in project weex-example by KalicyZhou.
the class AbstractWeexActivity method createWeexInstance.
protected void createWeexInstance() {
destoryWeexInstance();
Rect outRect = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect);
mInstance = new WXSDKInstance(this);
mInstance.registerRenderListener(this);
}
use of com.taobao.weex.WXSDKInstance in project weex-example by KalicyZhou.
the class AbsWeexActivity method createWeexInstance.
protected void createWeexInstance() {
destoryWeexInstance();
mInstance = new WXSDKInstance(this);
mInstance.registerRenderListener(this);
}
use of com.taobao.weex.WXSDKInstance in project weex-example by KalicyZhou.
the class WXPageActivity method loadWXfromService.
private void loadWXfromService(final String url) {
mProgressBar.setVisibility(View.VISIBLE);
if (mInstance != null) {
mInstance.destroy();
}
RenderContainer renderContainer = new RenderContainer(this);
mContainer.addView(renderContainer);
mInstance = new WXSDKInstance(this);
mInstance.setRenderContainer(renderContainer);
mInstance.registerRenderListener(this);
mInstance.setNestedInstanceInterceptor(this);
mInstance.setBundleUrl(url);
mInstance.setTrackComponent(true);
WXHttpTask httpTask = new WXHttpTask();
httpTask.url = url;
httpTask.requestListener = new WXRequestListener() {
@Override
public void onSuccess(WXHttpTask task) {
Log.i(TAG, "into--[http:onSuccess] url:" + url);
try {
mConfigMap.put("bundleUrl", url);
mInstance.render(TAG, new String(task.response.data, "utf-8"), mConfigMap, null, ScreenUtil.getDisplayWidth(WXPageActivity.this), ScreenUtil.getDisplayHeight(WXPageActivity.this), WXRenderStrategy.APPEND_ASYNC);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
@Override
public void onError(WXHttpTask task) {
Log.i(TAG, "into--[http:onError]");
mProgressBar.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), "network error!", Toast.LENGTH_SHORT).show();
}
};
WXHttpManager.getInstance().sendRequest(httpTask);
}
Aggregations