event type config
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/7fc24dfc Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/7fc24dfc Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/7fc24dfc Branch: refs/heads/0.16-dev Commit: 7fc24dfcc5738c003c063a95734bc34157c73d2e Parents: b450c5a Author: jianbai.gbj <jianbai....@alibaba-inc.com> Authored: Thu Sep 14 21:35:01 2017 +0800 Committer: jianbai.gbj <jianbai....@alibaba-inc.com> Committed: Thu Sep 14 21:35:01 2017 +0800 ---------------------------------------------------------------------- .../com/taobao/weex/bridge/WXBridgeManager.java | 14 +++++--- .../java/com/taobao/weex/common/Constants.java | 16 +++++---- .../list/template/WXRecyclerTemplateList.java | 34 ++++++++++++-------- 3 files changed, 39 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fc24dfc/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java index 3a44575..9cdad89 100644 --- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java +++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java @@ -25,6 +25,7 @@ import android.os.Looper; import android.os.Message; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.util.ArrayMap; import android.text.TextUtils; import com.alibaba.fastjson.JSON; @@ -1063,15 +1064,18 @@ public class WXBridgeManager implements Callback,BactchExecutor { ArrayList<Object> argsList = new ArrayList<>(); for (Object arg : args) { - argsList.add(arg); + argsList.add(arg); + } + if(params != null){ + ArrayMap map = new ArrayMap(4); + map.put(KEY_PARAMS, params); + argsList.add(map); } WXHashMap<String, Object> task = new WXHashMap<>(); task.put(KEY_METHOD, method); task.put(KEY_ARGS, argsList); - if(params != null){ - task.put(KEY_PARAMS, params); - } + if (mNextTickTasks.get(instanceId) == null) { ArrayList<WXHashMap<String, Object>> list = new ArrayList<>(); @@ -1149,7 +1153,7 @@ public class WXBridgeManager implements Callback,BactchExecutor { throw new WXRuntimeException( "fireEvent must be called by main thread"); } - addJSEventTask(METHOD_FIRE_EVENT, instanceId, params, ref, type, data,domChanges); + addJSEventTask(METHOD_FIRE_EVENT, instanceId, params, ref, type, data, domChanges); sendMessage(instanceId, WXJSBridgeMsgType.CALL_JS_BATCH); } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fc24dfc/android/sdk/src/main/java/com/taobao/weex/common/Constants.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java index 1bbe888..6a96a08 100644 --- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java +++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java @@ -182,13 +182,17 @@ public class Constants { String ARIA_HIDDEN = "ariaHidden"; - String LIST_DATA = "listData"; - String LIST_DATA_TEMPLATE_KEY = "templateKey"; - String SLOT_TEMPLATE_TYPE = "templateType"; + interface Recycler{ + String LIST_DATA = "listData"; + String LIST_DATA_ITEM ="item"; + String LIST_DATA_ITEM_INDEX = "index"; + String LIST_DATA_TEMPLATE_KEY = "templateKey"; + String SLOT_TEMPLATE_TYPE = "templateType"; + String LIST_DATA_ITEM_ID = "itemId"; + String CELL_INDEX = "cellIndex"; + String TYPE_INDEX = "typeIndex"; + } - String LIST_DATA_ITEM_ID = "itemId"; - String CELL_INDEX = "cellIndex"; - String TYPE_INDEX = "typeIndex"; String VIF_FALSE = "ifFalse"; } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fc24dfc/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java index 1b85b0a..3bee7af 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java @@ -125,12 +125,12 @@ public class WXRecyclerTemplateList extends WXVContainer<BounceRecyclerView> imp private Point mLastReport = new Point(-1, -1); private JSONArray listData; - private String listDataKey = "listData"; - private String listDataItemKey ="item"; - private String listDataIndexKey = "index"; + private String listDataKey = Constants.Name.Recycler.LIST_DATA; + private String listDataItemKey = Constants.Name.Recycler.LIST_DATA_ITEM; + private String listDataIndexKey = Constants.Name.Recycler.LIST_DATA_ITEM_INDEX; private ArrayMap<String, Integer> mTemplateViewTypes; private Map<String, WXCell> mTemplates; - private String listDataTemplateKey = Constants.Name.SLOT_TEMPLATE_TYPE; + private String listDataTemplateKey = Constants.Name.Recycler.SLOT_TEMPLATE_TYPE; private Runnable listUpdateRunnable; @@ -422,8 +422,8 @@ public class WXRecyclerTemplateList extends WXVContainer<BounceRecyclerView> imp WXLogUtils.e("Float parseFloat error :"+e.getMessage()); } } - position = WXUtils.getNumberInt(options.get(Constants.Name.CELL_INDEX), position); - typeIndex = WXUtils.getNumberInt(options.get(Constants.Name.TYPE_INDEX), position); + position = WXUtils.getNumberInt(options.get(Constants.Name.Recycler.CELL_INDEX), position); + typeIndex = WXUtils.getNumberInt(options.get(Constants.Name.Recycler.TYPE_INDEX), position); } WXCell cell = findCell(component); if(typeIndex >= 0){ @@ -501,7 +501,7 @@ public class WXRecyclerTemplateList extends WXVContainer<BounceRecyclerView> imp } if(child instanceof WXCell){ if(child.getDomObject() != null && child.getDomObject().getAttrs() != null){ - Object templateId = child.getDomObject().getAttrs().get(Constants.Name.SLOT_TEMPLATE_TYPE); + Object templateId = child.getDomObject().getAttrs().get(Constants.Name.Recycler.SLOT_TEMPLATE_TYPE); String key = WXUtils.getString(templateId, null); if(key != null){ mTemplates.put(key, (WXCell) child); @@ -594,13 +594,19 @@ public class WXRecyclerTemplateList extends WXVContainer<BounceRecyclerView> imp @Override protected boolean setProperty(String key, Object param) { switch (key) { - case Constants.Name.LIST_DATA:{ + case Constants.Name.Recycler.LIST_DATA:{ setListData(param); } return true; - case Constants.Name.LIST_DATA_TEMPLATE_KEY: - case Constants.Name.SLOT_TEMPLATE_TYPE: - listDataTemplateKey = WXUtils.getString(param, Constants.Name.SLOT_TEMPLATE_TYPE); + case Constants.Name.Recycler.LIST_DATA_ITEM: + listDataItemKey = WXUtils.getString(param, listDataItemKey); + return true; + case Constants.Name.Recycler.LIST_DATA_ITEM_INDEX: + listDataIndexKey = WXUtils.getString(param, listDataIndexKey); + return true; + case Constants.Name.Recycler.LIST_DATA_TEMPLATE_KEY: + case Constants.Name.Recycler.SLOT_TEMPLATE_TYPE: + listDataTemplateKey = WXUtils.getString(param, Constants.Name.Recycler.SLOT_TEMPLATE_TYPE); return true; case LOADMOREOFFSET: return true; @@ -1027,7 +1033,7 @@ public class WXRecyclerTemplateList extends WXVContainer<BounceRecyclerView> imp return -1; } if(cell.getDomObject() != null && cell.getDomObject().getAttrs() != null){ - Object templateId = cell.getDomObject().getAttrs().get(Constants.Name.SLOT_TEMPLATE_TYPE); + Object templateId = cell.getDomObject().getAttrs().get(Constants.Name.Recycler.SLOT_TEMPLATE_TYPE); String template = WXUtils.getString(templateId, null); if(template == null){ return 0; @@ -1069,8 +1075,8 @@ public class WXRecyclerTemplateList extends WXVContainer<BounceRecyclerView> imp return RecyclerView.NO_ID; } JSONObject data = safeGetListData(position); - if(data.containsKey(Constants.Name.LIST_DATA_ITEM_ID)) { - String itemKey = data.getString(Constants.Name.LIST_DATA_ITEM_ID); + if(data.containsKey(Constants.Name.Recycler.LIST_DATA_ITEM_ID)) { + String itemKey = data.getString(Constants.Name.Recycler.LIST_DATA_ITEM_ID); if(TextUtils.isEmpty(itemKey)){ return position; }