You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by cx...@apache.org on 2017/03/06 11:10:16 UTC
[10/12] incubator-weex git commit: * [android] avoid NPE case and
remove space
* [android] avoid NPE case and remove space
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/19abc48c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/19abc48c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/19abc48c
Branch: refs/heads/0.11-dev
Commit: 19abc48c958ec464eb3714e036a4991d79957d74
Parents: 610c3f1
Author: zshshr <zh...@gmail.com>
Authored: Mon Mar 6 17:47:36 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Mon Mar 6 17:47:36 2017 +0800
----------------------------------------------------------------------
.../java/com/taobao/weex/dom/WXDomHandler.java | 2 -
.../java/com/taobao/weex/dom/WXDomManager.java | 1 -
.../adapter/WXRecyclerViewOnScrollListener.java | 86 +++++++++++---------
3 files changed, 46 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19abc48c/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java
index 987d71b..2526a97 100755
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java
@@ -210,7 +210,6 @@ import android.os.Message;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.taobao.weex.bridge.JSCallback;
-import com.taobao.weex.utils.WXLogUtils;
/**
* Handler for dom operations.
@@ -295,7 +294,6 @@ public class WXDomHandler implements Handler.Callback {
mWXDomManager.batch();
mHasBatch = false;
break;
-
case MsgType.WX_DOM_SCROLLTO:
mWXDomManager.scrollToDom(task.instanceId, (String) task.args.get(0), (JSONObject) task.args.get(1));
break;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19abc48c/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java
index 6a8f534..d7ebaa7 100755
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java
@@ -335,7 +335,6 @@ public final class WXDomManager {
* Batch the execution of {@link WXDomStatement}
*/
void batch() {
-
throwIfNotDomThread();
Iterator<Entry<String, WXDomStatement>> iterator = mDomRegistries.entrySet().iterator();
while (iterator.hasNext()) {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19abc48c/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java
index 1cc3dbe..4a0d69a 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java
@@ -275,50 +275,56 @@ public class WXRecyclerViewOnScrollListener extends RecyclerView.OnScrollListene
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
- IOnLoadMoreListener l;
- if ((l = listener.get()) != null) {
- l.onBeforeScroll(dx, dy);
+ if(listener == null){
+ return;
}
+ IOnLoadMoreListener iOnLoadMoreListener = listener.get();
- // int lastVisibleItemPosition = -1;
- if (layoutManager instanceof LinearLayoutManager) {
- layoutManagerType = LAYOUT_MANAGER_TYPE.LINEAR;
- mLastVisibleItemPosition = ((LinearLayoutManager) layoutManager).findLastVisibleItemPosition();
- listener.get().notifyAppearStateChange(((LinearLayoutManager) layoutManager).findFirstVisibleItemPosition()
- , mLastVisibleItemPosition
- , dx
- , dy);
- } else if (layoutManager instanceof GridLayoutManager) {
- layoutManagerType = LAYOUT_MANAGER_TYPE.GRID;
- GridLayoutManager gridLayoutManager = ((GridLayoutManager) layoutManager);
- mLastVisibleItemPosition = gridLayoutManager.findLastVisibleItemPosition();
- listener.get().notifyAppearStateChange(((GridLayoutManager) layoutManager).findFirstVisibleItemPosition()
- , mLastVisibleItemPosition
- , dx
- , dy);
+ if(iOnLoadMoreListener!=null) {
- } else if (layoutManager instanceof StaggeredGridLayoutManager) {
- layoutManagerType = LAYOUT_MANAGER_TYPE.STAGGERED_GRID;
- StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager;
- int newspanCount = staggeredGridLayoutManager.getSpanCount();
- if (mLastPositions == null || newspanCount != mLastPositions.length ) {
- mLastPositions = new int[newspanCount];
- }
- if (mFirstPositions == null || newspanCount != mFirstPositions.length) {
- mFirstPositions = new int[newspanCount];
+ iOnLoadMoreListener.onBeforeScroll(dx, dy);
+
+ if (layoutManager instanceof LinearLayoutManager) {
+ layoutManagerType = LAYOUT_MANAGER_TYPE.LINEAR;
+ LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager;
+ mLastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition();
+ int firstVisible = linearLayoutManager.findFirstVisibleItemPosition();
+ iOnLoadMoreListener.notifyAppearStateChange(firstVisible
+ , mLastVisibleItemPosition
+ , dx
+ , dy);
+ } else if (layoutManager instanceof GridLayoutManager) {
+ layoutManagerType = LAYOUT_MANAGER_TYPE.GRID;
+ GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
+ mLastVisibleItemPosition = gridLayoutManager.findLastVisibleItemPosition();
+ iOnLoadMoreListener.notifyAppearStateChange(gridLayoutManager.findFirstVisibleItemPosition()
+ , mLastVisibleItemPosition
+ , dx
+ , dy);
+
+ } else if (layoutManager instanceof StaggeredGridLayoutManager) {
+ layoutManagerType = LAYOUT_MANAGER_TYPE.STAGGERED_GRID;
+ StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager;
+ int newSpanCount = staggeredGridLayoutManager.getSpanCount();
+ if (mLastPositions == null || newSpanCount != mLastPositions.length) {
+ mLastPositions = new int[newSpanCount];
+ }
+ if (mFirstPositions == null || newSpanCount != mFirstPositions.length) {
+ mFirstPositions = new int[newSpanCount];
+ }
+ staggeredGridLayoutManager.findFirstVisibleItemPositions(mFirstPositions);
+ mFirstVisibleItemPosition = findMin(mFirstPositions);
+ staggeredGridLayoutManager.findLastVisibleItemPositions(mLastPositions);
+ mLastVisibleItemPosition = findMax(mLastPositions);
+ iOnLoadMoreListener.notifyAppearStateChange(
+ mFirstVisibleItemPosition
+ , mLastVisibleItemPosition
+ , dx
+ , dy);
+ } else {
+ throw new RuntimeException(
+ "Unsupported LayoutManager used. Valid ones are LinearLayoutManager, GridLayoutManager and StaggeredGridLayoutManager");
}
- staggeredGridLayoutManager.findFirstVisibleItemPositions(mFirstPositions);
- mFirstVisibleItemPosition = findMin(mFirstPositions);
- staggeredGridLayoutManager.findLastVisibleItemPositions(mLastPositions);
- mLastVisibleItemPosition = findMax(mLastPositions);
- listener.get().notifyAppearStateChange(
- mFirstVisibleItemPosition
- , mLastVisibleItemPosition
- , dx
- , dy);
- } else {
- throw new RuntimeException(
- "Unsupported LayoutManager used. Valid ones are LinearLayoutManager, GridLayoutManager and StaggeredGridLayoutManager");
}
}